Tải bản đầy đủ (.doc) (23 trang)

De Thi LT Pascal Hoc Phan 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (100.34 KB, 23 trang )

BT 6.3 Cho số tự nhiên n(n<256).Xây dựng tập tất cả các số chính phương <= n.
uses crt;
Var A:set of byte;
n,i:byte;
Begin
clrscr;
writeln('Xay dung tap cac so chinh phuong <=n (n<256)');
repeat
write('Nhap n= '); readln(n)
until (n>0) and (n<256);
A:=[];
for i:=0 to n do if frac(sqrt(i))=0 then A:=A+[i];
writeln('Tap cac so chinh phuong <= ',n,' la:');
write('A={');
for i:=0 to n do
if i in A then write(i:4);
writeln('}':4);
writeln('Da hoan thanh.An phim enter de tro ve!');
readln
End.
BT 6.4 Cho
Uses crt;
Type CH=set of char;
Var A,B,C,P,Q,R:CH;
i:byte;
Procedure Nhapptu(var A:CH; x:char);
var ch:char;
begin
writeln('Nhap phan tu cho tap hop ',x);
i:=1; A:=[];
while ch<>#13 do


begin
write('phan tu thu ',i,' la: '); readln(ch);
A:=A+[ch]; i:=i+1;
end;
clrscr;
end;
Procedure Inptu(var A:CH; x:char);
begin
writeln('Cac phan tu cua tap hop ',x,' la:');
for i:=0 to 255 do
if chr(i) in A then write(chr(i),' ');
writeln;
end;
Begin clrscr;
C:=[];
for i:=0 to 255 do C:=C+[chr(i)];
Nhapptu(A,'A'); Nhapptu(B,'B');
P:=C-A; Q:=C-B; R:=A*B;
Inptu(A,'A');
Inptu(B,'B');
Inptu(P,'P');
Inptu(Q,'Q');
Inptu(R,'R');
Readln;
End.
1
BT 6.5 Cho
Uses crt;
Var A:set of char; B:set of byte;
m,n,i,j,k:byte; ch:char;

Begin clrscr;
repeat
write('Nhap so ptu cua 2 TH A,B la m,n(0<m,n<17): '); readln(m,n);
until (n>0)and(n<17)and(m>0)and(m<17);
writeln('Nhap ptu tap A(gom cac ki tu):');
A:=[];
for i:=1 to m do
begin
write('Ptu thu ',i,' la:'); readln(ch);
A:=A+[ch];
end;
writeln('Nhap ptu tap B(gom cac so nguyen):');
B:=[];
for i:=1 to n do
begin
write('Ptu thu ',i,' la:'); readln(k);
B:=B+[k];
end;
writeln('Cac ptu cua tich Decac A*A la:');
for i:= 0 to 255 do
if chr(i) in A then
for j:= 0 to 255 do
if chr(j) in A then write('(',chr(i),',',chr(j),')',';');
writeln; writeln;
writeln('Cac ptu cua tich Decac A*B la:');
for i:= 0 to 255 do
if chr(i) in A then
for j:= 0 to 255 do
if j in B then write('(',chr(i),',',j,')',';');
writeln; writeln;

writeln('Da hoan thanh xong.An phim enter de tro ve!');
readln;
End.
BT 6.6 Cho
Uses crt;
Const monan:array[1..10] of string[10]=
('Tom','Ca','Trung','Bo','Lon','Ga','Vit','Dau','Khoaitay','Rau');
Type Thucdon=set of 1..10;
Var A,B,C,P,Q,R:Thucdon;
Procedure nhapmonan(var A:Thucdon);
var i:0..10;
begin
A:=[];
repeat
read(i);A:=A+[i];
until i=0;
end;
Procedure inmonan(var A:Thucdon);
var j:1..10;
begin
for j:=1 to 10 do if j in A then write(monan[j],' ');
writeln;
end;
2
Begin clrscr;
writeln('Nhap cac mon an theo so thu tu trong
Thuc Don.');
writeln('De dung nhap chon so 0 o cuoi day!');
writeln('Nhap mon an cho nguoi thu nhat:');
nhapmonan(a);

writeln('Nhap mon an cho nguoi thu hai:') ;
nhapmonan(b);
writeln('Nhap mon an cho nguoi thu ba:') ;
nhapmonan(c);
P:=A*B*C; Q:=A+B+C; R:= (A*B-C)+(B*C-
A)+(C*A-B);
writeln('Mon an ma ca 3 nguoi deu thich la:');
inmonan(P);
writeln('Mon an ma co 1 trg 3 nguoi thich la:');
inmonan(Q);
writeln('Mon an ma chi co 2 nguoi thich la:');
inmonan(R);
readln;
End.
BT 6.7 Cho
Uses crt;
Const DS:array[1..10] of string[10]=('Tung','Cuc','Truc','Mai','Dao','Hue','Hong','Lan','BachHop','Sen');
Type TH=set of 1..10;
Var A,B,C,P,Q,R,S:TH;
Procedure NhapDS(Var A:TH;ch:char);
var x,i:byte;
begin
writeln('Nhap Danh sach cac ban cua ban ',ch,'(nhap 0-ket thuc!)');
A:=[]; i:=1;
while x<>0 do
begin
write('Ban thu ',i,':'); readln(x);
A:=A+[x]; inc(i);
end;
clrscr;

end;
Procedure InDS(Var A:TH);
var i:1..10;
begin
write('{ ');
for i:=1 to 10 do if i in A then write(DS[i],' ');
writeln('}'); writeln;
end;
Begin clrscr;
NhapDS(A,'A'); NhapDS(B,'B'); NhapDS(C,'C');
P:=A*B*C; Q:=A-(B+C); R:=B-(A+C); S:=C-(B+A);
writeln('Danh sach ban cua nguoi A la:'); InDS(A);
writeln('Danh sach ban cua nguoi B la:'); InDS(B);
writeln('Danh sach ban cua nguoi C la:'); InDS(C);
writeln('Ban chung cua 3 nguoi la:'); InDS(P);
writeln('Ban rieng cua nguoi A la:'); InDs(Q);
writeln('Ban rieng cua nguoi B la:'); InDs(R);
writeln('Ban rieng cua nguoi C la:'); InDs(S);
readln;
End.
BT 6.8 Cho
Var Tap,ChuCai,ChuSo:Set of char;
ch:char; i:byte;
Begin clrscr;
Tap:=[]; ChuCai:=['A'..'Z','a'..'z']; ChuSo:=['0'..'9'];
writeln('Nhap cac ki tu tuy y(Nhap Enter-ket thuc!)');
Repeat
readln(ch); Tap:=Tap+[ch];
until ch= #13;
clrscr;

writeln('Ket qua nhan duoc la:');
for i:=1 to 255 do
if chr(i) in ChuCai*Tap then write(chr(i):2);
writeln;
for i:=1 to 255 do
if chr(i) in ChuSo*Tap then write(chr(i):2);
writeln;
for i:=1 to 255 do
if chr(i) in Tap-(ChuSo+ChuCai) then write(chr(i):2);
writeln('Da hoan thanh xong.An phim enter de tro ve!');
readln;
End.
3
BT 6.9 Ban ve may bay so ghe toi da la 255
Uses Crt;
Var V,G:set of byte;{V:Tap so ghe con trong, G:Tap so ghe da chon}
ghe:byte;
Procedure Inghetrong;
var gh:byte;
begin
writeln;
writeln('Danh sach cac ghe con trong!');
for gh:=1 to 250 do if gh in V then write(gh:4);
writeln;
end;
Begin clrscr;
writeln(' CHUONG TRINH BAN VE MAY BAY!');
V:=[1..250]; G:=[];
Inghetrong;
Repeat

write('Moi ban chon so ghe(0-ket thuc!):');
readln(ghe);
if ghe in V then
begin
V:=V-[ghe]; G:=G+[ghe];
Inghetrong;
end
else
if ghe<>0 then writeln('So ghe khong trong.Vui long chon lai!');
until ghe=0;
writeln('Ban da chon mua cac so ghe sau day.Cam on!');
for ghe:=1 to 250 do
if ghe in G then write(ghe:4);
readln;
End.
BT 7.1 Cho
Uses crt;
Const max=200;
Type HoSoSV=record
hoten:string[25];
dtoan,dtin,dngng,dtb:real;
end;
Var sv:array[1..max] of HosoSV;
n,i:byte;
Function cantrai(s:string):string;
begin
s:=#32+s;
while length(s) < 25 do s:=s+#32;
cantrai:=s;
end;

Begin clrscr;
writeln('DTB mon Toan,Tin,Ngoai ngu cua 1 lop SV!');
repeat
write('Nhap so sv trong lop:'); readln(n);
until (n>0) and (n<=max);
writeln('Nhap ho so cho SV trong lop!'); 

4
Function cangiua(s:string):string;
begin
for i:=1 to (25-length(s)) div 2 do
s:=#32+s;
while length(s) < 25 do s:=s+#32;
cangiua:=s;
for i:= 1 to n do
begin
writeln('Nhap ho so cho sv thu ',i);
with sv[i] do
begin
write('Ho va Ten:'); readln(hoten);
write('Diem Toan:'); readln(dtoan);
write('Diem Tin:'); readln(dtin);
write('Diem Ngoai Ngu:'); readln(dngng);
dtb:=(dtoan+dtin+dngng)/3;
end;
end;
clrscr;
writeln;
writeln(' HO SO SINH VIEN TRONG LOP');
writeln('+----+------------------------+------+----+--------+------+');

writeln('|STT| Ho Va Ten |Toan | Tin |NgNgu| DTB |');
writeln('+----+------------------------+------+----+--------+------+');
for i:=1 to n do with sv[i] do
writeln('|',i:3,'|',cantrai(hoten),'|',dtoan:5:1,'|',dtin:5:1,'|',dngng:5:1
,'|',dtb:5:1,'|');
writeln;
readln;
End.
BT 7.2 Cho
uses crt;
const max=100;
Type HoSoSV=record
hoten:string[25];
NS:record
ng,th:byte;
nam:word;
end;
end;
Var SV:array[1..max] of HoSoSV;
i,n:byte;
Function cantrai(s:string):string;
begin
s:=#32+s;
while length(s) < 25 do s:=s+#32;
cantrai:=s;
end;
procedure DoiCho(var a,b:HoSoSV);
var x:HoSoSV;
begin
x:=a; a:=b; b:=x;

end;
Procedure NhapDS;
begin
writeln('Nhap ho so sinh vien trong lop!');
repeat
write('Cho so SV trong lop :'); readln(n);
until (n>0) and (n<=max);
for i:= 1 to n do
begin
writeln('Nhap ho so cho SV thu ',i);
with SV[i],NS do
begin
write('Ho va ten:'); readln(hoten);
write('Ngay sinh:'); readln(ng);
write('Thang sinh:'); readln(th);
write('Nam sinh:'); readln(nam);
end;
end;
end;
Procedure SapxepDS;
var i,j:byte;
tg:HoSoSV;
begin
for i:=2 to n do
for j:=n downto i do
if (sv[j-1].NS.nam > sv[j].NS.nam)
or ((sv[j-1].NS.nam = sv[j].NS.nam) and ( sv[j-1].NS.th > sv[j].NS.th))
or ((sv[j-1].NS.nam = sv[j].NS.nam) and ( sv[j-1].NS.th = sv[j].NS.th) and (sv[j-1].NS.ng > sv[j].NS.ng))
then DoiCho(sv[j-1],sv[j])
end;

Procedure InDS;
Begin writeln;
writeln(' DANH SACH SINH VIEN TRONG LOP SAP XEP GIAM THEO TUOI !');
writeln;
5
Procedure SapxepDS;(cach khac)
var i,j:byte;
tg:HoSoSV;
begin
for i:=2 to n do
for j:=n downto i do
if sv[j-1].NS.nam > sv[j].NS.nam then
DoiCho(sv[j-1],sv[j])
else
begin
if sv[j-1].NS.nam = sv[j].NS.nam then
begin
if sv[j-1].NS.th > sv[j].NS.th then
DoiCho(sv[j-1],sv[j])
else
if sv[j-1].NS.th = sv[j].NS.th then
begin
if sv[j-1].NS.ng > sv[j].NS.ng then
DoiCho(sv[j-1],sv[j]);
end;
end;
end;
end;
writeln('+---+-----------------------+--------------+');
writeln('|STT| Ho Va Ten | NgaySinh |');

writeln('+---+-----------------------+--------------+');
for i:=1 to n do with sv[i],NS do
writeln('|',i:3,'|',cantrai(hoten),'| ',ng:2,'/',th:2,'/',nam:4,' |');
writeln;
end;
Begin clrscr;
NhapDS; clrscr;
SapxepDS; InDS;
readln;
End.
BT 7.3
uses crt;
const max=200;
Type HoSoNV=record
Hoten:string[25];
L,LCB,PC,TG:real;
NC:byte;
end;
Var NV:array[1..max] of HoSoNV;
n,i:byte;
Procedure NhapHoSoNV;
begin
writeln('CHUONG TRINH TINH VA IN BANG LUONG CHO NHAN VIEN TRONG XI NGHIEP!');
repeat
write('Cho so nhan vien trong xi nghiep:'); readln(n);
until (n>0) and (n<=max);
writeln('Nhap ho so cho nhan vien trong xi nghiep!');
for i:=1 to n do
begin
writeln('Ho so nhan vien thu ',i);

with nv[i] do
begin
write('Ho va ten:'); readln(hoten);
write('Luong co ban:'); readln(lcb);
write('So ngay cong:'); readln(nc);
write('Phu cap:'); readln(pc);
write('He so truot gia:');readln(tg);
l:= (pc+lcb*nc*tg)/26;
end;
end;
clrscr;
end;
Function cantrai(s:string):string;
begin
s:=#32+s;
while length(s)<25 do s:=s+#32;
cantrai:=s;
end;
Procedure InBangLuong;
begin
writeln;
writeln(' BANG LUONG NHAN VIEN TRONG XI NGHIEP XXX!');
writeln;

6
writeln('+---+------------------------+---------+----+------------+-----+-------------+');
writeln('|STT| Ho Va Ten | LCB |NC | PHUCAP | TG | LUONG |');
writeln('+---+------------------------+---------+----+------------+-----+-------------+');
for i:= 1 to n do with nv[i] do
writeln('|',i:3,'|',cantrai(hoten),'|',lcb:9:0,'|',nc:2,'|',pc:9:0,'|',tg:4:2,'|',l:9:0,'|');

writeln;
end;
Begin clrscr;
NhapHoSoNV;
InBangLuong;
readln;
End.
BT 7.5 Tinh tien dien
uses crt;
Const max=300;
Type HoSoQLD=record
hoten:string[25];
cscu,csmoi:word;
ttien:real;
end;
Var A:array[1..max] of HoSoQLD;
n,i:byte; sokw:word;
Function cantrai(s:string):string;
begin
s:=#32+s;
while length(s) < 25 do s:=s+#32;
cantrai:=s;
end;
Begin clrscr;
writeln('CHUONG TRINH TINH VA IN BANG TIEN DIEN CHO 1 KHU DAN CU');
repeat
write('Co bao nhieu ho dung dien:'); readln(n);
until (n>0) and (n<=max);
writeln('Nhap Ho So QLD cho cac ho!'); {Tinh tien dien}
for i:=1 to n do

begin
writeln('Nhap ho so cho ho thu ',i);
with a[i] do
begin
write('Ho ten chu ho:'); readln(hoten);
write('Chi so cu:'); readln(cscu);
write('Chi so moi:'); readln(csmoi);
sokw:= csmoi-cscu;
if sokw>0 then
case sokw of
01..50: ttien:=sokw*700;
51..70: ttien:=50*700+(sokw-50)*750;
71..100:ttien:=50*700+20*750+(sokw-70)*850
else ttien:=500*700+20*750+30*850+(sokw-100)*1000;
end {ket thu lenh case}
else ttien:=0;
end;
end;
clrscr; {In ket qua}
writeln;
writeln(' BANG THANH TOAN TIEN DIEN');
writeln;
7
writeln(' +---+-------------------------+--------+---------+----------+');
writeln(' |STT| Ho va Ten | CSCU | CSMOI| T.TIEN |');
writeln(' +---+-------------------------+--------+---------+----------+');
for i:=1 to n do with a[i] do
writeln(' |',i:3,'|',cantrai(hoten),'|',cscu:6,'|',csmoi:6,'|',ttien:8:0,'|');
writeln;
readln

End.
BT 7.6 Ho so hoc sinh sinh vien
uses crt;
const max=300;
Type HoSoSV=record
ho:string[18];
ten:string[7];
tuoi:byte;
dtb:real;
end;
Var SV:array[1..max] of HoSoSV;
n,i:word;
Procedure pause;
begin
write('Bam phim enter de tiep tuc chuong trinh!');
readln; clrscr;
end;
Function cantrai(s:string):string;
begin
s:=#32+s;
while length(s)< 7 do s:=s+#32;
cantrai:=s;
end;
Procedure NhapDS;
begin
writeln('NHAP HO SO CHO CAC SINH VIEN TRONG KHOA!');
repeat
write('Cho so SV trong khoa:'); readln(n);
until (n>0) and (n<=max);
for i:= 1 to n do

begin
writeln('Nhap ho so cho SV thu ',i);
with SV[i] do
begin
write('Nhap ho va ten dem:'); readln(ho);
write('Nhap ten:'); readln(ten);
write('Nhap tuoi:'); readln(tuoi);
write('Nhap DTB:'); readln(dtb);
end;
end;
clrscr;
end;
{a.In danh sach theo thu tu tang cua ho ten}
Procedure SapXepTen;
var i,j:word;
tg:HoSoSV;
begin
for i:=2 to n do
for j:=n downto i do
if sv[j-1].ten>sv[j].ten then
8
begin
tg:=sv[j-1]; sv[j-1]:=sv[j]; sv[j]:=tg;
end;
end;
Procedure InDSTen;
begin
writeln;
writeln(' DANH SACH SINH VIEN SAP XEP THEO HO TEN !');
writeln;

writeln(' +---+-------------------------+----+------+');
writeln(' |STT| Ho Va Ten |Tuoi| DTB |');
writeln(' +---+-------------------------+----+------+');
for i:=1 to n do with SV[i] do
writeln(' |',i:3,'|',ho:18,cantrai(ten),'|',tuoi:4,'|',dtb:5:2,'|');
writeln;
end;
{b.In danh sach sinh vien co DTB < 5.0}
Procedure InDSDTBN5;
begin
writeln;
writeln(' DANH SACH SINH VIEN CO DTB < 5.00');
writeln;
writeln(' +---+-------------------------+----+------+');
writeln(' |STT| Ho Va Ten |Tuoi| DTB |');
writeln(' +---+-------------------------+----+------+');
for i:=1 to n do with SV[i] do
if dtb < 5.00 then
writeln(' |',i:3,'|',ho:18,cantrai(ten),'|',tuoi:4,'|',dtb:5:2,'|');
writeln;
end;
{c.In DS sinh vien co DTB>=5.00 va sap xep theo DTB giam dan}
Procedure SapXepDTB;
var i,j:word;
tg:HoSoSV;
begin
for i:=2 to n do
for j:=n downto i do
if sv[j-1].dtb < sv[j].dtb then
begin

tg:=sv[j-1]; sv[j-1]:=sv[j]; sv[j]:=tg;
end;
end;
Procedure InDSDTBL5;
begin
writeln;
writeln('DANH SACH SINH VIEN CO DTB >= 5.00 VA SAP THEO DTB GIAM DAN');
writeln;
writeln(' +---+-------------------------+----+------+');
writeln(' |STT| Ho Va Ten |Tuoi| DTB |');
writeln(' +---+-------------------------+----+------+');
for i:=1 to n do with SV[i] do
if dtb >= 5.00 then
writeln(' |',i:3,'|',ho:18,cantrai(ten),'|',tuoi:4,'|',dtb:5:2,'|');
writeln;
end;
BEGIN clrscr;
NhapDS;
SapXepTen; InDSTen;
9

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×