KIỂU BẢN GHI I. Mục đích yêu cầu: 1. Kiến thức: Biết khái niệm kiểu bản ghi. Biết khai báo bản ghi, truy cập trường của bản ghi. 2. Kỹ năng: Biết Khai báo kiểu bản ghi. 3. Thái độ:Tích cực ham học hỏi II Chuẩn bị của giáo viên và học sinh: 1. Chuẩn bị của giáo viên:SGK, SGV, giáo án 2. Chuẩn bị của học sinh:Xem kỹ SGK, soạn trước bài học. III. Nội dung bài giảng 1.Ổn định tổ chức 2. kiểm tra bài cũ: Không kiểm tra 3. Nội dung bài mới Hoạt động thầy và trò Nội dung bài mới GV: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. Ví dụ như:bảng kết quả thi gồm thông tin các thí sinh: họ tên, ngày sinh, giới tính, điểm các môn thi,… GV: Vậy Pascal mô tả kiểu dữ liệu này như thế nào GV: họtên có kiểu gì? HS: Xâu GV: Ngày sinh có kiểu gì? HS: Ngày tháng. GV:trong Pascal không có kiểu ngày 1. Khai báo Định nghĩa: TYPE <tên kiểu bản ghi>=RECORD <tên trường1>:<kiểu trưòng 1>; <tên trưòng2>:<kiểu trường2>; ………………………………. <tên trường n>:<kiểu trườngn>; End; VAR <tên biến bản ghi>:<tên kiểu bản ghi>; Ví dụ: Để xử lí kết qủa thi hai môn toán văn của một lớp học(dữ liệu về một học sinh): Hoten ngaysinh Gioitinh Toan Van tháng nên ta xem ngày tháng như một xâu gồ có ? Kí tự. HS:10 kí tự. GV: Giới tính có kiểu gì?Nếu là nam thì nhận giá trị True, nữ nhận giá trị False HS: Boolean. GV: Toán, văn có kiểu gì? HS:Real; GV: Yêu cầu học sinh khai báo GV: Để nhập dữ liệu cho mảng ta nnhập như thế nào? HS: Nhập từng phần tử. GV: Đối với bản ghi cũng vậy, ta làm việc với bản ghi tức là làm trên từng trường. Cách làm việc trên trường của bản ghi như thế nào? Ta khai báo như sau Const max=60; TYPE hocsinh=record Hoten:string[30]; Ngaysinh:string[10]; Gioitinh:boolean; Toan,van:real; End; Var LOP: Array[1 max] of hocsinh; 2. Cách dùng biến bản ghi: Bản ghi là dữ liệu có cấu trúc: Xác định giá trị bản ghi thông qua các trường trong bản ghi đó. Cách chỉ định biến trường nư sau: <Tên biến bản ghi>.<tên trường> Ví dụ: Var A:hocsinh; -Để nhập thông tin về một học sinh A ta HS: Trả lời. GV: Nhập bản ghi ta cũng nhập trên từng trường. Vậy nhập dữ liệu cho học sinh A? HS: Thực hiện( GV nhận xét) GV: Nêu ví dụ và hỏi học sinh đúng hay sai nhập như sau: {…} Readln(A.hoten); Readln(A.ngaysinh); Readln(A.gioitinh); Readln(A.Toan); Readln(A.van); {…} -Để viết thông tin học sinh A ra màn hình ta làm như sau: {…} Write(A.hoten); Write(A.ngaysinh); Write(A.gioitinh); Write(A.Toan); Write(A.van); {…} *Chú ý : -Ta không đựợc phép nhập vào hay hiển thị ra trực tiếp biến bản ghi. GV: bài toán yêu cầu? Khai báo, tổ chức dữ liệu như thế nào? HS: Trả lời Nhập số học sinh của lớp? HS: Thực hiện. Nhập thông tin cho học sinh của lớp, như vậy ta nhập tất thảy bao nhiêu học sinh? HS: n học sinh VD: Lệnh sau là sai: Với A là kiểu họcsinh; Readln(A);Write(A); -Ta có thể gán hai biến bản ghi cùng kiểu cho nhau. 3.Ví dụ minh hoạ: Chương trình sau dùng để nhập kết quả học tâp hai môn Toán, Văn của một lớp. Program VD; Uses crt; Const max=100; TYPE Hsinh=record Hoten:string[30]; Ngaysinh:string[10]; Toan,van:real; End; Var i, n:Byte; LOP:ARRAY[1 max] of Hsinh; Begin Clrscr; GV: Mỗi học sinh nhập bao nhiêu thông tin? HS: 4 thông tin. GV: lặp việc nhập với số lần? Đoạn chương trình trên ta thấy bản ghi Lop[i] nhắc đi, nhắc lại. Ta có thể dùng câu lệnh With như sau: Write(‘Nhap so hoc sinh cua lop:’); Readln(n); For i:=1 to n do Begin Write(‘ nhap hoten:’); readln(LOP[i].hoten); Write(‘ nhap ngaysinh:’); readln(LOP[i].ngaysinh); Write(‘ nhap diem Toan:’); readln(LOP[i].toan); Write(‘ nhap diem Van:’); readln(LOP[i].van); End; Readln; END. 4.Câu lệnh With With <biến bản ghi> Do <câu lệnh> Ý nghĩa:Trong câu lệnh sau từ khoá DO, các tên gọi trùng với tên trường của biến bản ghi xác định chính biến trường tương ứng VD: Đoạn chương trình trên viết lại như sau: For i:=1 to n do With Lop[i] do Begin Write(‘ nhap hoten:’); readln(hoten); Write(‘ nhap ngaysinh:’); readln(ngaysinh); Write(‘ nhap diem Toan:’); readln(toan); Write(‘ nhap diem Van:’); readln(van); End; 1. Củng cố -Cách khai báo Kiểu bản ghi? -Kiểu bản ghi giống và khác kiểu mảng một chiều ở điểm nào? Khi nào thì có thể dùng kiểu mảng thay thế kiểu bản ghi? -Ý nghĩa của câu lệnh With 5. Dặn dò, bổ sung: Học bài cũ, làm các bài tập . KIỂU BẢN GHI I. Mục đích yêu cầu: 1. Kiến thức: Biết khái niệm kiểu bản ghi. Biết khai báo bản ghi, truy cập trường của bản ghi. 2. Kỹ năng: Biết Khai báo kiểu bản ghi. 3. Thái. báo Kiểu bản ghi? -Kiểu bản ghi giống và khác kiểu mảng một chiều ở điểm nào? Khi nào thì có thể dùng kiểu mảng thay thế kiểu bản ghi? -Ý nghĩa của câu lệnh With 5. Dặn dò, bổ sung: Học. <tên biến bản ghi& gt;:<tên kiểu bản ghi& gt;; Ví dụ: Để xử lí kết qủa thi hai môn toán văn của một lớp học( dữ liệu về một học sinh): Hoten ngaysinh Gioitinh Toan Van tháng nên