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

Chia sẻ bởi Trần Trung | Ngày 10/05/2019 | 116

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:

Bài toán:
Bảng kết quả kiểm tra chất lượng
Viết chương trình nhập vào từ bàn phím các thông tin (họ và tên, ngày sinh, địa chỉ, điểm toán, điểm văn) của từng học sinh trong lớp, thực hiện xếp loại và đưa ra màn hình kết quả xếp loại học sinh.
Hãy mô tả cấu trúc dữ liệu để giải bài toán?
Dữ liệu kiểu bản ghi (record) dùng để mô tả các đối tượng có cùng một số thuộc tính (field) mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
Đối tượng cần quản lí ở bảng dưới là gì?
Các đối tượng có cùng thuộc tính đó là những thuộc tính nào?
ở bảng dưới có bao nhiêu đối tượng được quản lí?
Bảng gồm : N đối tượng (record) với 6 thuộc tính (Field)
Bản ghi
(Record)
Trường
(Field)
Dữ liệu kiểu bản ghi (record) dùng để mô tả các đối tượng có cùng một số thuộc tính (field) mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
Em hiểu thế nào là một bản ghi (record), một trường (field)?
1. D?nh nghia kiểu bản ghi, khai báo biến bản ghi.
Type
< tên kiểu bản ghi> = record
: ;
... ...
< tên trường k> : ;
end;
Var : ;
: ARRAY[1..Max] of < tên kiểu bản ghi>;
Dữ liệu kiểu bản ghi (record) dùng để mô tả các đối tượng có cùng một số thuộc tính (field) mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
Tham chiếu đến từng trường: .
Type
Hocsinh = record
Hoten: string[30];
Ngaysinh:string[10];
Diachi:string[50];
Toan,Van: real;
Xeploai: char;
end;
Var LOP: ARRAY[1..60] 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)
Ví dụ: Định nghĩa kiểu bản ghi và các biến bản ghi phù hợp cho bài toán đã nêu?
3
2. Gán giá trị.
Hãy cho biết cách gán giá trị cho biến bản ghi?
Có hai cách để gán giá trị cho biến bản ghi:
Dùng lệnh gán trực tiếp:
VD: A:=B; {A,B là 2 biến bản ghi cùng kiểu}

Gán giá trị cho từng trường:
VD: Lop[5].hoten:=`Le Thi Thanh Phuong`;
Lop[5].xeploai:=`A`
Ví dụ:
Một lớp gồm N (N<=60) học sinh. Cần quản lí học sinh với các thuộc tính như họ và tên, ngày sinh, địa chỉ, điểm toán, điểm văn, xếp loại.
Giả sử việc xếp loại được xác định như sau:
Nếu (điểm toán + điểm văn) >=18 thì xếp loại A.
Nếu 14 <= (điểm toán + điểm văn) < 18 thì xếp loại B.
Nếu 10 <= (điểm toán + điểm văn) < 14 thì xếp loại C.
Nếu (điểm toán + điểm văn) <10 thì xếp loại d.
Nhập thông tin học sinh
Các bước:
Thể hiện bằng pascal
Nhập số học sinh
Nhập dữ liệu từng bản ghi.
For i:=1 to n do
Begin
writeln(` --------- `,i,` --------`); writeln;
write(` Ho va ten: `);readln(lop[i].ho_ten);
write(` Ngay sinh: `); readln(lop[i].ngay_sinh);
write(` Dia chi: `); readln(lop[i].dia_chi);
write(` Diem Toan: `);readln(lop[i].toan);
write(` Diem Van: `); readln(lop[i].van);

if lop[i].toan+lop[i].van>=18 then lop[i].xep_loai:=`A`;
if (lop[i].toan+lop[i].van>=14) and (lop[i].toan+lop[i].van<18) then lop[i].xep_loai:=`B`;
if (lop[i].toan+lop[i].van>=10) and (lop[i].toan+lop[i].van<14) then lop[i].xep_loai:=`C`;
if lop[i].toan+lop[i].van<10 then lop[i].xep_loai:=`D`;
end;

write(` So luong hs trong lop N= `); readln(n);
Khi i = 1 ? Lop[1].hoten
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 HOTEN 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. Trường Xeploai được gán giá trị.
A
9
10
Nam Đàn
22/09/91
Nguyễn An
nào?
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(` DANH SACH XEP LOAI `);
In bảng dữ liệu
For i:=1 to n do
Writeln(lop[i].ho_ten:25, ` - Xep loai: `, lop[i].xep_loai);
program xep_loai;
uses crt;
const Max=60;
Type hoc_sinh=record
ho_ten:string[25];
ngay_sinh:string[10];
dia_chi:string[50];
toan,van:real;
xep_loai:char;
end;
var lop:array[1..max] of hoc_sinh;
N,i:byte;
BEGIN
clrscr;
write(` So luong hs trong lop N= `); readln(n);
for i:=1 to n do
begin
writeln;
writeln(` --------- `,i,` --------`); writeln;
write(` Ho va ten: `);readln(lop[i].ho_ten);
write(` Ngay sinh: `); readln(lop[i].ngay_sinh);
write(` Dia chi: `); readln(lop[i].dia_chi);
write(` Diem Toan: `);readln(lop[i].toan); write(` Diem Van: `); readln(lop[i].van);

if lop[i].toan+lop[i].van>=18 then lop[i].xep_loai:=`A`;

if (lop[i].toan+lop[i].van>=14) and (lop[i].toan+lop[i].van<18)
then lop[i].xep_loai:=`B`;

if (lop[i].toan+lop[i].van>=10) and (lop[i].toan+lop[i].van<14)
then lop[i].xep_loai:=`C`;

if lop[i].toan+lop[i].van<10 then lop[i].xep_loai:=`D`;
end;
clrscr;writeln;
writeln(` DANH SACH XEP LOAI `); writeln;
for i:=1 to n do
writeln(lop[i].ho_ten:25, ` - Xep loai: `,lop[i].xep_loai);
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:
.
Type
Hocsinh = record
Hoten: string[30];
Ngaysinh:string[10];
Diachi:string[50];
Toan,Van: real;
Xeploai: char;
end;
Var LOP: Array[1..60] of Hocsinh;
I,j,n : integer;
Lop[i].Hoten
Lop[i].Ngaysinh
Lop[i].Diachi
Lop[i].Toan
...
Để quản lí xe máy trong một cửa hàng người ta quản lí các thông tin sau: Kí hiệu xe, tên xe, nguồn gốc, giá tiền, thuế. Viết chương trình thực hiện các công việc sau:
a. Nhập vào danh sách xe máy có trong cửa hàng, trong đó thuế không nhập mà được tính bằng công thức 10%*giá tiền.
b. Tìm và hiển thị các xe có nguồn gốc từ Nhật Bản.
c. Cho biết tên xe, kí hiệu xe của xe máy có giá tiền cao nhất.
bài tập về nhà
* 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ẻ: Trần Trung
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)