Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC

Program Program TIM_SO_LON_NHAT;

Uses crt;

Var a,b,c,d,max: real;

BEGIN

Clrscr;

Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D') ;

Writeln('---------------------------------------------------------------');

Write(' Nhap a='); Readln(a);

Write(' Nhap b='); Readln(b);

Write(' Nhap c='); Readln(c);

Write(' Nhap d='); Readln(d); max:=a;

If b>max then max:=b; If c>max then max:=c; if d>max then max:=d;

Writeln('So lon nhat la: ' ,max: 4: 2);

Readln;

END.

pdf45 trang | Chuyên mục: Pascal | Chia sẻ: dkS00TYs | Lượt xem: 9306 | Lượt tải: 1download
Tóm tắt nội dung Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
eln; 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 32 
 Assign(f,'data.dat'); Reset(f); 
 For i:=1 to n do Read(f,ds[i]); 
 Close(f); 
 For i:=1 to n-1 do 
 For j:=i+1 to n do 
 begin 
 If (ds[i].ten>ds[j].ten) then Doi(i,j) 
 Else 
 If (ds[i].ten=ds[j].ten)And(ds[i].holot>ds[j].holot) then Doi(i,j); 
 end; 
 Writeln('Danh sach hoc sinh: '); 
 For i:=1 to n do 
 With ds[i] do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); 
 Writeln; 
 Write('Bam Enter de ket thuc...'); 
 Readln; 
 END. 
Bài tập 3: Thông tin về mỗi học sinh là một bản ghi gồm các trường: 
Họđệm: một xâu 25 kí tự. 
Tên: một xâu 10 kí tự. 
Tuổi: một số nguyên hai chữ số. 
Lớp: một xâu hai chữ số và một chữ cái viết hoa 
Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh. Hãy lập chương 
trình hiển thị danh sách lên màn hình, mỗi người một dòng. 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 33 
Program Nhaphocsinh; 
Uses Crt; Const n=5; 
 Type Danhsach=record 
 holot: string[25]; 
 ten: string[10]; 
 tuoi: 0..99; 
 lop: string[3]; 
 end; 
 Var ds: Danhsach; 
 i: byte; 
 f: file of Danhsach; 
 BEGIN 
 ClrScr; 
 Writeln('Danh sach hoc sinh tu file bai2.dat'); 
 Writeln; 
 Assign(f,'bai2.dat'); Reset(f); 
 For i:=1 to n do 
 Begin 
 Read(f,ds); 
 With ds do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); 
 End; 
 Close(f); 
 Writeln; 
 Write('Bam Enter de ket thuc...'); 
 Readln; 
 END. 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 34 
Bài tập 4: Một file bản ghi chứa một danh sách học sinh, thông tin về mỗi học sinh 
giống như bài trên. Hãy lập chương trình tạo một file bản ghi khác chứa danh sách 
đó, mỗi bản ghi gồm các trường: 
 Họtên: một xâu 35 kí tự. 
 Tuổi: một số nguyên hai chữ số. 
 Khối: một số nguyên hai chữ số. 
Lớp: một chữ cái viết hoa 
Prorgam file_banghi; 
Uses Crt; 
 Type Danhsach1=record 
 holot: string[25]; 
 ten: string[10]; 
 tuoi: 0..99; 
 lop: string[3]; 
 End; 
 Danhsach2=record 
 hoten: string[35]; 
 tuoi: byte; 
 khoi: byte; 
 lop: char; 
 End; 
 Var ds1: Danhsach1; 
 ds2: Danhsach2; 
 f1: file of Danhsach1; 
 f2: file of Danhsach2; 
 c: integer; 
 BEGIN 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 35 
 ClrScr; 
 Writeln('Ghi tu file bai3.dat sang bai3n.dat: '); 
 Writeln; 
 Assign(f1,'bai3.dat'); Reset(f1); 
 Assign(f2,'bai3n.dat'); Rewrite(f2); 
 While not Eof(f1) do 
 Begin 
 Read(f1,ds1); 
 With ds1 do 
 Begin 
 ds2.hoten:=holot+ten; 
 val(copy(lop,1,2),ds2.khoi,c); 
 ds2.tuoi:=tuoi; 
 ds2.lop:=UpCase(lop[3]); 
 Write(f2,ds2); 
 End; 
 End; 
 Close(f1); Close(f2); 
 Writeln; 
 Writeln('Bam Enter de ket thuc!'); 
 Readln; 
 END. 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 36 
Bài tập về chương trình con 
Bài tập 1. Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2. 
Procedure Change ( n: integer ; Var St: String ) ; 
b: Array[0.. 1] Of Char = ('0', '1') ; 
 Var 
 du, So: Integer ; 
 S: String ; 
 Begin 
 S:='' ; {tao xau rong} 
 So:=n ; 
 Repeat 
 Du:= So mod 2 ; 
 So:=So div 2 ; 
 S:=b[du] + s ; 
 Until So = 0 ; 
 St:=S ; 
 End ; 
Bài tập 2: Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = 0 
Uses Crt ; 
Var a, b, c, x1, x2: real; 
{================================} 
 Procedure Nhapabc(var aa,bb,cc: real); 
 Begin 
 Write('a='); Readln(aa); 
 Write('b='); Readln(bb); 
 Write('c='); Readln(cc); 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 37 
 End; 
{=================================} 
 Procedure GPTB2; 
 Var Delta: real; 
 Begin 
 Delta:=sqr(b)-4*a*c; 
 If Delta<0 then Writeln('Phuong trinh vo nghiem.') 
 Else 
 If Delta=0 then 
 Begin 
 Write('Phuong trinh co nghiem kep: '); 
 Write('x1,2=',-b/(2*a): 8: 2); 
 End 
 Else 
 Begin 
 x1:=(-b+sqrt(Delta))/(2*a); 
 x2:=(-b-sqrt(Delta))/(2*a); 
 Writeln('Phuong trinh co 2 nghiem phan biet la: '); 
 Writeln('X1=',x1: 8: 2, 'X2=',x2: 8: 2); 
 End; 
End; 
{============================================} 
BEGIN { CT chính } 
 Clrscr; 
 Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So: '); 
 Nhapabc(a,b,c); 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 38 
 If a0 then GPTB2 
 Else Writeln(' Khong phai phuong trinh bac hai '); 
 Readln ; 
 END. 
Bài tập 3: Viết chương trình thực hiện lần lượt các công việc sau: 
 Lập thủ tục nhập ba số thực dương a, b, c từ bàn phím. 
 Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay 
không ? 
 Viết thủ tục tính diện tích của tam giác. 
 Viết thủ tục tính các trung tuyến của tam giác. 
 Viết hoàn thiện chương trình chính. 
Program Chuong_trinh; 
Uses Crt; 
 Var a, b, c: real ; 
 {================================} 
 Procedure Nhap(Var a, b, c: real); 
 Procedure input (Var a: real; tenbien: Char); 
 Begin 
 Repeat 
 Write('Nhap ' + tenbien+' = '); Readln(a); 
 Until (a>=0); 
 End; 
 Begin 
 Input(a, 'a'); 
 Input(b, 'b'); 
 Input(c, 'c'); 
 End; 
 Procedure Kiemtra(a, b, c: Real); 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 39 
 Begin 
 If (a<b+c) And (b<a+c) And (c<a+b) then 
 Writeln(a:0:2, ', ', b: 0: 2, ' va ', c: 0: 2, ' lap thanh ba canh cua tam giac ') 
 Else Writeln('Khong lap thanh ba canh cua tam giac') ; 
 End; 
 Procedure Trung_tuyen (a, b, c: Real); 
 Var ma, mb, mc: real; 
 Begin 
 ma:=sqrt((2*sqr(b)+2*sqr(c)-sqr(a))/4); 
 mb:=sqrt((2*sqr(a)+2*sqr(c)-sqr(b))/4); 
 mc:=sqrt((2*sqr(a)+2*sqr(b)-sqr(c))/4); 
 Writeln('Cac trung tuyen cua tam giac la: ') ; 
 Writeln('ma=', ma: 0: 2, ' mb=', mb: 0: 2, ' mc=', mc: 0: 2); 
 End; 
 {================================} 
 Procedure Dientich (a, b, c: real); Var p, S: real; 
 Begin 
 p:=(a+b+c)/2; 
 S:=sqrt(p*(p-a)*(p-b)*(p-c)); 
 Writeln('Dien tich =', S: 0: 2); 
 End; 
 {================================} 
 BEGIN 
 Clrscr; 
 Nhap(a, b, c); 
 Kiemtra(a, b, c); 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 40 
 Dientich(a, b, c); 
 Trung_tuyen(a, b, c); 
 Readln; 
 END. 
Bài tập 4: Số Hoàn Hảo là số có tổng các ước của nó (trừ nó) bằng chính nó 
Ví dụ: 6 = 1 + 2 + 3 
a. Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không 
b. Liệt kê tất cả số hoàn hảo từ 1..2000 và đếm xem có bao nhiêu số 
Program So_hoan_hao; 
uses crt; 
var n,i,d,k,j: integer; 
Procedure hoanhao; 
Begin 
 d:=0; 
 for i:=1 to n-1 do 
 if n mod i=0 then d:=d+i; 
 if d=n then writeln(' So vua nhap la so hoan hao') 
 else writeln(' So vua nhap khong la so hoan hao'); 
end; 
Procedure Viet_len; 
Begin 
 write(' Day so hoan hao tu 1-->2000: '); 
 k:=0; 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 41 
 for i:=1 to 2000 do 
 Begin 
 d:=0; 
 for j:=1 to i-1 do 
 if i mod j=0 then d:=d+j; 
 if d=i then 
Begin 
 write(i: 5); k:=k+1; 
End; 
End; 
writeln; 
 writeln(' Trong day 1-->2000 co ',k,' so hoan hao'); 
End; 
Begin 
 clrscr; 
 write(' Nhap n='); readln(n); 
 hoanhao; 
 vietlen; 
 readln; 
End. 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 42 
Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số viết chương trình con thực hiện 
 Kiểm tra tình chắn lẻ 
 Kiểm tra xem có phải là số nguyên tố không 
 Kiểm tra xem có phải là số chính phương không 
Sau đó trên chương trình chính kiểm tra và trả lời số vừa nhập thuộc số nào? 
Program chuong_trinh; 
uses crt; 
var i,n,k,d: integer; 
 ok: boolean; 
Function chanle(n: integer): boolean; 
Begin 
 ok:=true; 
 if n mod 20 then ok:=false; 
 chanle:=ok; 
End; 
Function nguyento(n: integer): boolean; 
Begin 
 ok:=true; d:=0; 
 for i:=2 to n-1 do 
 if n mod i=0 then d:=d+1; 
 if d1 then ok:=false; 
 nguyento:=ok; 
End; 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 43 
Function chinhphuong(n: integer): boolean; 
Begin 
 ok:=true; k:=trunc(sqrt(n)); 
 if sqr(k)n then ok:=false; 
 chinhphuong:=ok; 
End; 
Begin 
 clrscr; 
 write(' Nhap n=');readln(n); 
 if chanle(n) then writeln(' So vua nhap la chan') 
 else writeln(' So vua nhap la so le'); 
 if nguyento(n) then writeln(' So vua nhap la nguyen to') 
 else writeln(' So vua nhap khong phai la so nguyen to'); 
 if chinhphuong(n) then writeln(' So vua nhap la so chinh phuong') 
 else writeln(' So vua nhap khong la so chinh phuong'); 
 readln; 
End. 
Bài 6. Viết chương trình con tính a Giai Thừa với a nhập từ bàn phím 
Program giaithua; 
uses crt; 
var a: integer; 
Function gt(n: byte): Longint; 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 44 
Var 
 s: Longint; 
 i: byte; 
Begin 
 s:=1; 
 For i:=2 to n do s:=s*i; 
 gt:=s; 
End; 
Begin 
clrscr; 
 write ('Nhap so can tinh giai thua: ');readln(a); 
 if a:=0 or a:=1 then writeln('Giai thua cua ',a,' = 1') 
 else writeln('Giai thua cua',a,' =', gt(a) ); 
End. 
Bài 7. Nhập vào 1 mảng gồm n số nguyên (2<n<20). In ra các số nguyên tố có trong 
mảng. 
Program Mang; 
uses crt; 
var a: array [ 1..20] of byte; 
i,n,d,j,k: integer; 
Procedure nhap; 
Begin 
 for i:=1 to n do 
Begin 
 write(' a[',i,']='); readln(a[i]); 
End; 
 End; 
Procedure nguyento; 
Begin 
 write(' Day so cac so nguyen to: '); 
Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang 
ĐT: 0972.311.481 Trang 45 
 k:=0; 
 for i:=1 to n do 
 Begin 
 d:=0; 
 for j:=1 to a[i]-1 do 
 if a[i] mod j=0 then 
 d:=d+1; 
 if d=1 then 
 Begin 
 write(' ',a[i]); 
 k:=k+1; 
 End; 
 End; 
 if k=0 then 
 write(' khong co so nao') 
 else 
 begin 
 writeln; 
 writeln(' Trong day co ',k,' so nguyen to'); 
 End; 
End; 
Begin 
 clrscr; 
 repeat 
write(' Nhap n='); readln(n); 
 until (2<n)And(n<20); 
nhap; 
nguyento; 
readln; 
End. 

File đính kèm:

  • pdfBài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC.pdf