Bài 16 Giáo án điện tử tin học lớp 11 Bài toán đặt vấn đề: Trờng (Field) Bảng kết kiểm tra chất lợng SBD Họ tên Toán Văn 01 Ngun An 10.0 9.0 02 Vị Ngäc B×nh 8.5 5.0 48 Trần Thu Trà 7.0 6.5 49 Đặng Anh Tuấn 5.0 7.5 50 Phan Vân 6.0 4.5 Tổng Kết Bản ghi (Record ) Bảng Yêu cầu: gồmNhập : 50 vào đối tthông ợng (record) tin cđavíi tõng thc häc sinh, tÝnhtÝnh (Field) tổng xét kết quả, biết tổng Dữ liệu kiểu ghi Dữ liệu kiểu ghi dùng để mô tả đối tợng có số thuộc tính mà thuộc tính có kiểu liệu khác Khai báo kiểu ghi Type < tên kiểu ghi> = record : kiĨu trêng 1; < tªn trêng 2> : kiĨu trêng 2; end; Var : ; : ARRAY[1 Max] of < tên kiểu ghi>; SBD Họ tên Toán Văn 01 Nguyễn An 10.0 9.0 02 Vũ Ngọc Bình 8.5 5.0 48 Trần Thu Trà 7.0 6.5 49 Đặng Anh Tuấn 5.0 7.5 50 Phan Vân 6.0 4.5 Tổn g Kết Type 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 liệu cho trờng (field) Khai báo biến kiểu ghi (record) Các thao tác với ghi a Nhập thông tin học sinh Các bíc: - NhËp sè häc sinh - NhËp d÷ liƯu (các thuộc tính) ghi Thể pascal Write(‘ Nhap vao so hoc sinh lop : ‘); readln(n); For i:=1 to n 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; Khi i = LOP[1].SBD * Nhập giá trị trờng cho SBD cđa häc sinh thø nhÊt n»m ë b¶n ghi * Tơng tự nh nhập giá trị trờng lại SBD 01 Họ tên Nguyễn An Toán Văn 10.0 9.0 Quá trình nhập kết thúc nhập hết liệu cho ghi thứ n b Các thao tác xử lí ghi Tính tổng điểm văn toán học sinh líp For i:=1 to n LOP[i].Tong:= LOP[i].Toan + LOP[i].Van; Dùng lệnh để tính tổng Điền chữ Đạt vào cột kết cho học sinh có cho ghi tổng >=10, ngợc lại điền?chữ Khong dat” For i:=1 to n IF LOP[i].Tong>=10 then LOP[i].Ketqua=‘Dat’ else LOP[i].Ketqua=Khong dat; c In liệu kiểu ghi Các bớc: Thể pascal Thông báo in Writeln( Bang ket qua kiem tra chat luong ‘); In b¶ng d÷ liƯu For i:=1 to n 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); Program vd1; Uses crt; Type { Khai bao} Hocsinh = record SBD: integer; { tinh tong cho tung ban ghi } Hoten: string[30]; For i:=1 to n Toan,Van,Tong:real; LOP[i].Tong := LOP[i].Toan + LOP[i].Van; H·y viÕt ch ¬ng Ketqua: string[10]; trình hoàn end; { dien ket qua cho tung ban ghi } chỉnh để giải Var LOP: ARRAY[1 100] of Hocsinh; For i:=1 to n toán đặtif LOP[i].Tong>=10 then i,n: integer; BEGIN vÊn ®Ị ? LOP[i].Ketqua:=‘Dat’ Clrscr; { nhap so hoc sinh } else LOP[i].Ketqua:=‘Khong dat’; Write(‘ Nhap vao so hoc sinh lop : ‘); readln(n); { In bang du lieu } { nhap du lieu tung ban ghi} Writeln(‘ Bang ket qua kiem tra ‘); For i:=1 to n For i:=1 to n Begin Writeln(LOP[I].sbd:5,LOP[i].Hoten:30, writeln(‘ Nhap so lieu hoc sinh thu ‘,i); LOP[i].toan:5:1,LOP[i].Van:5:1, Write(‘ SBD : ‘); readln(LOP[i].SBD); LOP[i].tong:8:1,LOP[i].Ketqua:15); Write(‘HO VA TEN : ‘); readln(LOP[i].Hoten); Readln; Write(‘ Diem toan : ‘);readln(LOP[i].Toan); END Write(‘ Diem van : ‘);readln(LOP[i].Van); end; H·y nhí! Type Hocsinh = record SBD : integer; Hovaten : string[30]; Toan,Van,Tong:real; Ketqua :string[10]; end; Var LOP: ARRAY[1 50] of hocsinh; LOP[i].SBD Khai báo: tên biến ghi, tên kiểu liệu trờng Tham chiếu trờng ghi: Tên biến ghi.tên ờnggiá trị cho tr tr Gán ờng ghi hai biến kiÓu ... mà thuộc tính có kiểu liệu khác Khai báo kiểu ghi Type < tên kiểu ghi> = record : kiĨu trêng 1; < tªn trêng 2> : kiĨu trêng 2; end; Var : ; ... Bản ghi (Record ) Bảng Yêu cầu: gồmNhập : 50 vào đối tthông ợng (record) tin cđavíi tõng thc häc sinh, tÝnhtÝnh (Field) tổng xét kết quả, biết tổng Dữ liệu kiểu ghi Dữ liệu kiểu ghi dùng để mô tả... integer; Khai báo kiểu liệu cho trờng (field) Khai báo biến kiểu ghi (record) Các thao tác với ghi a Nhập thông tin học sinh Các bíc: - NhËp sè häc sinh - NhËp d÷ liƯu (các thuộc tính) ghi Thể pascal