Bài 13. Kiểu bản ghi
Chia sẻ bởi Lưu Tiến Quang |
Ngày 10/05/2019 |
57
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:
Gi?i thi?u ki?u b?n ghi:
Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng cùng m?t s? thu?c tính cụ thể các kiểu dữ liệu khác nhau. Vậy bằng các nào mà kiểu bản ghi có thể mô tả được các đối tượng chúng ta cùng nhau tìm hiểu.
Xét ví dụ
Trong bảng có bao nhiêu trường?
Đối với các trường thuộc kiểu dữ liệu nào?
Có tất cả 7 trường
Kiểu dữ liệu dạng kí tự
Kiểu dữ liệu dạng số thực
KHAI BÁO
Type = Record
:;
:;
................
:;
End;
Sau khi khai báo kiểu bản ghi, ta khai báo biến thuộc kiểu bản ghi như sau:
Var: ;
Type Banghi= Record
Hoten:String;
ns:String; Gt:string;
dt,dl,dh,dv:Real;
End;
Var A: Banghi;
Ví dụ: Khai báo sau
Ta có khai báo mãng thuộc kiểu bản ghi như sau: A: Array[1..100] of Banghi;
Khi ta khai báo một biến A thuộc kiểu bản ghi Banghi và biến hoten là tên trường của A. Vậy làm như thế nào để ta lấy được hoten của của trường kiểu A đó?
Vậy ta phải ghi như sau: A.hoten
Nếu B là biến kiểu bản ghi và X là tên một trường của B, thì để tham chiếu đến trường X ta viết: B.X
2. GÁN GIÁ TRỊ
Có 2 cách để gán giá trị cho bản ghi
- Dùng lệnh gán trực tiếp: Nếu A, B là hai bản ghi cùng kiểu ta có thể gán giá trị của A cho B bằng câu lệnh gán:
VD: B:=A; hoặc A:=B;
- Gán giá trị cho từng trường. Dùng câu lệnh gán cho các trường hoặc nhập vào từ bàn phím.
VD: A.Hoten:=`Trần Thị Hạnh`;
Readln(A.ns);
Readln(A.dt);
Một lớp gồm N học sinh. Cần quản lý học sinh với các thuộc tính như họ tên, ngày sinh, giới tính, điểm toán, điểm văn, điểm hoá, điểm lý, điểm trung bình.
Em hãy xác định các trường, kiểu dữ liệu của từng trường tương ứng?
Họ tên, ngày sinh, giới tinh
Kiểu: String
Điểm toán, điểm văn, điểm hoá, điểm lý, điểm trung bình
Kiểu: Real
Ví dụ
Program Tinhdiemtb;
Uses crt; {Khai báo kiểu bản ghi}
Type Banghi = Record
Hoten:String;
ns:String; Gt:string;
dt,dl,dh,dv,dtb:Real;
End;
Var Lop: Array[1..60] of Banghi;
i,n:byte;
Begin
Clrscr; {Nhập dữ liệu cho từng học sinh}
Write(`Cho biet so luong hoc sinh`); Readln(n);
For i:=1 to n do
Begin
Write(`Nhap vao hoc sinh thư: `,i,`: `);
Write(`Họ tên:`); Readln(Lop[i].hoten);
Write(`Ngày sinh:`); Readln(Lop[i].ns);
Write(`Giới tính:`); Readln(Lop[i].gt);
Write(`Điểm toán:`); Readln(Lop[i].dt);
Write(`Điểm văn:`); Readln(Lop[i].dv);
Write(`Điểm lý:`); Readln(Lop[i].dl);
Write(`Điểm hoá:`); Readln(Lop[i].dh);
End;
{Xuất dữ liệu ra màn hình}
For i:=1 to n do
Witeln(`Họ tên: `, Lop[i].hoten:5,` Giới tính `, Lop[i].gt:5,` Điểm toán: `, Lop[i].dt:5:2, ,` Điểm văn `, Lop[i].dv:5:2, ,` Điểm lý: `, Lop[i].dl:5:2, ,` Điểm hoá: `, Lop[i].dh:5:2, ,` Điểm ttrung bình: `, (Lop[i].dt+ Lop[i].dv +Lop[i].dl+ Lop[i].dh )/4:5:2);
Readln;
End.
CŨNG CỐ
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 kiểu bản ghi:
Tên biến bản ghi . Tên trường
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.
Xin chân thành cảm ơn!
Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng cùng m?t s? thu?c tính cụ thể các kiểu dữ liệu khác nhau. Vậy bằng các nào mà kiểu bản ghi có thể mô tả được các đối tượng chúng ta cùng nhau tìm hiểu.
Xét ví dụ
Trong bảng có bao nhiêu trường?
Đối với các trường thuộc kiểu dữ liệu nào?
Có tất cả 7 trường
Kiểu dữ liệu dạng kí tự
Kiểu dữ liệu dạng số thực
KHAI BÁO
Type
................
End;
Sau khi khai báo kiểu bản ghi, ta khai báo biến thuộc kiểu bản ghi như sau:
Var
Type Banghi= Record
Hoten:String;
ns:String; Gt:string;
dt,dl,dh,dv:Real;
End;
Var A: Banghi;
Ví dụ: Khai báo sau
Ta có khai báo mãng thuộc kiểu bản ghi như sau: A: Array[1..100] of Banghi;
Khi ta khai báo một biến A thuộc kiểu bản ghi Banghi và biến hoten là tên trường của A. Vậy làm như thế nào để ta lấy được hoten của của trường kiểu A đó?
Vậy ta phải ghi như sau: A.hoten
Nếu B là biến kiểu bản ghi và X là tên một trường của B, thì để tham chiếu đến trường X ta viết: B.X
2. GÁN GIÁ TRỊ
Có 2 cách để gán giá trị cho bản ghi
- Dùng lệnh gán trực tiếp: Nếu A, B là hai bản ghi cùng kiểu ta có thể gán giá trị của A cho B bằng câu lệnh gán:
VD: B:=A; hoặc A:=B;
- Gán giá trị cho từng trường. Dùng câu lệnh gán cho các trường hoặc nhập vào từ bàn phím.
VD: A.Hoten:=`Trần Thị Hạnh`;
Readln(A.ns);
Readln(A.dt);
Một lớp gồm N học sinh. Cần quản lý học sinh với các thuộc tính như họ tên, ngày sinh, giới tính, điểm toán, điểm văn, điểm hoá, điểm lý, điểm trung bình.
Em hãy xác định các trường, kiểu dữ liệu của từng trường tương ứng?
Họ tên, ngày sinh, giới tinh
Kiểu: String
Điểm toán, điểm văn, điểm hoá, điểm lý, điểm trung bình
Kiểu: Real
Ví dụ
Program Tinhdiemtb;
Uses crt; {Khai báo kiểu bản ghi}
Type Banghi = Record
Hoten:String;
ns:String; Gt:string;
dt,dl,dh,dv,dtb:Real;
End;
Var Lop: Array[1..60] of Banghi;
i,n:byte;
Begin
Clrscr; {Nhập dữ liệu cho từng học sinh}
Write(`Cho biet so luong hoc sinh`); Readln(n);
For i:=1 to n do
Begin
Write(`Nhap vao hoc sinh thư: `,i,`: `);
Write(`Họ tên:`); Readln(Lop[i].hoten);
Write(`Ngày sinh:`); Readln(Lop[i].ns);
Write(`Giới tính:`); Readln(Lop[i].gt);
Write(`Điểm toán:`); Readln(Lop[i].dt);
Write(`Điểm văn:`); Readln(Lop[i].dv);
Write(`Điểm lý:`); Readln(Lop[i].dl);
Write(`Điểm hoá:`); Readln(Lop[i].dh);
End;
{Xuất dữ liệu ra màn hình}
For i:=1 to n do
Witeln(`Họ tên: `, Lop[i].hoten:5,` Giới tính `, Lop[i].gt:5,` Điểm toán: `, Lop[i].dt:5:2, ,` Điểm văn `, Lop[i].dv:5:2, ,` Điểm lý: `, Lop[i].dl:5:2, ,` Điểm hoá: `, Lop[i].dh:5:2, ,` Điểm ttrung bình: `, (Lop[i].dt+ Lop[i].dv +Lop[i].dl+ Lop[i].dh )/4:5:2);
Readln;
End.
CŨNG CỐ
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 kiểu bản ghi:
Tên biến bản ghi . Tên trường
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.
Xin chân thành cảm ơn!
* 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ẻ: Lưu Tiến Quang
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)