2.Gán giá trị *Có 2 cách gán giá trị cho biến bản ghi -Cách 1:Dùng lệnh gán trực tiếp A:=B; Nếu A,B là hai biến bản ghi cùng kiểu .Gía trị dữ liệu trong các trường của bản ghi B sẽ gán c[r]
(1)(2) ĐẶT VẤN ĐỀ: Ví Dụ: Bảng Kết Qủa Thi gồm thông tin các thí sinh sau: Trường (Field) Họ Và Tên Ngày Sinh Giới tính Điểm Tin Điểm Toán Điểm Lí Điểm Hóa Bản ghi (record) Điểm Điểm Văn Sử Nguyễn Thị Huệ 12/12/90 Nữ 8 Đào Văn Bình 02/01/90 Nam 7 Hà Thị Thu Vân 05/03/90 Nữ 8 … … … … … … … … … -Dữ Liệu Kiểu Bản Ghi (Record) :dùng để mô tả các đối tượng có cùng số thuộc tính mà các thuộc tính có thể có các kiểu liệu khác (3) 1.Khai Báo -Kiểu Bản ghi thường định nghĩa sau: Type <tên kiểu ghi> = record <tên trường 1> : <Kiểu trường 1>; …………………… <tên trường k> : <Kiểu trường k>; End; -Biến Bản ghi có thể khai báo : Var <tên biến ghi> :<tên kiểu ghi>; <tên mảng> :array[1…50] of <tên kiểu ghi> (4) Ví Dụ: Khai báo Bảng Kết thi HoTen NgaySinh Gioi tinh Tin Toán Lí Hóa Văn Sử Nguyễn Thị Huệ 12/12/90 T 8 Đào Văn Bình 02/01/90 F 7 Hà Thị Thu Vân 05/03/90 T 8 … … … … … … … … … Type Hocsinh=record HoTen:string[30]; Ngaysinh:string[10]; Gioitinh: boolean; Tin,Toan,Li,Hoa,Van,Su: real; End; Var A,B : Hocsinh; Lop:array[1 60] of Hocsinh; -Khai báo kiểu liệu cho các trường -Khai báo biến kiểu ghi (5) 2.Gán giá trị *Có cách gán giá trị cho biến ghi -Cách 1:Dùng lệnh gán trực tiếp A:=B; Nếu A,B là hai biến ghi cùng kiểu Gía trị liệu các trường ghi B gán cho ghi A -Cách 2: Gán giá trị cho trường A.hoten:=B.hoten; A.tin:=B.tin; •Khi tham chiếu đến các trường ghi: tên biến ghi.tên trường (6) 3.Các thao tác với ghi 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 •Điểm toán •Điểm văn •Xếp loại -Việc xếp loại xác định sau: •Nếu tổng điểm toán và văn lớn 18 thì xếp loại A •Nếu tổng điểm toán và văn lớn 14 và nhỏ 18 thì xếp loại B •Nếu tổng điểm toán và văn lớn 10 và nhỏ 14 thì xếp loại C •Nếu tổng điểm toán và văn nhỏ 10 thì xếp loại D (7) *Cách thực hiện: -Phần khai báo: -Nhập số liệu học sinh: Type Hocsinh=record Hoten:string[30]; Ngaysinh:string[10]; Diachi:string[50]; Toan,Van:real; Xeploai:char; end; Var Lop:mang[1 60] of Hocsinh; N,i:byte; Writeln(‘nhap so lieu 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); (8) -Thực cách xếp loại nào? 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’; -Hiển thị kết màn hình ? Writeln(‘Danh sach xep loai hoc sinh lop:’); For i:=1 to n writeln(lop[i].Hoten:30,’-Xep loai:’,lop[i].Xeploai); Readln; (9) -Chương trình nhập thông tin học sinh và việc thực xếp loại ,đưa mán hình kết xếp loại học sinh: Program Xep_loai; Write(‘Dia chi:’);readln(lop[i].Diachi); Uses crt; Write(‘Diem toan’);readln(lop[i].Toan); Const Max=60; Write(‘Diem Van:’);readln(lop[i].Van); Type Hocsinh=record If (lop[i].Toan+lop[i].Van>=18 )then Hoten:string[30]; lop[i].Xeploai:=‘A’; Ngaysinh:string[10]; If (lop[i].Toan+lop[i].Van>=14 ) and Diachi:string[50]; (lop[i].Toan+lop[i].Van <18) then Toan,Van:real; lop[i].Xeploai:=‘B’; Xeploai:char; If (lop[i].Toan+lop[i].Van>=10) and end; (lop[i].Toan+lop[i].Van <14) then Var Lop:mang[1 60] of Hocsinh; lop[i].Xeploai:=‘C’; N,i:byte; If (lop[i].Toan+lop[i].Van<10)then Begin lop[i].Xeploai:=‘D’; clrscr; End; write(‘so luong hoc sinh lop Clrscr; N=‘);readln(N); Writeln(‘Danh sach xep loai hoc sinh lop:’); for i:=1 to N For i:=1 to n Begin writeln(lop[i].Hoten:30,’-Xep Writeln(‘nhap so lieu hoc sinh thu’, i,’:’); loai:’,lop[i].Xeploai); Write(‘Ho va Ten:’);readln(lop[i].Hoten); Readln; Write(‘Ngaysinh:’);readln(lop[i].Ngaysinh); End; (10) -Củng cố bài học: 1.Cách khai báo ghi? 2.Cách gán giá trị ghi? •Tham chiếu đến trường ghi? Home Home (11)