SGK Tin Học 11 - 6. Câu lệnh with
Câu lệnh with Trong chương trình Xep loai ở §13 ta thấy sau câu lệnh for-do mỗi khi truy cập đến một trường của biến bản ghi Lop[i\, ta đều phải viết: Lop [ i ] . Như vậy, cần xử lí bao nhiêu trường thì phải viết kèm bấy nhiêu lẩn Lop[/ị Pascal cung cấp lệnh with để tham chiếu đến các trường của biến bản ghi một cách ngắn gọn như sau: with do ; Trường (không kèm tên biến bản ghi) trong câu lệnh được hiểu là trường của biến bản ghi đó. Ví dụ Ta có thể viết lại chương trình Xepjoai ở §13 như sau: program Xep_loai; uses crt; const Max = 45; 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:=l to N do with lop[i] do begin writeln('Cac so lieu ve hoc sinh thu '); write('Ho va ten: readln(HoTen); write('Ngay sinh: readln(NgaySinh); write('Dia chi: ' ); readln(DiaChi); write('Diem Toan: readln(Toan); write('Diem Van: readln(Van); if Toan+Van >=18 then XepLoai:= 'A'; if (Toan+Van>=14) and (Toan+Van<18) then XepLoai:='B'; if (Toan+Van>=10) and (Toan+Van<14) then XepLoai:='c'; if Toan+Van<10 then 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.