Bài tập 7.2: Viết chương trình quản lý điểm thi Tốt nghiệp của sinh viên với 2 môn thi: Cơ sở và chuyên ngành.. danh sach sinh vien thi lai'; Bài tập 7.3: Viết chương trình nhập vào n đ
Trang 1KIỂU BẢN GHI (RECORD)
I KHAI BÁO DŨ LIỆU KIỂU RECORD
TYPE TênKiểu = RECORD
II XUẤT NHẬP DỮ LIỆU KIỂU RECORD
Không thể dùng các thủ tục xuất/nhập, các phép toán so sánh đối với các biến kiểu record
mà chỉ có thể sử dụng thông qua từng truờng của biến record đó
2.1 Truy nhập trực tiếp: TênbiếnRecord.Field
Trang 2Writeln(‘Tong cua 2 so phuc:’);
If c1.b>=0 Then dau:=’+i’ else dau:=’-i’;
Writeln(‘c1 = ‘, c1.a:0:2, dau, abs(c1.b):0:2); {Số phức c1}
If c2.b>=0 Then dau:=’+i’ else dau:=’-i’;
Writeln(‘c2 = ‘, c2.a:0:2, dau, abs(c2.b):0:2); {Số phức c2}
Writeln(‘La so phuc:’);
If c3.b>=0 Then dau:=’+i’ else dau:=’-i’;
Writeln(‘c3 = ‘, c3.a:0:2, dau, abs(c3.b):0:2); {Số phức c3}
Readln;
End.
Bài tập 7.2: Viết chương trình quản lý điểm thi Tốt nghiệp của sinh viên với 2 môn thi: Cơ sở
và chuyên ngành Nội dung công việc quản lý bao gồm:
• Nhập điểm cho từng sinh viên.
• In danh sách sinh viên ra màn hình.
• Thống kê số lượng sinh viên thi đậu.
• In ra màn hình hình danh sách những sinh viên bị thi lại.
Trang 3Writeln('NHAP DANH SACH SINH VIEN');
Write('Ho ten: '); Readln(Hoten);
Write('Diem co so: '); Readln(DiemCS);
Write('Diem chuyen nganh: '); Readln(DiemCN);
Trang 4Writeln('CHUONG TRINH QUAN LY DIEM THI TOT NGHIEP SINH VIEN');
Writeln('1 Nhap danh sach sinh vien');
Writeln('2 In danh sach sinh vien');
Writeln('3 Thong ke so sinh vien thi dau');
Writeln('4 danh sach sinh vien thi lai');
Bài tập 7.3: Viết chương trình nhập vào n đỉnh của một đa giác lồi S.
a/ Tính diện tích của S biết:
dt(S)= ∑
= + +
−
n i
i i i
trong đó: (xi,yi) là tọa độ đỉnh thứ i của đa giác S.
b/ Nhập vào thêm một điểm P(x,y) Hãy kiểm tra xem P nằm trong hay ngoài đa giác S.
Trang 5Write('Nhap so dinh cua da giac n = '); readln(n);
If KiemTra(P,n,A) Then Writeln('Diem P nam trong da giac S.')
Else Writeln('Diem P nam ngoai da giac S.');
Readln;
End.
BÀI TẬP TỰ GIẢI
Trang 6Bài tập 7.4: Viết chương trình nhân hai số phức c1, c2.
Bài tập 7.5: Viết chương trình quản lý điểm thi học phần của sinh viên bao gồm các trường sau: Họ tên, Điểm Tin, Điểm ngoại ngữ, Điểm trung bình, Xếp loại Thực hiện các công việc sau:
a/ Nhập vào danh sách sinh viên của một lớp (không quá 30 người), bao gồm: Họ tên, Điểm Tin, Điểm Ngoại ngữ Tính Điểm trung bình và Xếp loại cho từng sinh viên.
b/ In ra màn hình danh sách sinh viên của lớp đó theo dạng sau:
Họ tên Điểm Tin Điểm Ngoại ngữ Điểm T.Bình Xếp loại
c/ In ra màn hình danh sách những sinh viên phải thi lại (nợ một trong hai môn).
d/ In ra danh sách những sinh viên xếp loại Giỏi.
e/ Tìm và in ra màn hình những sinh viên có điểm trung bình cao nhất lớp.
f/ Sắp xếp lại danh sách sinh viên theo thứ tự Alphabet.
g/ Sắp xếp lại danh sách sinh viên theo thứ tự giảm dần của điểm trung bình.
h/ Viết chức năng tra cứu theo tên không đầy đủ của sinh viên Ví dụ: Khi nhập vào tên
Phuong thì chương trình sẽ tìm và in ra màn hình thông tin đầy đủ của những sinh viên có tên Phuong
(chẳng hạn như: Pham Anh Phuong, Do Ngoc Phuong, Nguyen Nam Phuong ).
Bài tập 7.6: Viết chương trình quản lý sách ở thư viện gồm các trường sau: Mã số sách, Nhan đề, Tên Tác giả, Nhà Xuất bản, Năm xuất bản.
a/ Nhập vào kho sách của thư viện (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 đó, ngược lại thì thông báo không tìm thấy
c/ Tìm và in ra màn hình tất cả các cuốn sách có cùng tác giả được nhập vào từ bàn phím d/ Lọc ra các cuốn sách được xuất bản trong cùng một năm nào đó.
e/ Tìm và in ra màn hình các cuốn sách mà nhan đề có chứa từ bất kỳ được nhập vào từ bàn phím.
Trang 7Thư Viện Các Dạng Bài Tập Pascal của Tin Học 11 - Phần 1
For j := PhanTu DownTo i+1 Do
If a[j].Ten[1] < a[j-1].Ten[1] Then
Trang 8Writeln('SAP XEP DIEM TANG DAN);');
Writeln('Giai thuat noi Buble');
Trang 9If TenHang = DsTenHang[i] Then
Tong := Tong + (DonGia * Soluong);
Writeln(' +Tong so tien mua: ',DsTenHang[i]:10,' = ',tong:10:2); End;
Trang 10Writeln('-Ten sach: ',TenSach);
Writeln('-Tac gia : ',TacGia);
Writeln('-Nam Xuat ban: ',Namxb);
Writeln('-Nguoi muon : ',NguoiMuon);
Trang 11First, Last, Newp : ConTro;
Hoten1, Hoten2 : String[24]; i,TuoiMax,TuoiMin : Integer;
LuongMax, LuongMin,LuongTb : LongInt;
Trang 12Writeln('Nhan vien co tuoi lon nhat la: ',TuoiMax);
Writeln('Nhan vien co tuoi nho nhat la:',TuoiMin);
Writeln('Nhan vien: ',HoTen1,' ,co bac luong lon nhat: ',LuongMax:10); Writeln('+Nhan vien: ',HoTen2,' ,co bac luong nho nhat: ',LuongMin:10); Release(HeapTop);
Writeln('TINH DIEM VA XEP HANG);');
Writeln('Giai thuat noi Buble');
Trang 13Writeln(' Hoc sinh : ',Hs[i].HoTen);
Writeln(' Nam sinh : ',Hs[i].NamSinh);
Writeln(' Diem trung binh ca nam : ',Hs[i].Tb:5:2);
Writeln(' Xep hang ca nam : ',Hang);
New(Chuoi1);
New(Chuoi2);
Chuoi1^ := 'Giao trinh Turbo Pascal 7.0';
Chuoi2^ := 'Giao trinh FoxPro 2.6';
Writeln;
Writeln('NOI DUNG BAN DAU CUA 2 CHUOI');
Writeln(' -');
Writeln;
Writeln('-Chuoi thu nhat: ',Chuoi1^);
Writeln('-Chuoi thu hai : ',Chuoi2^);
Writeln('-Chuoi thu nhat: ',Chuoi1^);
Writeln('-Chuoi thu hai : ',Chuoi2^);
Trang 14Writeln(' NHAP DANH SACH'); Writeln(' -'); Write('-So phan tu: ');
Trang 15Write(' Nhap nua khong ? (c/k) '); Readln(Ch);
Until Tam1 = Nil;
Writeln('Sau khi dao: ');
Trang 16Writeln('CHUOI THU HAI');
Trang 18While (P <> Nil) And (P^.HoTen <> Nv.HoTen) Do
If NV.HoTen < P^.HoTen Then
Trang 19Writeln('1-Khoi tao cay');
Writeln('2-Noi them vao cay');
Writeln('3-Xoa khoi cay');
Writeln('4-Tim kiem tren cay');
Writeln('5-Liet ke danh sach');
Writeln('6-Ket thuc chuong trinh');
Trang 20KE NOI DUNG CAY');
Writeln('Hien thi theo thu tu ABC ');
'6' : Begin
Writeln('7- KET THUC CHUONG TRINH');
Writeln;
End;
Trang 23End;
Writeln;
Writeln(' MANG TRUOC KHI XOA'); Writeln(' -'); Writeln;
Trang 24Writeln('TINH GIA TRI CUA DA THUC BAC N');
Write('-Nhap so kieu Word: ');
SoHex[4]:= KyTuHe16[Lo(SoWord) AND $F];
Writeln('+So nguyen kieu Word = ',soWord);
Writeln('+Doi ra so he thap luc = $',SoHex);
Write('-Nhap so kieu Word: ');
Readln(SoWord);
SoBinary[0]:=#16;
Trang 25For i:=15 DownTo 0 Do
If (SoWord AND (1 SHL i)) = (1 SHL i) Then SoBinary[16-i]:= KyTuHe2[1]
Else
SoBinary[16-i]:= KyTuHe2[0];
Writeln('+So nguyen kieu Word = ',soWord); Writeln('+Doi ra so he nhi phan= B ',SoBinary); Writeln;
Writeln(' Bam phim <Enter> de ket thuc '); Readln
Trang 26Writeln('KET QUA CONG 2 SO NGUYEN');
Trang 29{Giai he phuong trinh}
Dt:= a[1,1]*a[2,2]-a[1,2]*a[2,1]; {Dt: Dinh thuc} Dtx:=c[1]*a[2,2]-c[2]*a[2,1];
Trang 30Writeln('+Chuoi ban dau : ',St1,' co: ',l:2,' ky tu');
Writeln(' Sau khi xoa ky tu trung nhau');
Writeln(' Chuoi con lai: ',St,' gom: ',l1:2,' ky tu');
Trang 34For i:=1 To (l Div 2) Do
If St[i] <> St[l-i+1] Then
Trang 38For i:=1 to Max-1 Do
For j:= i+1 To Max Do
Trang 39For j:= spt Downto i+1 Do
If a[j] < a[j-1] Then
Begin
tam:=a[j];
a[j]:=a[j-1];
Trang 44Writeln(a[i,j],' = ',i,' ^3 ',' + ',j,' ^3 ',' = ', i1,' ^3 ',' + ',j1,' ^3');
Trang 46Thư Viện Các Dạng Bài Tập Pascal của Tin Học 11 - Phần 2
101/Nhập số liệu cho 1 tập tin số nguyên:
Trang 47ClrScr;
Writeln('NHAP SO LIEU CHO TAP1.DAT'); Writeln(' -'); Writeln;
Trang 48103/Sổ tay điện thoại:
End;
If Not TimThay Then
Writeln('Khong tim thay');
Trang 490 : Writeln('Da hoan thanh tot dep');
2 : Writeln('Khong tim thay tap tin nay');
3 : Writeln('Khong tim thay duong dan')
Trang 53Writeln(' CHUONG TRINH NHAC EM DIU');
Writeln('Truong do cham 10 lan so voi BT15_10');
Writeln(' Bam <Esc> de ket thuc');
Trang 55Writeln('-Diem Hoa : ',Hoa:5:2);
Writeln('-Diem trung binh := ',Tb:5:2); End
End;
If Not Timthay Then
Writeln('Trong danh sach khong co hoc sinh: ',St);
Trang 58If So1 < So2 Then
Trang 59TenLop : Array[1 100] Of String[4];
alop : Array[1 200] Of HocSinh;
For j := sohslop DownTo k + 1 Do
If alop[j].Dtb > alop[j-1].Dtb Then
Trang 60With alop[k] Do
Writeln('|',stt:3,' |',HoTen:24,' | ', Lop:5,' | ',k : 3,' |'); Stt := Stt + 1;
Trang 62Filedb = file Of Doi;
Mang = Array[1 40] Of Doi;
Trang 67If Not TimThay Then
Writeln('Khong tim thay');
Trang 69Write('-Ten tap tin : ');
Writeln(' 4-Cap nhat');
Writeln(' 5-Ket thuc');
Writeln('-Dong dai nhat : ',Max);
Writeln('-Dong ngan nhat : ',Min);
Writeln('-Trung binh : ',Tong / Sodong : 6:1); Writeln;
Trang 70TongA1 := 0;TongA2 := 0;SoA := 0;
TongB1 := 0;TongB2 := 0;SoB := 0;
TongC1 := 0;TongC2 := 0;SoC := 0;
While Not EOF(f) Do
Trang 76Write('-Ten tap tin: ');
Trang 79CenterX := GetMaxX Div 2;
CenterY := GetMaxY Div 2;
Radius := CenterY - 10;
SetFillStyle(2,2);
Pieslice(CenterX,CenterY,0,120,Radius); SetFillStyle(3,1);
Pieslice(CenterX,CenterY,120,245,Radius); SetFillStyle(4,3);
Pieslice(CenterX,CenterY,245,360,Radius); Readln;
Trang 81CenterX := GetMaxX Div 2;
CenterY := GetMaxY Div 2;
OutTextXY(48,12,'He truc toa do');
Xcenter := GetMaxX Div 2;
YCenter := GetMaxY Div 2;
StAngle := 15;
Radius := GetMaxY Div 8;
Active := 0;
Visual := 1;
Trang 82{ve mat ca}
Circle(Xcenter+Radius Div 2,YCenter - Radius Div 2,4);
{ve duoi ca}
Line(Xcenter-Radius,Ycenter,Xcenter-2*Radius,Ycenter-Radius); Line(Xcenter-Radius,Ycenter,Xcenter-2*Radius,Ycenter+Radius); End;
Trang 83Writeln(' 3 so vua nhap la:');
Writeln('+Tam giac: ',tamgiac);
Writeln('+Tam giac deu: ',deu);
Writeln('+Tam giac can: ',can);
Writeln('BAI TOAN CO DIEN');
Writeln('Tram trau tram co');
For nam:=0 To 33-dung Do
For gia:=0 To (100-(dung+nam)) Do
Begin
co:=5*dung+3*nam+(gia Div 3);
Trang 84trau:=dung+nam+gia;
If (gia Mod 3 =0) And (trau=100) And ( co=100) Then
Writeln('-Trau dung ',dung,' con, -Trau nam ',nam,' con, -Trau gia ',gia,' con');
Ten=' CAC HAM LUONG GIAC';
Tde='|DO | RADIAN | SIN | COSIN | TANG | COTANG |';
Writeln(' * Loi giai thu : ',n:3);
Write('- Ga = ',x:2,' con = ',(x*2):2,' chan ');
Write('- Cho = ',y:2,' con = ',(y*4):2,' chan ');
If x+y<36 Then
Writeln('Ga+Cho= ',x+y:2,' con,khong dung')
Else If x+y=36 Then
Writeln('Ga+Cho= ',x+y:2,' con,loi giai dung');
n:=n+1;
End;
Trang 85Writeln(' * Tong cong co: ',(n-1):3,' loi giai'); Writeln;
Writeln(' Bam phim <Enter> de ket thuc');
Trang 86d:=22;
Writeln(c:2,' AND ',d:2,' = ',c AND d);
Trang 87Write('-Cho biet ngay ( so 0 de ngung): ');
Readln(Ngay);
If Ngay = 0 Then
Exit;
Trang 88Write('-Cho biet thang: ');
Trang 89Thư Viện Các Dạng Bài Tập Pascal của Tin Học 11 - Phần 3
c='Chuyen phat hanh cac giao trinh tin hoc phuc vu hoc sinh, sinh vien';
d='Chan thanh cam on quy doc gia';
Function Lap(Kt:Char; N:Integer): String;
Trang 90Write(#205); Write(#188);
For k:=y1+1 To y2-1 Do Begin
Trang 91Writeln(' CHUONG TRINH THUC HIEN PHEP TRU SO HOC'); Writeln(' co toi da 4 ky so');
Write('-Nhap so thu nhat = ');
Trang 92Writeln('+Ong (Ba) : ',ten:24);
Writeln('+Tien luong trong thang = ',tt:10:2,' dong'); Writeln('+So tien con linh = ',cl:10:2,' dong');
Writeln(' Bam phim <Enter> de ket thuc');
Trang 93Write('-Cho biet chieu cao : ');
Write('+Ong (Ba) : ',ten:24);
Writeln(' , ',tuoi,' tuoi');
Writeln('+Co so do Pignet = ',pig:6:2);
Trang 94End;
End;
Writeln;
Writeln('+Sau khi cong them so giay vao, gio moi la:');
Writeln(' ',gio,' : ',phut,' : ',giay);
Writeln('SAU KHI CHUYEN CHO');
Writeln('+So thu nhat bay gio la: ',so1);
Writeln('+So thu hai bay gio la : ',so2);
Readln
End
163/Đổi chổ 2 số:
Trang 95Writeln('DOI CHO 2 SO');
Writeln('Dung thu tuc');
Writeln(' Truoc khi doi cho');
Writeln('+So thu nhat = ',so1);
Writeln('+So thu hai = ',so2);
Writeln(' Sau khi doi cho');
Doi(so1,so2);
Writeln('*So thu nhat : ',so1);
Writeln('*So thu hai : ',so2);
Trang 96Writeln('DOI DO FAHRENHEIT SANG CELCIUS');
Write('-Cho biet do Fahrenheit : ');
Writeln('DOI MILE SANG Km');
Write('-Cho biet so Mile can doi: ');
Trang 97Writeln('DOI NGAY RA THU TRONG TUAN');
Writeln(' Lich the ky 20');
Trang 100KS:Array[ChuSo] Of String=(' ','mot ',' hai',' ba',
' bon',' nam',' sau',' bay',' tam',' chin'); DV:Array[DonVi] Of String[6]=(' muoi ',' tram');
If (sn[3]='5') And (sn[2] <>'0') then s:=s+'lam'
Else
s:=s+KS[sn[3]];
End;
End;
Trang 102Writeln('+Doi sang he 8 la: ',He8);
Trang 103Writeln(' Bam phim <Enter> de ket thuc');
thang:=' Thang '+Ten_thang[x];
End;
(* -*)
BEGIN
Writeln('DOI TEN THANG TU SO RA CHU');
Writeln(' Su dung ham');
Trang 104Chuoitk:='MOT HAI BA BON NAM SAU BAY TAM CHIN';
Write('-Nhap so can doi: ');
If (Donvi > 0) And (Donvi <> 5) Then
Chuoikq :=Chuoikq + Copy(Chuoitk,4* Donvi -3,4);
If (Donvi = 5) And (Chuc = 0) Then
Chuoikq :=Chuoikq + ' NAM';
If (Donvi = 5) And (Chuc > 0) Then
Chuoikq := Copy(Chuoitk,4 * Chuc-3,4)+' LAM';
If (Donvi = 5) And (Chuc = 1) Then
Chuoikq := ' LAM';
If Chuc = 1 Then
Chuoikq:='MUOI'+chuoikq;
If (Chuc > 1) And (Donvi = 0) Then
Chuoikq:=Copy(Chuoitk,4 * Chuc-3,4)+' MUOI ';
If (Chuc > 1) And (Donvi = 1) Then
Chuoikq:=Copy(Chuoitk,4 * Chuc-3,4)+' MUOI '+Chuoikq;
If (Chuc > 1) And (Donvi > 1) And (Donvi <>5) Then
Chuoikq:=Copy(Chuoitk,4 * Chuc-3,4)+' MUOI '+Chuoikq;
If (Tram > 0) And (Chuc=0) And (Donvi=0) Then
Chuoikq:=Copy(Chuoitk,4*Tram-3,4)+' TRAM ';
If (Tram > 0) And (Chuc = 0) And (Donvi > 0) Then
Chuoikq := Copy(Chuoitk,4*Tram-3,4)+' TRAM LINH '+ Copy(Chuoitk,4*Donvi-3,4);
If (Tram > 0) And (Chuc = 1) And (Donvi = 0) Then
Chuoikq := Copy(Chuoitk,4*Tram-3,4)+ 'TRAM MUOI';
If (Tram > 0) And (Chuc >= 2) And (Donvi = 0) Then
Chuoikq := Copy(Chuoitk,4*Tram-3,4)+' TRAM '+ Copy(Chuoitk,4*Chuc -3,4) +' MUOI';
If (Tram > 0) And (Chuc <> 0) And (Donvi > 0) Then
Chuoikq := Copy(Chuoitk,4*Tram-3,4)+' TRAM '+ Copy(Chuoitk,4*Chuc -3,4) +' MUOI '+ Copy(Chuoitk,4*Donvi-3,4);
If (Tram > 0) And (Chuc <> 0) And (Donvi = 5) Then
Chuoikq := Copy(Chuoitk,4*Tram-3,4)+' TRAM '+ Copy(Chuoitk,4*Chuc -3,4) +' MUOI LAM'; Write('-Viet bang chu la: ',Chuoikq);
Trang 105Writeln(' 1-Da Lat');
Writeln(' 2-Vung Tau'); Writeln(' 3-Nha Trang');
Writeln(' 4-Hue');
Writeln(' 5-Ha Noi');
Writeln('Chon noi nao, go cac so tu 1 den 5'); Writeln('1-Nguoi thu nhat chon 3 noi:'); Write(' -Noi thu nhat: ');
Writeln('3-Nguoi thu ba chon 3 noi:');
Write(' -Noi thu nhat: ');