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.
Type
< tên kiểu bản ghi> = record
: 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 : ;
: ARRAY[1.Max] of < tên kiểu bản ghi>;
12 trang |
Chia sẻ: quynhsim | Lượt xem: 759 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng lớp 10 môn Tin - Bài 13: Kiểu bản ghi, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bài 13 kiểu bản ghiGiáo án điện tử tin học lớp 11................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; .. : kiểu trường k; 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 A,B: Hocsinh; LOP: ARRAY[1..50] of Hocsinh; 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. Gỏn giỏ trịCú 2 cỏch để gỏn giỏ trị cho biến bản ghi:+ Dựng lệnh gỏn trức tiếp: Nếu A và B là 2 biến bản ghi cựng kiểu, thỡ ta cú thể gỏn giỏ trị của B cho A bằng cõu lệnh: A:=B;+ Gỏn giỏ trị cho từng trường: Cú thể thực hiện bằng lệnh gỏn hoặc nhập giỏ trị từ bàn phớm.-Tham chiếu đến phần tử của bản ghi: Nếu A là biến kiểu và X là tờn trường của A thỡ để tham chiếu đến trường X ta viết: A.XVớ dụ: Để tham chiếu đến điểm Toỏn của một học sinh ta viết: A.Toan4. 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ị trường cho 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].SBDChúc các em mạnh khỏe, yêu đời và học tập thật tốt
File đính kèm:
- dien tu.ppt