Ðiểm trung bình môn Toán cho cả danh sách là bao nhiêu ?... Với mỗi đầu sách, tính Gía tiền như sau: Tính Tổng số tiền phải chi cho việc mua sách, kể cả 10% thuế gía trị gia tăng đánh và
Trang 1CÁC VÍ DỤ VỀ BẢN GHI
Ví dụ 14.1:
Nhập một danh sách N ( 1 N 50) sinh viên gồm các trường: Họ tên, Mã
số, các điểm Toán, Lý
Ðối với mỗi sinh viên, hãy tính điểm trung bình :
DTB=(Toan + Ly)/2 , và phân loại như sau:
Loại= Giỏi nếu DTB 9,
Cho biết điểm Tóan cao nhất là mấy ? Có bao nhiêu người được điểm cao nhất đó ?
Trang 2Ðiểm trung bình môn Toán cho cả danh sách là bao nhiêu ?
Maso, Loai : String[8];
Toan, Ly, DTB : Real;
End;
Var
DS : Array[1 50] of KSVIEN;
Trang 3{ Nhập danh sach, tính DTB va phân loại }
For i:=1 to N do WITH DS[i] DO
begin
Write(‘Nhap ho ten sinh vien thu ‘,i,’ : ‘);
Readln(Hoten);
Trang 4Write(‘Nhap ma so sinh vien thu ‘,i,’ : ‘);
Trang 5Writeln(‘ In danh sach len man hinh ‘ );
Writeln(‘STT HO VA TEN MASO ',
' TOAN LY DTB LOAI’);
For i:=1 to N do WITH DS[i] DO
Writeln(i:2, #32 , Hoten, #32 :19-Length(Hoten), Maso:8,
Toan:4:1,Ly:4:1, DTB:4:1, Loai:5);
{ Tìm điểm Toán cao nhất }
Max:=DS[1].Toan;
Trang 6For i:=1 to N do
if Max< DS[i].Toan then Max:=DS[i].Toan;
Writeln(‘Diem Toan cao nhat = ‘, Max:4:1);
{ Ðếm số em có điểm Toán =Max}
Dem:=0;
For i:=1 to N do if DS[i].Toan =Max then Dem:=Dem+1;
Writeln(‘ Có ‘, Dem, ‘ em có điểm Toán= ‘, Max:4:1);
{ Tính điểm trung bình môn Toán cho cả danh sach }
TBToan:=0; { Lấy tổng điểm môn Toán}
For i:=1 to N do TBToan := TBToan + DS[i].Toan;
TBToan:=TBToan/N ;
Writeln(‘Diem trung binh mon Toan= ‘ , TBToan:6:2);
Readln;
END
Trang 7Chạy<VD14_1.EXE>
Chép tập tin nguồn <VD14_.PAS>
Ví dụ 14.2:
Nhập một danh sách N (1 N 50) đầu sách gồ? các thông tin về Tên sách,
Số lượng (SL) và Ðơn gía (DG)
Với mỗi đầu sách, tính Gía tiền như sau:
Tính Tổng số tiền phải chi cho việc mua sách, kể cả 10% thuế gía trị gia tăng đánh vào tổng gía tiền
Trang 8Tìm xem trong danh sách đó có cuốn "TIN HOC DAI CUONG" không Nếu có thì cho biết có bao nhiêu cuốn và đơn gía của nó
Trang 11For i:=1 to N do Tongtien:=Tongtien+S[i].GT;
{ Cộng thêm thuế 10% gía tri gia tăng}
Tongtien:=Tongtien + 0.1*Tongtien ;
Writeln(‘Tổng tiền phải chi là: ‘, Tongtien :6:2);
{ Tìm cuốn ‘TIN HOC DAI CUONG’}
Trang 12Thủ tục INBIEU sau đây chứa một thủ tục con INCHITIET có nhiệm vụ
in chi tiết từng dòng cho từng cuốn sách
Thân của thủ tục INBIEU là các lệnh in tiêu đề, sau đó là lời gọi thủ tục INCHITIET
Các dữ liệu phục vụ cho thủ tục này là các biến toàn cục được khai báo ở chương trình chính trong ví dụ 14.2, đó là N và S
Trang 13Chỗ nào có ký hiệu thì hãy thay bằng một ký tự trắng Nhắc lại rằng
#32 cũng là một ký tự trắng Thủ tục in biểu được viết như sau:
Trang 14End; { hết in chi tiết}
Begin { Vào thủ tục Inbiểu }
Trang 15Writeln;
Write(‘| STT ‘);
Write(‘|’ , #32:7 , ‘TEN SACH’, #32:7 );
Write(‘| SO LUONG ‘);
Write(‘| DON GIA ‘);
Write(‘| GIA TIEN |’);
Ráp toàn bộ thủ tục INBIEU vào phần khai báo của chương trình trong ví
dụ 14.2, và thêm lệnh gọi INBIEU; vào cuối của thân của chương trình đó,
ta được một chương trình đầy đủ mà khi chạy sẽ in biểu theo đúng yêu cầu
Trang 16Ngoài ra, để chương trình chính bớt rườm rà, ta đưa phần nhập dữ liệu vào một thủ tục riêng gọi là NHAP, phần tính tổng gía thành các cuốn sách vào một thủ tục riêng gọi là TINH, và phần tìm cuốn TIN HOC DAI
CUONG vào một thủ tục gọi là TIM Trong chương trình chính ta chỉ phải gọi tên các thủ tục đó ra mà thôi
Trang 19For i:=1 to N do Tongtien:=Tongtien+S[i].GT;
{ Cộng thêm thuế 10% gía tri gia tăng}
Tongtien:=Tongtien + 0.1*Tongtien ;
Writeln(‘Tổng tiền phải chi là: ‘, Tongtien :6:2);
Trang 22End; { hết in chi tiết}
Begin { Vào thủ tục Inbiểu }
Trang 23Writeln;
Write(‘| STT ‘);
Write(‘|’ , #32:7 , ‘TEN SACH’, #32:7 );
Write(‘| SO LUONG ‘);
Write(‘| DON GIA ‘);
Write(‘| GIA TIEN |’);