KHÁI NIỆM KIỂU BẢN GHI Giảm tải chương trình Đọc SGK trang 74... Cấu trúc khi tham chiếu đến từng trường của biến bản ghi?.. < tên trường > A.Hoten B.NgaySinhLop[i].ToanLop[i].Ly Ví dụ:
Trang 1SỞ giáo dục và đào tạo phú thọ
Tr ờng THPT TX phú THọ
-*** -GV: Nguyễn Thu Huyền
Trang 2Tiết 33 : Bài 13
KIỂU BẢN GHI
Trang 3BÀI TOÁN NÊU VẤN ĐỀ
Trường
Họ tên
Trường Điểm
Họ và tên Ngày sinh Giới
tính Điểm Toán Điểm lý Điểm Hóa Điểm Văn Điểm Tin
Nguyễn Thanh Bình 19/06/2001 Nữ 9 8 7 8 9
….
Trang 51 KHÁI NIỆM KIỂU BẢN GHI
Giảm tải chương trình (Đọc SGK trang 74)
Trang 72 KHAI BÁO KIỂU BẢN GHI
TYPE <tên kiểu bản ghi>= record
<tên trường 1>: < kiểu trường 1>;
<tên trường 2>: < kiểu trường 2>;
……….;
<tên trường k>: < kiểu trường k>;
end;
VAR
<tên biến bản ghi>: <tên kiểu bản ghi >;
TYPE < tên kiểu bản ghi >= record
< tên trường 1 >: < kiểu trường 1>;
< tên trường 2 >: < kiểu trường 2>;
Trang 8Cấu trúc khi tham chiếu đến từng trường
của biến bản ghi?
<tên biến bản ghi> <tên trường>
< tên biến bản ghi > < tên trường >
A.Hoten B.NgaySinhLop[i].ToanLop[i].Ly
Ví dụ:
THAM CHIẾU TỚI KÍ TỰ CỦA XÂU
Với i là chỉ số nào đó của mảng Lop
Trang 103 G¸n gi¸ trÞ
Có 2 cách để gán giá trị cho bản ghi:
• Dùng lệnh gán trực tiếp: nếu A, B là 2 bản ghi cùng kiểu ta có thể gán giá trị của A cho B bằng câu lệnh gán.
<tên biến bản ghi> <tên trường>:=<giá trị trường>;
Trang 11CHÚ Ý
Để gán được giá trị cho biến kiểu bản ghi phải thỏa các điều kiện sau:
– Nếu gán trực tiếp 2 bản ghi, vd: A:=B
thì A và B phải cùng kiểu bản ghi.
Trang 12Ví dụ một lớp gồm N(N<=60) học sinh Cần quản lý học sinh với các thuộc tính nh họ tên, ngày sinh, địa chỉ,
điểm toán, điểm văn, xếp loại.
Trang 13Nhập thông tin cho từng học sinh
Write(‘ Nhap vao so hoc sinh trong lop : ‘); readln(n);
- Nhập số học sinh
For i:=1 to n do Begin
writeln(‘ Nhap du lieu cho hoc sinh thu ‘,i);Write(‘ SBD : ‘); readln(LOP[i].SBD);
Write(‘Ho va ten : ‘); readln(LOP[i].Hoten);
Write(‘Ngay Sinh : ‘); readln(LOP[i].Ngaysinh);
Write(‘Gioi tinh : ‘); readln(LOP[i].Gioitinh);
Write(‘ Diem toan : ‘);readln(LOP[i].Toan);
Write(‘ Diem van : ‘);readln(LOP[i].Van);
end;
- Nhập dữ kiệu (các
trường) của bản ghi
Trang 14Các thao tác xử lí trong bản ghi
LOP[i] Tong:= LOP[i] Toan + LOP[i] Van;
If LOP[i] Toan + LOP[i] Van >= 18 then
LOP[i] XepLoai:= ‘A’;
Trang 15In dữ liệu kiểu bản ghi
Thông báo in Writeln(‘ Danh sach xep loai hoc sinh trong lop ‘);
For i:=1 to n do
In bảng dữ liệu
Writeln(LOP[i].Hoten:30.’ – XepLoai : ‘,
LOP[i].Xeploai);
Trang 17H·y nhí!
G¸n gi¸ trÞ cho tõng tr
êng cña b¶n ghi hoÆc gi÷a hai biÕn cïng kiÓu.
Khai b¸o: tªn biÕn b¶n
ghi, tªn vµ kiÓu d÷ liÖu c¸c tr êng.
Tham chiÕu tr êng cña b¶n
Trang 18Trong NNLT Pascal, để khai báo kiểu bản ghi để xử lý danh sách cán bộ của một cơ quan, khai báo kiểu bản ghi nào trong các khai báo
chỉ, mức lương, phụ cấp)
Canbo : record Hoten : string[30];
Namsinh: integer;
Namsinh: integer;
Namsinh: integer;
Namsinh: integer;
Trang 19Để truy cập vào từng trường của bản ghi ta viết?
A <Tên biến bản ghi>.<Giá trị của trường>
B <Tên kiểu bản ghi>.<Tên trường>
C <Tên biến bản ghi>.<Tên trường>
D <Tên kiểu bản ghi>.<Giá trị của trường>
Trang 20Bµi tËp vÒ nhµ
Viết chương trình nhập dữ liệu cho phiếu
kiểm tra sức khỏe của học sinh lớp 11A gồm các trường sau: họ và tên, giới tính, chiều cao, cân nặng Sau đó hiển thị dữ liệu vừa nhập ra màn hình?
(SGK – 80)