Tìm kiếm theo tiêu đề

Tin tức cộng đồng

5 điều đơn giản cha mẹ nên làm mỗi ngày để con hạnh phúc hơn

Tìm kiếm hạnh phúc là một nhu cầu lớn và xuất hiện xuyên suốt cuộc đời mỗi con người. Tác giả người Mỹ Stephanie Harrison đã dành ra hơn 10 năm để nghiên cứu về cảm nhận hạnh phúc, bà đã hệ thống các kiến thức ấy trong cuốn New Happy. Bà Harrison khẳng định có những thói quen đơn...
Xem tiếp

Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 0919 124 899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

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

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Tham khảo cùng nội dung: Bài giảng, Giáo án, E-learning, Bài mẫu, Sách giáo khoa, ...
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn: Sưu tầm
Người gửi: Phạm Văn Bảy
Ngày gửi: 23h:09' 11-07-2008
Dung lượng: 437.5 KB
Số lượt tải: 42
Số lượt thích: 0 người
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.
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ì ?
Để mô tả bản ghi Học sinh ta có mô hình sau:
Học sinh
Xếp loại
Nơi sinh
Điểm TB
Ngày sinh
Họ và tên
*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…
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.
2. Khai báo kiểu bản ghi:
a. Khai báo kiểu:
TYPE
= RECORD
:;
… …
:;

END;

b. Khai báo biến: Có hai cách
Cách 1: VAR
: ;
: ARRAY [1..Max] OF < tên kiểu bản ghi>;
VAR = RECORD
:;
… …
:;

END;
Cách 2:

*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;
Để 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?
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
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ì?
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.
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
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.
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
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.


Chọn cách khai báo đúng trong các cách khai báo sau:
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;
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.
Bài tập 2: Mỗi phân số được lưu trong một bản ghi 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ố.

 
Gửi ý kiến

↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT  ↓