Bài 13. Kiểu bản ghi

Chia sẻ bởi Phan Văn Thế | Ngày 10/05/2019 | 367

Chia sẻ tài liệu: Bài 13. Kiểu bản ghi thuộc Tin học 11

Nội dung tài liệu:

Kiểu bản ghi
...
...
.......
...
Tổng

4.5
6.0
Phan Vân
50
7.5
5.0
Đặng Anh Tuấn
49
6.5
7.0
Trần Thu Trà
48
5.0
8.5
Vũ Ngọc Bình
02
9.0
10.0
Nguyễn An
01
Kết quả
Văn
Toán
Họ tên
SBD
Bảng kết quả kiểm tra chất lượng
Bả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?
- Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng có cùng một số
1. Khai báo
Type
= Record
: kiểu trường 1;
< tên trường 2> : kiểu trường 2;
end;
liệu thuộc tính mà các thuộc tính có thể có kiểu dữ khác nhau.
Var : ;
: Array[1..Max] of ;
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)
1. Khai báo
- Tham chiếu đến trường của bản ghi
1. Khai báo
- Nếu A là biến kiểu bản ghi, X là một trường
- Để tham chiếu đến trường X, ta viết A.X
- Vd: Lop[i].Hoten {tham chiếu đến họ tên của học sinh thứ i
For i:=1 to n do
Begin
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;
- Ví dụ đoạn nhập các học sinh
9.0
10.0
Nguyễn An
01
Khi 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.
1. Khai báo
2. Gán giá trị
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
For i:=1 to n do
IF LOP[i].Tong>=10 then
LOP[i].Ketqua=?Dat?
else LOP[i].Ketqua=?Khong dat?;
- Nếu A, B là biến bản ghi thì dùng lệnh gán trực tiếp A:=B;
- Gán giá trị từng trừng bằng phương pháp nhập;
ngược lại điền chữ ?Khong dat?.
- Ví dụ
2. Gán giá trị
Nhập một lớp gồm n học sinh (n<50), gồm Họ tên, ngày sinh, địa chỉ, điểm toán, văn,
Sau đó xếp loại theo các tiêu chuẩn
Program QLHocsinh;
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);
2. Gán giá trị
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;
For i:=1 to n do {nhap du lieu tung ban ghi}
For i:=1 to n do {tinh tong cho tung ban ghi}
LOP[i].Tong := LOP[i].Toan + LOP[i].Van;
2. Gán giá trị
For i:=1 to n do {dien ket qua cho tung ban ghi}
If LOP[i].Tong>=10 then
LOP[i].Ketqua:=?Dat?
else LOP[i].Ketqua:=?Khong dat?;
Writeln(? Bang ket qua kiem tra ?); {In bang du lieu}
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
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Phan Văn Thế
Dung lượng: | Lượt tài: 15
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)