1. Trang chủ
  2. » Giáo án - Bài giảng

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

19 1,4K 15
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểu bản ghi
Thể loại Bài học
Định dạng
Số trang 19
Dung lượng 437,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong một lớp học có nhiều học sinh Trong học sinh lại có nam, có nữ, có họ tên học sinh, ngày sinh, quê quán Để xử lý những dữ liệu phức tạp kể trên, Pascal cho phép người lập trình tự

Trang 1

TiÕt 22:

Trang 2

KiÓm tra bµi cò

Câu hỏi: Hãy viết chương trình để nhập thông

tin của N học sinh (n<=50)

Thông tin về mỗi học sinh bao gồm :

- Họ và tên

- Năm sinh

- Điểm trung bình

Trang 3

TiÕt 22:

Trong thực tế, chúng ta thường dùng các bản danh sách, biểu bảng thống kê có nội dung khác nhau

Trong một lớp học có nhiều học sinh Trong học sinh lại có nam, có nữ, có họ tên học sinh, ngày sinh, quê quán

Để xử lý những dữ liệu phức tạp kể trên, Pascal cho phép người lập trình tự định nghĩa một kiểu dữ liệu có cấu trúc đó là kiểu bản ghi ( Record)

Vậy kiểu bản ghi là gì ?

Trang 4

TiÕt 22:

Để mô tả bản ghi Học sinh ta có mô hình sau:

Học sinh

Xếp loại

Ngày sinh

Họ và tên

Trang 5

TiÕt 22:

Họ và tên Năm

sinh Nơi sinh Điểm TB Xếp loại

Nguyễn Thu Hà 1988 Trung

Trạch 8.5 Giỏi Nguyễn Bảo Châu 1989 Hoàn lão 7.0 Khá Hoàng Thuỳ Linh 1989 Đại trạch 6.0 TB

*Ta có bảng mô tả sau:

Trường

Bản

ghi

+Trường Họ và tên có kiểu dữ liệu String, trường Năm sinh có kiểu dữ liệu Interger…

+Theo hàng ngang là các bản ghi Mỗi bản ghi là

tập hợp dữ liệu các trường…

Trang 6

TiÕt 22:

1 Khái niệm:

- Kiểu dữ liệu bản ghi là một kiểu dữ liệu có cấu trúc Một bản ghi gồm các thành phần (trường), các trường

có thể thuộc các kiểu dữ liệu khác nhau

- Kiểu bản ghi có thể mô tả hàng loạt đối tựợng có cùng một số thuộc tính

- Có thể truy xuất (thao tác) trên từng thành phần của bản ghi, mỗi trường đó được xác định bởi tên biến bản ghi và tên trường

Trang 7

TiÕt 22:

2 Khai báo kiểu bản ghi:

a Khai báo kiểu:

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;

Trang 8

TiÕt 22:

b Khai báo biến: Có hai cách

Cách 1: VAR

<tên biến> : <Tên kiểu bản ghi>;

<tên mảng> : ARRAY [1 Max] OF < tên kiểu bản

ghi>;

VAR <Tên biến 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;

Cách 2:

Trang 9

TiÕt 22:

*Ví dụ:

1) Khai báo kiểu:

TYPE Hocsinh = RECORD

HoTen: String [30]; Ngaysinh:String[10]; Tuoi: Byte;

Diem: Real;

END;

VAR Hs1, Hs2: Hocsinh;

2) Khai báo biến:

VAR hs1, hs2: RECORD

HoTen: String [30];

Toan, Ly, Hoa: Real;

END;

Trang 10

TiÕt 22:

Để khai báo một kiểu bản ghi cần xác định những yếu tố:

- Đối tượng được mô tả có những thuộc tính nào, mỗi thuộc tính ứng với một trường của bản ghi

- Tên cho mỗi trường: Các tên trường của một kiểu bản ghi phải khác nhau

- Kiểu dữ liệu của mỗi trường

Vậy để khai báo một kiểu bản ghi cần xác định

những yếu tố nào?

Trang 11

TiÕt 22:

3 Các thao tác trên biến:

3.1 Phép gán:

- Hai biến bản ghi phải có cùng kiểu dữ liệu

Cú pháp: hs2:= hs1;

Ý nghĩa: Gán giá trị dữ liệu trong các trường của bản

ghi hs1 vào các trường của bản ghi hs2.

3.2 Truy cập đến dữ liệu của một trường của bản ghi:

- Để truy cập dữ liệu của một trường của một biến bản ghi

Cú pháp: Tênbiến Têntrường

Trang 12

TiÕt 22:

V í dụ:

TYPE Hocsinh = RECORD

HoTen: String [30];

Ngaysinh:String[10];

Tuoi: Byte;

Diem: Real;

END;

VAR Hs1, Hs2: Hocsinh;

Lop11N: ARRAY [1 45] OF Hocsinh;

Vậy tham chiếu đến trường Hoten của Hs1 ta viết thế nào?

Ta viết: Hs1 Hoten

Lop11N[12] Hoten là để chỉ thông tin gì?

Trang 13

TiÕt 22:

4 Ví dụ áp dụng:

Có một lớp gồm N (N<=45) học sinh Đối với mỗi học sinh, cần quản lý các thuộc tính : Họ tên, tuổi, địa chỉ, điểm toán, điểm văn, xếp loại Giả sử xếp loại được xác định theo quy tắc sau:

- Nếu tổng điểm Toán và điểm Văn nhỏ hơn 10 thì xếp loại D

- Nếu tổng điểm Toán và Văn lớn hơn hoặc bằng 10 và nhỏ hơn 14 thì xếp loại C

- Nếu tổng điểm Toán và Văn lớn hơn hoặc bằng 14 và nhỏ hơn 18 thì xếp loại B

- Nếu tổng điểm toán và văn lớn hơn hoặc bằng 18 thì xếp loại A

Trang 14

TiÕt 22:

Chương trình Pascal như sau:

Program Chuong_trinh_xep_loai;

Uses crt;

Const max = 45;

Type

Hocsinh= record

Hoten:string[30];

Tuoi : Byte;

Diachi: string[50];

Toan,Van :real;

Xeploai : String[7];

End;

Var Lop: array[1 max] of hocsinh;

n,i,j: byte;

x: Hocsinh;

begin

clrscr;

write(‘So luong hoc sinh trong lop n=’); readln(n);

for i:=1 to n do

Trang 15

TiÕt 22:

begin

writeln (‘ Nhap so lieu hoc sinh thu’,I ,’:’);

write (‘Ho va ten:’); readln(Lop[i].Hoten);

write (‘Tuoi:’); readln(Lop[i].Tuoi);

write (‘Dia chi:’); readln(Lop[i].Diachi);

write (‘Diem Toan:’); readln(Lop[i].Toan);

write (‘Diem Van:’); readln (Lop[i].Van);

If (Lop[i].Toan+Lop[i].Van) <10 then Lop.[i].Xeploai:=’D’;

If 10<= ( Lop[i].Toan+Lop[i].Van) and Lop[i].Toan+ Lop[i].Van<14 then Lop.[i].Xeploai:=’C’;

If 14 <= (Lop[i].Toan+Lop[i].Van) and Lop[i].Toan+ Lop[i].Van<18 then Lop.[i].Xeploai:=’B’;

If 18<= (Lop[i].Toan+Lop[i].Van then Lop.[i].Xeploai:=’A’;

End;

Clrscr;

Writeln (‘Danh sach xeploai hoc sinh trong lop:’);

For i:=1 to n do

Writeln(Lop[i].Hoten:30,’- Xeploai: ’‘,Lop[i].Xeploai);

Readln;

End.

Trang 16

TiÕt 22:

Nhập số liệu về học sinh thứ 45 :…

Kết quả chương trình được mô tả như sau:

Nhập số lượng học sinh trong lớp : n =

Nhập số liệu về học sinh thứ 1:

Họ và tên:

Tuổi:

Địa chỉ:

Điểm Văn:

Điểm Toán:

Danh sách xếp loại học sinh trong lớp:

Nguyễn Văn A Xếp loại: B

………

45

Nguyễn Văn A.

16 Tiểu khu 2 – Hoàn Lão 7

9

Trang 17

TiÕt 22:

Củng cố:

* Cách khai báo kiểu bản ghi

* Nêu những đặc điểm cơ bản giống và khác của kiểu bản ghi với hai kiểu dữ liệu cấu trúc đã học (Kiểu mảng và kiểu xâu)?

Sự giống nhau và khác nhau giữa kiểu bản ghi với hai kiểu dữ liệu có cấu trúc đã học (mảng và xâu):

- Giống : Được tạo nên từ một số kiểu cơ sở, giá trị của một biến có nhiều thành phần

- Khác : Các kiểu thành phần của một kiểu bản ghi

có thể thuộc các kiểu cơ sở khác nhau

Trang 18

TiÕt 22:

Chọn cách khai báo đúng trong các cách khai báo sau:

a Var Sach = Record

Tensach: String[100];

Tacgia: String[30];

MaPL: String[10];

End;

b Var Sach : Record;

Tensach: String[100];

Tacgia: String[30];

MaPL: String[10];

End;

c Var Sach: Record

Tensach: String[100]; Tacgia: String[30]; MaPL: String[10];

End;

d Var Sach: Record

Tensach: String[100]; Tacgia: Real;

MaPL: String[10]; End;

Trang 19

TiÕt 22:

Bài tập về nhà:

Bài tập 1 : Viết chương trình nhập và xuất họ tên,

điểm Văn, Toán, Lý, Hoá cho một lớp học

nhận tử số và mẫu số Hãy tổ chức kiểu dữ liệu tương ứng và viết chương trình để thực hiện việc

cộng, trừ hai phân số

Ngày đăng: 23/06/2013, 01:25

HÌNH ẢNH LIÊN QUAN

Để mô tả bản ghi Học sinh ta có mô hình sau: - Bài 13 : Kiểu bản ghi
m ô tả bản ghi Học sinh ta có mô hình sau: (Trang 4)
*Ta có bảng mô tả sau: - Bài 13 : Kiểu bản ghi
a có bảng mô tả sau: (Trang 5)

TỪ KHÓA LIÊN QUAN

w