Tham chiếu trườngcủa bản ghi: Tên biến bản ghi.tên trường Gán giá trị cho từng trườngcủa b¶n ghi hoÆc gi÷a hai biÕn cïng kiÓu.[r]
(1)Bµi 16 Gi¸o ¸n ®iÖn tö tin häc líp 11 Lop11.com (2) Bài toán đặt vấn đề: Bảng kết kiểm tra chất lượng Trường (Field) SBD Hä tªn To¸n V¨n 10.0 9.0 8.5 5.0 01 NguyÔn An 02 Vò Ngäc B×nh 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 B¶n ghi (Record) KÕt qu¶ Yªu cÇu: NhËp vµo th«ng tin cña tõng häc sinh, tÝnh tæng vµ Bảng gồm : 50 đối tượng(record) với thuộc tính (Field) xÐt kÕt qu¶, biÕt r»ng nÕu tæng >=10 th× kÕt qu¶ lµ Lop11.com “§¹t” (3) D÷ liÖu kiÓu b¶n ghi Dữ liệu kiểu ghi dùng để mô tả các đối tượngcó cùng số thuộc tính mµ c¸c thuéc tÝnh cã thÓ cã kiÓu d÷ liÖu kh¸c Khai b¸o kiÓu b¶n ghi Type Var < tªn kiÓu b¶n ghi> = record <tên trường1> : kiểu trường1; < tên trường2> : kiểu trường2; end; <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>; Lop11.com (4) SBD Hä tªn To¸n V¨n 10.0 9.0 01 NguyÔn An 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 qu¶ 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; Lop11.com 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) (5) C¸c thao t¸c víi b¶n 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) cña tõng b¶n ghi ThÓ hiÖn b»ng 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; Lop11.com (6) Khi i = LOP[1].SBD * Nhập giá trị trườngcho SBD học sinh thứ nằm ë b¶n ghi ®Çu tiªn * Tươngtự nhưvậy nhập giá trị các trườngcòn lại SBD 01 Hä vµ 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 d÷ liÖu cho b¶n ghi thø n Lop11.com (7) b C¸c thao t¸c xö lÝ b¶n ghi TÝnh tæng ®iÓm v¨n vµ to¸n cña tõng häc sinh líp For i:=1 to n LOP[i].Tong:= LOP[i].Toan + LOP[i].Van; Dùng lệnh gì để tæng §iÒn ch÷ “§¹t” vµotÝnh cét kÕt qu¶cho cho nh÷ng häc sinh cã tæng >=10, tõng b¶n ghi nhØ ? ngượclạ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’; Lop11.com (8) c In d÷ liÖu kiÓu b¶n ghi Các bước : ThÓ hiÖn b»ng 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); Lop11.com (9) 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 chØnh { dien ket qua cho tung ban ghi } end; gi¶i bµi to¸nFor i:=1 to n Var LOP: ARRAY[1 100]để of Hocsinh; đặt vấn đề ? if LOP[i].Tong>=10 then i,n: integer; BEGIN 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; Lop11.com (10) 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 b¶n ghi, tªn và kiểu liệu các trường Tham chiếu trườngcủa ghi: Tên biến ghi.tên trường Gán giá trị cho trườngcủa b¶n ghi hoÆc gi÷a hai biÕn cïng kiÓu Lop11.com (11)