Bµi 13 Gi¸o ¸n ®iÖn tö tin häc líp 11 GV Dinh Nguyen Thanh Tu suu tam va gioi thieu voi CENTEA Data ! "#$" %&'()*+,-'./0 1. Bµi to¸n ®Æt vÊn ®Ò: B¶ng kÕt qu¶ kiÓm tra chÊt lîng B¶n ghi (Record) Trêng (Field) )123456'789:+;<=>6'?'@9A6:B;< C.3DE=+'F'6G'HI6J'@'= KL'M&'()JN6&'O&'PQ"' M&'()B R' “ ” 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 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; end; Var <tªn biÕn > : <tªn kiÓu b¶n ghi>; <tªn m¶ng > : ARRAY[1 Max] of < tªn kiÓu b¶n ghi>; 2.D÷ liÖu kiÓu b¶n ghi ! " #$ " %&'() *+,-'./0 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 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 DE'F'6I6 Write(‘ Nhap vao so hoc sinh trong lop : ‘); readln(n); C¸c bíc: ThÓ hiÖn b»ng pascal SDEI5I6 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; SDE;TB6U(c¸c thuéc tÝnh) G 'HN)6 "#$" *+,-='./0 %66Q"LOP[1].SBD V,' DEM&''WM6DE&';TB6U+N)6 'X * DE6,'Y'7Z+/0GI6'X' O2[N)64'6. \7]'^7=D#DE6,'Y,'7Z_BR6 N`,'+',KaB@'+N)6 Tí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; b;TB6UM6cN)6 C¸c bíc: ThÓ hiÖn b»ng pascal FN,+6 Writeln(‘ Bang ket qua kiem tra chat luong ‘); For i:=1 to n do bN);TB6U 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); 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; BEGIN Clrscr; { 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ờng 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 . Bµi 13 Gi¸o ¸n ®iÖn tö tin häc líp 11 GV Dinh Nguyen Thanh Tu suu tam va gioi thieu voi CENTEA Data . 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