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

Chia sẻ bởi Nguyễn An Sơn | Ngày 10/05/2019 | 139

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:

...
...
.......
...
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à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)
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 d? mụ t? cỏc d?i tu?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
: 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 bản ghi>;
Dữ liệu kiểu bản ghi
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 kiểu biến bản ghi (record)
3. 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 ghi
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? tru?ng cho SBD c?a h?c sinh th? nh?t n?m ? b?n ghi d?u tiờn.
* Tuong t? nhu v?y nh?p giỏ tr? cỏc tru?ng cũn l?i.
b. Các thao tác xử lí trong bản ghi
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’;
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 ‘);
For i:=1 to n do
In bảng dữ liệu
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 chuong trỡnh ho�n ch?nh d? gi?i b�i toỏn d?t v?n d? ?
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 tru?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 tru?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ẻ: Nguyễn An Sơn
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)