Chuyển đến nội dung chính

KIỂU BẢN GHI (RECORD)

KIỂU BẢN GHI (RECORD)
I. KHAI BÁO DŨ LIỆU KIỂU RECORD
TYPE TênKiểu = RECORD
Field1 : Kiểu1;
Field2 : Kiểu2;
...
FieldN: KiểuN;
END;

VAR Biến : TênKiểu;
Ví dụ:
TYPE HocSinh  = Record
Hoten : String[20];
    Tuoi : Integer;
DiemTB : real;
End;
VAR  HS : HocSinh;
II. XUẤT NHẬP DỮ LIỆU KIỂU RECORD
Không thể dùng các thủ tục xuất/nhập, các phép toán so sánh đối với các biến
kiểu record mà chỉ có thể sử dụng thông qua từng truờng của biến record đó.
2.1. Truy nhập trực tiếp: TênbiếnRecord.Field
ví dụ:
hs.hoten:=’ Nguen van An’;
hs.tuoi:=26;
hs.diemtb:=6.5;
2.2. Sử dụng câu lệnh WITH
WITH  TênbiếnRecord DO
BEGIN
Xử lý Field1;
Xử lý Field2;
...
Xử lý FieldN;
END;
2.3. Gán biến Record: Ta có thể gán 2 biến Record cùng kiểu với nhau.
ví dụ: Hs:=hs1;
BÀI TẬP
Bài tập 1: Viết chương trình quản lý điểm thi nghề phổ thông của học sinh  gồm 2 môn thi: lý thuyết và thực hành; nội dung công việc gồm
-         Nhập danh sách học sinh gồm có: họ tên, điểm lý thuyết, điểm thực hành
-         In ra danh sách các học sinh đạt loại giỏi (điểm trung bình 2 môn từ 8.0 trở lên)
-         In danh sách các học sinh đạt điểm 10 môn lý thuyết;
Bài tập 2:  Viết  chương trình quản lý sách ở thư viện gồm các trường sau: Mã
sách, Nhan đề, Tên Tác giả, Nhà Xuất bản, Năm xuất bản.
a/ Nhập vào kho sách của thư viện (gồm tất cả các trường).
b/ In ra màn hình tất cả các cuốn sách có trong thư viện.
c/ Tìm một cuốn sách có mã số được nhập vào từ bàn phím. Nếu tìm thấy thì in r
màn hình thông tin đầy đủ của cuốn sách đó, ngược lại thì thông báo không tìm thấy.
c/ Tìm và in ra màn hình tất cả các cuốn sách có cùng tác giả được nhập vào từ bà
phím.

d/ Lọc ra các cuốn sách được xuất bản trong cùng một năm nào đó.


ĐÁP ÁN
Bài 1:
uses crt;
type  hs=record
        ten:string;
        lt:real;
        th:real;
         end; {end record}

var  A:array[1..40] of hs;
    i:integer;


    begin
    clrscr;
    {nhap gia tri tung phan tu mang}
    For i:=1 to 3 do
                        begin
                         write('nhap ten:'); read(a[i].ten);
                         write('Nhap diem lt:'); read(a[i].lt);
                         write('Nhap diem th:'); readln(a[i].th);
                        end;

      {xuat tat ca cac phan tu cua mang}

      For i:=1 to 3 do
                        begin
                         writeln('nhap ten:',a[i].ten);
                         writeln('Diem lt:',a[i].lt:10:1);
                         writeln('Diem th:',a[i].th:10:1);
                        end;
        {in danh sach hoc sinh gioi}

      for i:=1 to 3 do
      if ((a[i].lt+a[i].th)/2) >8 then
                         begin
                         writeln('nhap ten:',a[i].ten);
                         writeln('Diem lt:',a[i].lt:10:1);
                         writeln('Diem th:',a[i].th:10:1);
                         end;

    readkey;


    end.

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

DÃY ĐAN DẤU TRONG PASCAL

DÃY ĐAN DẤU TRONG PASCAL Dãy đan dấu là dãy không có 2 phần tử cạnh nhau có dấu giống nhau. ví dụ: -2 4 -9 5 -23 8 là dãy đan dấu Thủ tục kiểm tra dãy đan dấu trong dãy số: procedure dandau; var i,j:integer;     kt:boolean; begin kt:=true; for i:=1 to N-1 do                 begin                 j:=i+1;                 if a[i] *a[j] >0 then kt:=false;                 end; If kt=true then write('Day A la day dan dau') else write('Day A khong phai day dan dau'); end;

Tam giác số (Pascal)

TAM GIÁC SỐ  (Câu 4. Hội thi Tin Học Trẻ Phú Yên lần thứ XIX - năm 2016)                              7                          3       8                      8      1       0                   2     7        4       4                 4    5      2       6       5 Cho một tam giác gồm các số nguyên không âm (xem hình trên). Hãy viết chương trình tính tổng lớn nhất của các số nằm trên lộ trình từ đỉnh xuống: - Tại mỗi bước đi, lộ trình có thể đi xuống phía bên trái hoặc xuống phía bên phải. - Số hàng trong tam giác lớn hơn...

VÒNG LẶP KHÔNG XÁC ĐỊNH WHILE..DO; REPEAT .. UNTIL

VÒNG LẶP KHÔNG XÁC ĐỊNH  WHILE..DO; REPEAT .. UNTIL - Vòng lặp While..do While <điều kiện > Do  <câu lệnh>; Câu lệnh sau do được thực hiện khi điều kiện được thỏa mãn (điều kiện =true); vòng lặp kết thúc khi điều kiện không thỏa (điều kiện =false) - Vòng lặp Repeat .. until; Repeat <câu lệnh>; Until <điều kiện>; Lặp lại câu lệnh cho đến khi nào  thỏa mãn điều kiện  (điều kiện =true) thì dừng lại;  Bài tập: Nhập vào một số nguyên A thỏa mãn (0<A<100), Tính tổng các số nguyên từ 1 đến A (S=1+2+...+A). Vận dụng câu lệnh While .. do uses crt; var A,I:  Integer; S:longint; begin          a:=0;          while not ((a>0) and (a<100)) do          begin          write('Nhap gia tri cua A:'); read(A);           end;          s:=0...