Trong trường hợp truy nhập vào nhiều hơn một trường cua một bản ghi, chungd ta hoàn toàn có thể dùng câu lệnh with.do với cú pháp như sau:
Cú pháp: with tên_bản_ghi do
begin
.tên trường 1
.
.tên trường n
end;
11 trang |
Chia sẻ: netpro | Lượt xem: 2748 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Giáo trình học Pascal, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Kiểu dữ liệu Bản ghi - Record Định nghĩa: Để tạo ra một kiểu cấu trúc dữ liệu mới với các phần tử dữ liệu có kiểu khác nhau và liên kết với nhau người ta định nghĩa ra bản ghi hay record Cú pháp a) Khai báo thông qua kiểu Type tên_bản_ghi = Record tên trường 1: kiểu dữ liệu ; ……………… tên trường n: kiểu dữ liệu ; end; Var Tên_biến_ bản_ghi : tên_bản_ghi Khai báo(tiếp) Ví dụ: khai báo bản ghi sinh viên Type sinhvien = Record maso: string[6]; ten: string[30]; diem: real; ngaysinh: integer; end; Khai báo (tiếp) b) Khai báo trưc tiếp var tên_biến_bản_ghi: Record tên_trường 1: kiểu dữ liệu ; ……………….. tên_trường n: kiểu dữ liệu ; end; Khai báo Ví dụ Var nhan_su : record manv: string[5]; tennv: string[25]; diachi: string[50]; luong : word; end; Truy nhập tới từng trường của bản ghi Để truy nhập tới một trường của bản ghi ta làm như sau: tên_bản_ghi.tên_trường Ví dụ: Để truy nhập tới trường ten trong bản ghi sinhvien ta viết sinhvien.ten Hoặc nhan_su.luong Lệnh with… do Trong trường hợp truy nhập vào nhiều hơn một trường cua một bản ghi, chungd ta hoàn toàn có thể dùng câu lệnh with...do với cú pháp như sau: Cú pháp: with tên_bản_ghi do begin .tên trường 1 . … .tên trường n end; Ví dụ Để truy nhập vào các trường của bản ghi sinhvien with sinhvien do begin .Maso; .ten; .ngasinh; end; Ví dụ về bản ghi Lập một chương trình nhập danh sách gồm n sinh viên từ bàn phím gồm các thông tin: ten, maso, ngaysinh, diemthi sau đó in ra màn hình Giải Giải {Khai báo } Type sinhvien= record maso : string[6]; ten : string[30]; ngaysinh: word; diem: real; end; Var sv: array[1..100] of sinhvien; i, j, n : byte; Tiếp {thân chương trình} Begin clrscr; write(‘ so sinh vien’); readln(n) writeln( ‘nhap du lieu’); for i:=1 to n do begin with sv[i] do begin write(‘ ho ten sv thu’, I,’:’); readln(ten); write(‘ nhap ma so’); readln(maso); …… end; end; In ra man hinh write(‘ Danh sach sinh vien’); For i:= 1 to n do with sv[i] do begin write( ‘ ’, i); write( ‘ ‘, maso); write( ‘ ‘, ten); write( ‘ ‘, diem); end;