Tải bản đầy đủ (.ppt) (14 trang)

Tin học 11-Kiểu bản ghi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (506.4 KB, 14 trang )







 !
"#$"
%&'()*+,-'./0
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)
)123456'789:+;<=>6'?'@9A6:B;<
C.3DE=+'F'6G'HI6J'@'=
KL'M&'()JN6&'O&'PQ"' M&'()B
R' “ ”

Bài
13
Trửụứng THPT Long Khaựnh A
GV: Nguyeón Hửừu Taõn

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 k> : <kiÓu trêng k>;
end;
Var <tªn biÕn bản ghi > : <tªn kiÓu b¶n ghi>;
<tªn m¶ng > : ARRAY[1 Max] of < tªn kiÓu b¶n ghi>;
D÷ liÖu kiÓu b¶n ghi

Type
Type


Hocsinh = record
Hoten: string[30];
Ngaysinh: string[10];
Gioitinh: string[5];
Tin,Toan,Li,Hoa,Van,Su,Dia: real;
end;
Var
Var LOP: ARRAY[1 50] of Hocsinh;
i,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)
Bảng kết quả thi
TT Họ và tên NS GT Tin Toán Lí Hoá Văn Sử Địa
1 Nguyễn Văn An 1990 Nam 8 9 8 6 2 3 5
2 Đào Văn Bình 1991 Nam 9 6 5 8 1 8 2
… …… … … … … … … … … …
50 Nguyễn Thị Huệ 1988 Nữ 9 8 7 5 6 4 3









 !
"
#$
"
%&'()
*+,-'./0
Type
Type
Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
Var
Var LOP: ARRAY[1 50] of Hocsinh;
i,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'6I6
Write(‘ Nhap vao so hoc sinh trong lop : ‘);
readln(n);
C¸c bíc:
ThÓ hiÖn b»ng
pascal
SDEI5I6
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;
SDE;TB6U(c¸c
thuéc tÝnh) G
'HN)6

"#$"
*+,-='./0
%66Q"LOP[1].SBD

V,' DEM&''WM6DE&';TB6U+N)6
'X
* DE6,'Y'7Z+/0GI6'X'
O2[N)64'6.
\7]'^7=D#DE6,'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 ?
For i:=1 to n do
LOP[i].Tong:= LOP[i].Toan + LOP[i].Van;
Điền chữ Dat 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;TB6UM6cN)6
C¸c bíc: ThÓ hiÖn b»ng
pascal
FN,+6
Writeln(‘ Bang ket qua kiem tra chat luong ‘);
For i:=1 to n do
bN);TB6U
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



Trong NNLT Pascal, để khai báo kiểu bản ghi để xử lý danh sách
cán bộ của một cơ quan, khai báo kiểu bản ghi nào trong các khai báo
sau là đúng? (Bản ghi có cấu trúc gồm 5 trường: Họ tên, năm sinh, địa
chỉ, mức lương, phụ cấp).
Type
Canbo : record
Hoten : string[30];
Namsinh: integer;
Diachi : string[90];
Mucluong: Real;
Phucap: Real;
End;
Type
Canbo = record
Hoten : string[30];
Namsinh: integer;
Diachi : string[90];
Mucluong: Real;
Phucap: Real;
End;
Type
Canbo = record;
Hoten : string[30];
Namsinh: integer;
Diachi : string[90];
Mucluong: Real;
Phucap: Real;
End;
Type

Canbo = record
Hoten : string[30];
Namsinh: integer;
Diachi : string[90];
Mucluong: Real;
Phucap: Real;
End.
A B
C D
Type
Canbo = record
Hoten : string[30];
Namsinh: integer;
Diachi : string[90];
Mucluong: Real;
Phucap: Real;
End;
B

Để truy cập vào từng trường của bản ghi ta viết?
A. <Tên biến bản ghi>.<Giá trị của trường>
B. <Tên kiểu bản ghi>.<Tên trường>
C. <Tên biến bản ghi>.<Tên trường>
D. <Tên kiểu bản ghi>.<Giá trị của trường>
BÀI TẬP VỀ NHÀ
I. Phần lý thuyết: Bài 1, 2, 3, 4 trang 79
II. Phần bài tập và thực hành: Bài 6, 7, 10 trang 79+80

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×