Bài 4: Sử dụng biến trong chương trình – Câu 6 trang 33 SGK Tin học lớp 8. Hãy cho biết các kiểu dữ liệu của các biến cần khai báo dùng để viết chương trình để giải các bài toán dưới đây :
Hãy cho biết các kiểu dữ liệu của các biến cần khai báo dùng để viết chương trình để giải các bài toán dưới đây : Lời giải : a. Kiểu dữ liệu của biến a là : real Kiểu dữ liệu biến h là : real Kiểu dữ liệu biến S(diện tích ) là real Quảng cáob. Kiểu dữ liệu của biến a là : integer Kiểu dữ liệu của biến b là : integer Kiểu dữ liệu của biến c là : integer Kiểu dữ liệu của biến d là : integer
Em hãy cho biết các biến cần phải dùng và kiểu dữ liệu của chúng trong chương trình giải bài toán dưới đây:
Trường THCS-THPT ĐINH THIỆN LÝ TIN HỌC 11 BÀI TẬP PASCAL CHƯƠNG IV KIỂU MẢNG, KIỂU XÂU, KIỂU BẢN GHI ĐỀ BÀI: Bài 1: Để chuẩn bị cho Hội khỏe Phù Đổng, trường Đinh Thiện Lý tổ chức cuộc thi điền kinh chạy 100m, mọi học sinh đều có quyền đăng ký thi, mỗi người dự thi có 1 phiếu đăng ký gồm: · Họ tên: không quá 35 ký tự · Giới tính: 3 ký tự:nam hoặc nữ · Lớp: 4 ký tự · Thời gian chạy(giây): số thực Sau khi chạy về đích, thời gian chạy sẽ được ghi vào phiếu và được nhập vào máy tính để xử lý. a) Hãy xây dựng kiểu dữ liệu và khai báo các biến thích hợp b) Viết chương trình nhập vào số thí sinh dự thi, thông tin và thành tích từng thí sinh, tính: · Xuất ra thông tin của tất cả các thí sinh . Số học sinh nam dự thi, số học sinh nữ dự thi · Danh sách các học sinh nam dự thi, bao gồm họ tên, lớp · Danh sách các học sinh nữ dự thi, bao gồm họ tên, lớp . Tìm học sinh chạy nhanh nhất (không kể là nam hay nữ), thông báo ra màn hình họ tên, lớp và thành tích của thí sinh đó. Bài 2: Kết quả kiểm tra sức khỏe học sinh trường Đinh Thiện Lý được ghi trên phiếu có dạng: PHIẾU KIỂM TRA SỨC KHỎE Lớp: …: tối đa 4 ký tự Họ và tên:... tối đa 30 ký tự Nam/Nữ:…tối đa 3 ký tự Chiều cao: …cm (số thực) Cân nặng:…kg (số thực) Lập trình nhập từ bàn phím tên lớp và số học sinh trong lớp (số N), sau đó nhập kết quả của N phiếu kiểm tra sức khỏe, với mỗi phiếu chỉ cần nhập 4 trường cuối (Họ tên, Nam/nữ, chiều cao, cân nặng) a) Xác định kiểu dữ liệu và khai báo các biến thích hợp b) Viết chương trình tính và đưa ra màn hình các thông tin sau: · Chiều cao trung bình của học sinh trong lớp · Cân nặng trung bình của học sinh trong lớp · Số học sinh cao hơn chiều cao trung bình của toàn lớp · Số học sinh nhẹ hơn mức cân nặng trung bình của toàn lớp. Bài 3: Viết chương trình quản lý sách ở thư viện trường Đinh Thiện Lý gồm các trường sau:
a/ Nhập vào kho sách của thư viện (nhập số lượng sách, nhập thông tin cho từng sách gồm tất cả các trường). b/ In ra màn hình tất cả các cuốn sách có trong thư viện. c/ Tìm một cuốn sách có mã số được nhập vào từ bàn phím. Nếu tìm thấy thì in ra màn hình thông tin đầy đủ của cuốn sách đó (tất cả các trường), ngược lại thì thông báo không tìm thấy. d/ Nhập vào tên tác giả, tìm và in ra màn hình tất cả các cuốn sách có cùng tác giả đó. d/ Nhập vào một năm nào đó, t ìm và in ra màn hình tất cả các cuốn sách được xuất bản trong cùng một năm đó. HƯỚNG DẪN LƯU BÀI VÀ NỘP BÀI Sau từ Program ghi BAITAPCHUONG4 Chú thích tên-mã số-lớp Ví dụ: { Ho ten: Ho Ngoc An Ma so: 01 Lop: 11A1 } Lưu bài vào thư mục lớp mình trong ổ đĩa D:\ Tên file: Tên lớp-Mã số HS-BTCHUONG4.PAS (Ví dụ: 11D-12-BTCHUONG4.PAS) Nộp bài: copy file .PAS Vào Start->Run \\192.168.1.9 Vào thư mục lsts0910-tinhoc\BAI TAP CUA HOC SINH\Lop... Nộp vào thư mục tương ứng với đề bài, ví dụ HS nào làm bài 1 sẽ nộp vào thư mục BAI 1 GIẢI BÀI TẬP BÀI 1 program baitapchuong4-bai1; uses crt; type Hocsinh=record Hoten:string[35]; Gioitinh: string[3]; Lop:string[4]; Thoigian: real; end; var Truong:array[1..50] of Hocsinh; sohsnam,sohsnu,N,i, chisomin: byte; begin clrscr; write('So luong hoc sinh tham gia du thi:'); readln(N); {nhap thong tin cho tung hoc sinh} for i:=1 to N do begin writeln('Nhap so lieu ve hoc sinh thu ',i,':'); write('Ho va ten:'); readln(Truong[i].Hoten); write('Gioi tinh:'); readln(Truong[i].Gioitinh); truong[i].gioitinh:=upcase(truong[i].gioitinh); write('Lop:'); readln(Truong[i].Lop); write('Thoi gian chay:'); readln(Truong[i].Thoigian); end; writeln('Danh sach hoc sinh du thi'); writeln('STT':5,'HO TEN':20, 'GIOI TINH':20, 'LOP':10, 'THOI GIAN':20); //xuat thong tin ra {tat ca thong tin} for i:=1 to N do begin write(i:5, '.' ,truong[i].hoten:20); write(truong[i].gioitinh:20); write(truong[i].lop:10); write(truong[i].thoigian:20:1); writeln; end; //dem so hs nam va nu sohsnam:=0; sohsnu:=0; for i:=1 to n do if (truong[i].gioitinh='NAM') then sohsnam:=sohsnam+1 else sohsnu:=sohsnu+1; writeln('So hs nam: ',sohsnam); writeln('So hoc sinh nu: ',sohsnu); //xuat danh sach cac hoc sinh nam du thi
writeln('DANH SACH HOC SINH NAM DU THI: '); writeln('Ho ten:':20,'Lop':5); for i:=1 to N do if (truong[i].gioitinh='NAM') then begin write('Ho ten: ',truong[i].hoten:20); write('Lop: ',truong[i].Lop:5); end; //xuat danh sach cac hoc sinh nu du thi writeln('DANH SACH HOC SINH NU DU THI: '); for i:=1 to N do if (truong[i].gioitinh='NU') then begin write('Ho ten: ',truong[i].hoten:20); write('Lop: ',truong[i].Lop:5); end; //Tìm học sinh chạy nhanh nhất Minthoigian:=Truong[1].thoigian; chisomin:=1; for i:=1 to n do if truong[i].thoigian < minthoigian then Begin minthoigian:=truong[i].thoigian; chisomin:=i; end; writeln('HOC SINH CHAY NHANH NHAT LA'); Writeln('ho ten' , truong[chisomin].hoten); writeln('lop: ' , truong[chisomin].lop); writeln('thanh tich ', truong[chisomin].thoigian:5:1); readln; end. BÀI 2 program baitapchuong4-bai2; {Ho ten: CHAU YEN TRINH Ma so: 25 Lop: 11a2} uses crt; type hocsinh = record hoten:string[30]; lop:string[4]; gioitinh:string[3]; chieucao, cannang: real; end; var suckhoe:array[1..60] of hocsinh; l:string; n,i,a,b:integer; s,caotrungbinh,nangtrungbinh,c:real; begin clrscr; write('Nhap ten lop: '); readln(l); writeln('So hoc sinh trong lop: ');readln(n); for i:=1 to n do begin writeln('Thong tin ve hoc sinh thu ',i,': '); write('Ho ten: ');readln(suckhoe[i].hoten); write('Gioi tinh: ');readln(suckhoe[i].gioitinh); write('Chieu cao(cm): ');readln(suckhoe[i].chieucao); write('Can nang(kg): ');readln(suckhoe[i].cannang); readln; end; s:=suckhoe[1].chieucao; for i:=2 to n do s:=s+suckhoe[i].chieucao; caotrungbinh:=s/n; c:=suckhoe[1].cannang; for i:=2 to n do c:=c+suckhoe[i].cannang; nangtrungbinh:=c/n; writeln('PHIEU KIEM TRA SUC KHOE'); for i:=1 to n do writeln(suckhoe[i].hoten:30,' Gioi tinh:',suckhoe[i].gioitinh:3,' Chieu cao:', suckhoe[i].chieucao:4:2,' Can nang:',suckhoe[i].cannang:4:2); writeln('Chieu cao trung binh cua hoc sinh trong lop: ',caotrungbinh:5:2); writeln('Can nang trung binh cua hoc sinh trong lop: ',nangtrungbinh:5:2); a:=0; for i:=1 to n do if suckhoe[i].chieucao> caotrungbinh then a:=a+1; writeln('So hoc sinh cao hon chieu cao trung binh cua toan lop: ',a); b:=0; for i:=1 to n do if suckhoe[i].cannang> nangtrungbinh then b:=b+1; writeln('So hoc sinh nang hon muc can nang trung binh cua toan lop: ',b); readln; end. Bài 3 program baitapchuong4-bai3; {Ho ten: Bui Thai Minh Tuan Ma so: 29 Lop: 11D } uses crt; const max = 200; type Sach = record MaSoSach:string[10]; NhanDe:string[50]; TenTacGia:string[30]; NhaXuatBan:string[30]; NamXuatBan:real; end; var Khosach: array[1..Max] of Sach; N,i,x:Byte; a,b,d:string[10]; c:real; begin clrscr; write('So luong sach trong kho N = '); readln(N); for i:=1 to N do begin writeln('Nhap so lieu ve quyen sach thu ',i,': '); write('Ma so sach: '); readln(Khosach[i].MaSoSach); write('Nhan de: '); readln(Khosach[i].NhanDe); write('Ten tac gia: '); readln(Khosach[i].TenTacGia); write('Nha xuat ban: '); readln(Khosach[i].NhaXuatBan); write('Nam xuat ban: '); readln(Khosach[i].NamXuatBan); end; write('Nhap ma so sach muon tim: '); readln(a); for i:=1 to N do if Khosach[i].MaSoSach = a then writeln('Sach ne: ',Khosach[i].NhanDe:5, Khosach[i].TenTacGia:5, Khosach[i].NhaXuatBan:5, Khosach[i].NamXuatBan:5:0); readln; write('Nhap ten tac gia muon tim: '); readln(b); for i:=1 to N do if Khosach[i].TenTacGia = b then writeln('Nhung sach co cung tac gia: ',i:5, Khosach[i].NhanDe:5); readln; write('Nam Xuat Ban: '); readln(c); for i:=1 to N do if Khosach[i].NamXuatBan = c then writeln('Sach co cung nam sang tac: ',i:5, Khosach[i].NhanDe:5); readln; write('Nhap mot tu bat ki: '); readln(d); for i:=1 to N do if pos(d,Khosach[i].NhanDe)<>0 then write(i:1, Khosach[i].NhanDe:5); readln; end. |