Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng có cùng một số thuộc tính mà các thuộc tính có thể có kiểu dữ liệu khác nhau.
Khai báo kiểu bản ghi
Type
< tên="" kiểu="" bản="" ghi=""> = record
< tên="" trường="" 2=""> : kiểu trường 2;
end;
Var
Bài 13: KIỂU BẢN GHIGiáo án điện tử tin học lớp 11GV: Vừ Minh HoàngNgày soạn: 20/02/2009Tiết: 33................Tổng4.56.0Phan Vân507.55.0Đặng Anh Tuấn 496.57.0Trần Thu Trà485.08.5Vũ Ngọc Bình029.010.0Nguyễn An01Kết quảVănToánHọ tênSBDBài toán đặt vấn đề:Bảng kết quả kiểm tra chất lượngBản ghi(Record) Trường(Field)Bảng gồm : 50 đối tượng (record) với 6 thuộc tính (Field)Yêu cầu: Nhập vào thông tin của từng học sinh, tính tổng và xét kết quả, biết rằng nếu tổng >=10 thì kết quả là “Đạt” 1. Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng có cùng một số thuộc tính mà các thuộc tính có thể có kiểu dữ liệu khác nhau. 2. Khai báo kiểu bản ghiType = record : kiểu trường 1; : kiểu trường 2; end;Var : ; : ARRAY[1..Max] of ; Dữ liệu kiểu bản ghi................Tổng4.56.0Phan Vân507.55.0Đặng Anh Tuấn 496.57.0Trần Thu Trà485.08.5Vũ Ngọc Bình029.010.0Nguyễn An01Kết quảVănToánHọ tênSBDType Hocsinh = record SBD: integer; Hoten: string[30]; Toan,Van,Tong: real; Ketqua: string[10]; end;Var LOP: ARRAY[1..50] of Hocsinh; I,j,n : integer;Khai báo kiểu dữ liệu cho các trường (field)Khai báo biến kiểu bản ghi (record)3. Các thao tác với bản ghi a. Nhập thông tin học sinh Write(‘ Nhap vao so hoc sinh trong lop : ‘); readln(n);Các bước:Thể hiện bằng pascal- 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 TEN : ‘); readln(LOP[i].Hoten);Write(‘ Diem toan : ‘);readln(LOP[i].Toan);Write(‘ Diem van : ‘);readln(LOP[i].Van);end;- Nhập dữ liệu (các thuộc tính) của từng bản ghi9.010.0Nguyễn An01VănToánHọ và tênSBDKhi i = 1 LOP[1].SBD Quá trình nhập kết thúc khi nhập hết dữ liệu cho bản ghi thứ n. * Nhập giá trị cho trường SBD của học sinh thứ nhất nằm ở bản ghi đầu tiên. * Tương tự như vậy nhập giá trị các trường còn lại. b. Các thao tác xử lí trong bản ghiTính tổng điểm văn và toán của từng học sinh trong lớp.Dùng lệnh gì để tính tổng cho từng bản ghi nhỉ ?For i:=1 to n do LOP[i].Tong:= LOP[i].Toan + LOP[i].Van; Điền chữ “Đạt” vào cột kết quả cho những học sinh có tổng >=10, ngược lại điền chữ “Khong dat”.For i:=1 to n do IF LOP[i].Tong>=10 then LOP[i].Ketqua=‘Dat’ else LOP[i].Ketqua=‘Khong dat’; c. In dữ liệu kiểu bản ghiCác bước:Thể hiện bằng pascalThông báo inWriteln(‘ Bang ket qua kiem tra chat luong ‘);For i:=1 to n doIn bảng dữ liệuWriteln(LOP[I].sbd:5,LOP[i].Hoten:30, LOP[i].Toan:5:1,LOP[i].Van:5:1,LOP[i].Tong:8:1,LOP[i].Ketqua:15);Hãy viết chương trình hoàn chỉnh để giải bài toán đặt vấn đề ?Program vd1;Uses crt;Type { Khai bao} Hocsinh = record SBD: integer; Hoten: string[30]; Toan,Van,Tong:real; Ketqua: string[10]; end;Var LOP: ARRAY[1..100] of Hocsinh; i,n: integer;BEGINClrscr; { nhap so hoc sinh }Write(‘ Nhap vao so hoc sinh trong lop : ‘);readln(n); { nhap du lieu tung ban ghi}For i:=1 to n do Begin writeln(‘ Nhap so lieu hoc sinh thu ‘,i);Write(‘ SBD : ‘); readln(LOP[i].SBD);Write(‘HO VA TEN : ‘); readln(LOP[i].Hoten);Write(‘ Diem toan : ‘);readln(LOP[i].Toan);Write(‘ Diem van : ‘);readln(LOP[i].Van);end; { tinh tong cho tung ban ghi }For i:=1 to n do LOP[i].Tong := LOP[i].Toan + LOP[i].Van; { dien ket qua cho tung ban ghi }For i:=1 to n do if LOP[i].Tong>=10 then LOP[i].Ketqua:=‘Dat’ else LOP[i].Ketqua:=‘Khong dat’; { In bang du lieu } Writeln(‘ Bang ket qua kiem tra ‘);For i:=1 to n do Writeln(LOP[I].sbd:5,LOP[i].Hoten:30, LOP[i].toan:5:1,LOP[i].Van:5:1, LOP[i].tong:8:1,LOP[i].Ketqua:15);Readln;END.Hã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 ghi: Tên biến bản ghi.tên trườngType Hocsinh = record SBD : integer; Hovaten : string[30]; Toan,Van,Tong:real; Ketqua :string[10]; end;VarLOP: ARRAY[1..50] of hocsinh;LOP[i].SBD
Tài liệu đính kèm: