Bài 13. Kiểu bản ghi
Chia sẻ bởi Đinh Công Bình |
Ngày 10/05/2019 |
59
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:
CHÀO MỪNG QUÝ THẦY CÔ
ĐẾN THAM DỰ TIẾT THAO GIẢNG MÔN: TIN HỌC
KIỂM TRA BÀI CŨ
Câu hỏi: Cho 2 xâu S và S1:
S:=‘THUC HANH TIN HOC’;
S1:=‘BAI TAP’;
Hãy cho biết kết quả của một số hàm và thủ tục chuẩn sau đây:
+Length(S);
+Insert(S1,S,1);
+Copy(S,11,7);
17
BAI TAP THUC HANH TIN HOC
TIN HOC
BẢNG KẾT QUẢ KIỂM TRA CHẤT LƯỢNG
Bài 13:
KIỂU BẢN GHI
GIÁO VIÊN GIẢNG DẠY : ĐINH CÔNG BÌNH
LỚP DỰ GIỜ : 11 A 5
...
...
.......
...
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
Trường
(Field)
Bản ghi
(Record)
Bảng gồm : 50 đối tượng (record) với 6 thuộc tính (Field)
1. Dữ liệu kiểu bản ghi:
2. Khai báo:
a. Khai báo kiểu bản ghi:
- Cú pháp:
Type < tên kiểu bản ghi> = record
: ;
………………………………………
< tên trường k> :;
end;
b. Khai báo biến bản ghi:
- Cú pháp:
Var : ;
: ARRAY[1..n] of < tên 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 Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
Var LOP: ARRAY[1..50] of Hocsinh;
i,n : integer;
c. Ví dụ:
- Cú pháp: . ;
Để tham chiếu đến trường điểm Toán của học sinh A?
A.Toán
Để tham chiếu đến trường Hoten của học sinh thứ 10 trong lớp ?
Lop[10].Hoten
Ví dụ:
3. Tham chiếu đến từng trường của phần tử bản ghi:
Gán trực tiếp: gán nguyên cả biến bản ghi
4. Gán giá trị:
Ví dụ
A:=B
Gán từng trường:
Ví dụ 1: gán lần lượt từng trường
A.Hoten:= B.Hoten; A.Toan:= B.Toan; A.Van:= B.Van;
Ví dụ 2: nhập lần lượt từng trường từ bàn phím
Readln(A.Hoten); Readln(A.Toan); Readln(A.Van);
...
...
.......
...
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
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”
5. Bài tập ví dụ:
Phân tích bài toán:
Type Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
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)
5.1 Phần khai báo kiểu bản ghi:
5.2 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.
* 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 ghi
Tính tổng điểm văn và toán của từng học sinh trong lớp.
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’;
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);
Program vd1;
Uses crt;
Type Hocsinh = record { Khai bao }
SBD: integer;
Hoten: string[30];
Toan,Van,Tong:real;
Ketqua: string[10];
end;
Var LOP: ARRAY[1..50] 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.
Bộ thử nghiệm:
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
CỦNG CỐ
Xem lại bài 13
-Chuẩn bị bài 14: KIỂU DỮ LIỆU TỆP
DẶN DÒ
CHÂN THÀNH CẢM ƠN
QUÝ THẦY CÔ
ĐẾN THAM DỰ TIẾT THAO GIẢNG MÔN: TIN HỌC
KIỂM TRA BÀI CŨ
Câu hỏi: Cho 2 xâu S và S1:
S:=‘THUC HANH TIN HOC’;
S1:=‘BAI TAP’;
Hãy cho biết kết quả của một số hàm và thủ tục chuẩn sau đây:
+Length(S);
+Insert(S1,S,1);
+Copy(S,11,7);
17
BAI TAP THUC HANH TIN HOC
TIN HOC
BẢNG KẾT QUẢ KIỂM TRA CHẤT LƯỢNG
Bài 13:
KIỂU BẢN GHI
GIÁO VIÊN GIẢNG DẠY : ĐINH CÔNG BÌNH
LỚP DỰ GIỜ : 11 A 5
...
...
.......
...
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
Trường
(Field)
Bản ghi
(Record)
Bảng gồm : 50 đối tượng (record) với 6 thuộc tính (Field)
1. Dữ liệu kiểu bản ghi:
2. Khai báo:
a. Khai báo kiểu bản ghi:
- Cú pháp:
Type < tên kiểu bản ghi> = record
………………………………………
< tên trường k> :
end;
b. Khai báo biến bản ghi:
- Cú pháp:
Var
- 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 Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
Var LOP: ARRAY[1..50] of Hocsinh;
i,n : integer;
c. Ví dụ:
- Cú pháp:
Để tham chiếu đến trường điểm Toán của học sinh A?
A.Toán
Để tham chiếu đến trường Hoten của học sinh thứ 10 trong lớp ?
Lop[10].Hoten
Ví dụ:
3. Tham chiếu đến từng trường của phần tử bản ghi:
Gán trực tiếp: gán nguyên cả biến bản ghi
4. Gán giá trị:
Ví dụ
A:=B
Gán từng trường:
Ví dụ 1: gán lần lượt từng trường
A.Hoten:= B.Hoten; A.Toan:= B.Toan; A.Van:= B.Van;
Ví dụ 2: nhập lần lượt từng trường từ bàn phím
Readln(A.Hoten); Readln(A.Toan); Readln(A.Van);
...
...
.......
...
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
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”
5. Bài tập ví dụ:
Phân tích bài toán:
Type Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
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)
5.1 Phần khai báo kiểu bản ghi:
5.2 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.
* 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 ghi
Tính tổng điểm văn và toán của từng học sinh trong lớp.
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’;
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);
Program vd1;
Uses crt;
Type Hocsinh = record { Khai bao }
SBD: integer;
Hoten: string[30];
Toan,Van,Tong:real;
Ketqua: string[10];
end;
Var LOP: ARRAY[1..50] 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.
Bộ thử nghiệm:
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
CỦNG CỐ
Xem lại bài 13
-Chuẩn bị bài 14: KIỂU DỮ LIỆU TỆP
DẶN DÒ
CHÂN THÀNH CẢM ƠN
QUÝ THẦY CÔ
* 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ẻ: Đinh Công Bình
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)