Bài tập  /  Bài đang cần trả lời

Giải Tin học 11 Bài 13: Kiểu bản ghi - Bài 13: Kiểu bản ghi

1 Xem trả lời
Hỏi chi tiết
304
0
0
Trần Đan Phương
07/04/2018 13:11:46

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

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ó các kiểu dữ liệu khác nhau.

   - Kiể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 (gọi là trường), khác với các kiểu dữ liệu có cấu trúc khác (mảng và xâu), các trường có thể thuộc các kiểu dữ liệu khác nhau.

   - Kiểu bản ghi cho phép mô tả nhiều đối tượng cỏ cùng một số thuộc tính, có hữu ích cho nhiều bài toán quản lí.

   - Ngôn ngữ lập trình đưa ra quy tắc, cách thức xác định:

      + Tên kiểu bản ghi.

      + Tên các thuộc tính (trường).

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

      + Cách khai báo biến.

      + Cách tham chiểu đến trường.

Ví dụ: Ta muốn lưu thông tin về sinh viên. Dữ liệu cần lưu trữ bao gồm:

      + Họ tên (Kiểu String).

      + Giới tính (Kiếu String).

      + Điểm số (Kiểu real).

Để lưu trữ nhiều sinh viên ta có thể sử dụng các cách:

      + Khai báo một mảng bản ghi. Mỗi bản ghi sẽ chứa thông tin về một sinh viên (họ tên,giới tính,điểm số).

      + Khai báo 3 mảng 2 mảng String để lưu tên và giới tính 1 mảng kiểu real để lưu điểm số.

Rõ ràng cách đầu tiên thuật tiện để lưu trữ hơn cách thứ hai khi số thuộc tính lớn.

1. Khai báo

Ta cần khai báo tên kiểu bản ghi, tên các thuộc tính, kiểu dữ liệu của mỗi thuộc tính.

Cú pháp:

 Type<tên kiểu bản ghi> = record 				<tên trường 1>:<kiểu trường 1>; 																	……………………………………………….. 				<tên trường 2>:<kiểu trường 2>; 			     End; 

Sau khi có kiểu bản ghi, biến kiểu bản ghi có thể được khai báo như sau:

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

Ví dụ:

 	Type 		Hocsinh=record 			Hoten:string[30]; 			Ngaysinh:string[10]; 			Gioitinh:Boolean; 			Toan,Tin,Van,Anh:real; 	End; 	Var  	A,b:Hocsinh; 	Lop:array[1..60] of Hocsinh; 

Để tham chiếu đến thuộc tính nào ta sự dụng dấu.

Ví dụ:

Tham chiếu đến họ tên của Hocsinh A. Ta sử dụng

A.Hoten

Ta có thể coi A.Hoten như một biến string[30] . Ta hoàn toàn có thể thực hiện so sánh ,gán giá trị...

2. Gán giá trị.

Có 2 cách:

+ Dùng lệnh gán trực tiếp: A:=B (A với B là 2 biến bản ghi).

+ Gán giá trị cho từng trường: A.X:=C hoặc nhập từ bàn phím.

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

program xep_loai; uses crt; const max= 60; type Hocsinh = record hoten: string[30]; ngaysinh: string [10]; Diachi: string[50] ; Toan, Van: real; Xeploai : char; end; var Lop: array [ 1..max] of hocsinh; N,i: byte; Begin clrscr; write('So luong hoc sinh trong lop N= ') ; readln(N); for i:= 1 to N do begin writeln( 'Nhap so lieu ve hoc sinh thu',i,': '); Write ('Ho va ten: '); readln (lop [i]. hoten); Write (' Ngay sinh : '); readln (lop [i].ngaysinh); 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 >=18 then Lop [i]. xeploai:='A'; if (Lop[i].Toan+Lop[i].Van>=14) and (Lop [i]. Toan+Lop [i]. Van <18) then Lop [i]. xeploai:='B'; if (Lop[i].Toan+Lop[i].Van>=10) and (Lop [i]. Toan+Lop [i]. Van >=14) then Lop [i]. xeploai:='C'; if (Lop[i].Toan+Lop[i].Van<=10) then Lop[i].xeploai:='D'; end; clrscr; writeln ('Danh sach xep loai hoc sinh trong lop: ' ); for i:=1 to N do writeln (Lop[i].Hoten:30,' – Xep loai : ', Lop[i]. Xeploai); readln End.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×