1. Trang chủ
  2. » Công Nghệ Thông Tin

47 bt pascal luyện thi hsg

27 5 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 47 Bài Tập Pascal Luyện Thi HSG
Định dạng
Số trang 27
Dung lượng 264 KB

Nội dung

Theo khung chương trình của Bộ Giáo Dục và Đào Tạo, Ngôn ngữ Lập trình Pascal là một phần quan trọng trong học phần Tin học Đại cương thuộc các khối ngành Khoa học Tự nhiên, đặc biệt là ngành Công nghệ Thông tin. Nhằm đáp ứng yêu cầu học tập của học sinh, sinh viên bước đầu làm quen với công việc lập trình, chúng tôi đã biên soạn bộ Giáo Trình Bài tập Pascal nhằm giúp cho sinh viên có một tài liệu học tập, rèn luyện tốt khả năng lập trình, tạo nền tảng vững chắc cho các môn học tiếp theo trong chương trình đào tạo Cử nhân Công nghệ Thông tin . Giáo trình bai gồm rất nhiều bài tập từ đơn giản đến phức tạp. Các bài tập này được biên soạn dựa trên khung chương trình giảng dạy môn Tin học Đại cương. Bên cạch đó, chúng tôi cũng bổ sung một số bài tập dựa trên cơ sở một số thuật toán chuẩn với các cấu trúc dữ liệu được mở rộng nhằm nâng cao kỹ năng, phương pháp lập trình cho sinh viên. Nội dung của giáo trình được chia thành 10 chương. Trong mỗi chương đều có phần tóm tắt lý thuyết, phần bài tập mẫu và cuối cùng là phần bài tập tự giải để bạn đọc tự mình kiểm tra những kiến thức và kinh nghiệm đã học. Trong phần bài tập mẫu, đối với những bài tập khó hoặc có thuật toán phức tạp, chúng tôi thường nêu ra ý tưởng và giải thuật trước khi viết chương trình cài đặt. Xin chân thành cảm ơn các đồng nghiệp ở Khoa Công nghệ Thông tin Trường Đại học Khoa học Huế đã giúp đỡ, đóng góp ý kiến để hoàn chỉnh nội dung giáo trình này. Chúng tôi hy vọng sớm nhận được những ý kiến đóng góp, phê bình của bạn đọc về nội dung, chất lượng và hình thức trình bày để giáo trình này ngày một hoàn thiện hơn.

Trang 1

Write('Nhap chieu dai='); readln(a);

Write('Nhap chieu rong=');readln(b);

à i 3 : Tính tam giác: Nhập vào ba số a,b,c bất kì Kiểm tra xem nó

có thể là độ dài ba cạnh hay không, nếu không thì in ra màn hình 'Khong la ba canh cua mot tam giac' Ngược lại, thì in diện tích, chu vicủa tam giác ra màn hình

Program TAMGIAC; Uses crt;

Var a,b,c,s,p : real; Begin

Trang 2

Writeln('Chu vi tam giac:',2*p:4:2) ; Writeln('Dien tich tam

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

Write ('Nhap b= ');readln(b); If(a=0) then

Trang 3

delta:=b*b-4*a*c; If delta =0 then

Writeln('Phuong trinh co nghiem kep: x=',-b/(2*a):4:2)

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;

Trang 4

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

Begin

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

Write('Nhap b='); Readln(b); Write('Nhap c='); Readln(c);Write('Nhap d='); Readln(d); min:=a;

If b<min then min:=b;

If c<min then min:=c;

If d<min then min:=d;

Writeln('So nho nhat la:',min:4:2); Readln;

If (dx=0) and (dy=0) then

Writeln('He vo so nghiem hoac vo nghiem') Else writeln('He vo

à i 10 : Nhập vào tâm và bán kính của một đường tròn Sau đó nhập

vào một điểm A(x, y) bất kì và kiểm tra xem nó có thuộc đường tròn hay không?

Write('Nhap ban kinh R= ');readln(r);

Write('Nhap toa do tam duong tron = '); readln(x0, y0);

Write('Nhap toa do diem a = '); readln(xa, ya);

d:=SQRT(SQR(xa-x0)+SQR(ya-y0));

If r=d then Writeln('Diem A nam tren duong tron')

Trang 5

If d>r then Writeln('Diem A nam ngoai duong tron') Else Writeln('Diem A nam trong duong tron'); Readln;

Trang 7

Var i,j,k:integer; Begin

Writeln('CHUONG TRINH TIM SO:');

18 : Nhập vào một số nguyên không âm, kiểm tra xem nó có phải

là số nguyên tố hay không?

Until (n mod i= 0) or (i*i>n);

If i*i>n then Writeln (n,' la so nguyen to')

Else Writeln (n,' khong phai la so nguyen to');

End;

Trang 8

à i 19 : In ra các số nguyên tố nhỏ hơn hoặc bằng N (N là số nguyên

không âm được nhập từ bàn phím)

Program CAC_SO_NGUYEN_TO; Uses crt;

Var n,i,t: integer; Begin

Clrscr;

Writeln('IN RA CAC SO NGUYEN SO <=N');

Writeln(' -');

Write('Nhap n = ');readln(n); If n<2 then Writeln('Khong co so nguyen to nao <=',n) Else Begin Writeln('Cac so nguyen to <= ',n,' la:'); For i := 2 to n do Begin t:= 1; Repeat t:= t+1; Until ( i mod t = 0) or ( t*t>i ) ; If( t*t>i) then Write(i:4); End; B à i 2 4 : Tạo hình b)

a) * * * * * *

* * * * * * * *

* * * * * * * * * *

* * * * * * * * * * *

* * * * * * * * * * * * *

* * * * * * *

hình c Program TAO_HINH_A; Uses Crt; Var i,j,n: integer; Begin Clrscr; Writeln(' TAO HINH A:'); Writeln(' -');

Write('Nhap so dong n=');readln(n);

For i:= 1 to n do

Begin

For j:=1 to i do

Write('* '); Writeln;

Program TAO_HINH_B;

Uses Crt;

Trang 9

Var i,j,n,m: integer;

If (Min > a[i]) then Min:=a[i];

If (Max < a[i]) then Max:=a[i];

Sum :=sum+a[i];

Writeln('Day so vua nhap la: ');

Trang 10

Writeln(' -');

For i:=1 to n do

Write(a[i]:4); Writeln;

Writeln('Gia tri lon nhat la:',Max);

Writeln('gia tri nho nhat la:',Min);

Writeln('gia tri trung binh la:',Sum/n:6:2);

Readln;

B

à i 21 : Viết chương trình nhập vào một dãy số nguyên có n phần tử.

a Đưa những phần tử lẻ ra đầu danh sách, những phần tử chẵn về cuối danh sách và in kết quả ra màn hình

b Sắp xếp các phần tử lẻ đầu danh sách theo thứ tứ tăng dần, sắp xếp các phần tử

chẵn cuối danh sách theo thứ tự giảm dần In danh sách ra màn hình Program DAY_CHAN_LE;

While (l<r) and (a[l] mod 2 = 1) do l:=l+1;

While (r>l) and (a[r] mod 2 = 0) do r:=r-1;

Trang 11

If a[i] mod 2 <> 0 then k:=k+1; For i:=1 to k-1 do

à i 22 : Viết chương trình nhập vào một dãy số nguyên có n phần tử.

a Sắp xếp dãy theo thứ tự tăng dần và in kết quả ra màn hình

b Nhập vào một số x bất kì, đếm số lần xuất hiện của nó trong dãy trên

Trang 12

{Nhap vao mot so dem so lan xuat hien}

Write('Nhap vao so x='); Readln(x);

dem:=0;

For i:=1 to n do

If a[i]=x then dem:=dem+1;

Write('So lan xuat hien cua ',x,' la: ',dem); Readln;

{Cac phan tu nho hon hoac bang x}

Writeln('Cac phan tu <= ',x,' la:');

For i:=1 to n do

If(a[i]<=x) then

Write(a[i]:3);

Readln;

{In cac phan tu lon hon x}

Writeln('Cac phan tu > ',x, ' la:');

For i:=1 to n do

If a[i]>x then

Write(a[i]:3);

B

à i 23 : Viết chương trình nhập vào một dãy số nguyên có n phần tử

Sắp xếp dãy số theo thứ tự giảm dần & tính giá trị trung bình của dãy Program DAY_SO1;

Trang 13

Write('Nhap so phan tu cua day n = '); Readln(n);

t:=a[i]; a[i]:=a[j]; a[j]:=t;

Writeln(' Day sau khi sap xep giam dan la:');

For i:=1 to n do

Write(a[i]:4); Readln;

{Tinh trung binh day}

s:=0;

For i:=1 to n do s:=s+a[i];

Writeln('Gia tri trung binh la: ',s/n:6:2); Readln;

B

à i 24 : Viết chương trình nhập vào một ma trận vuông cấp n a In

ra trong các phần tử trên đường chéo chính

b In ra màn hình trong các phần tử trên đường chéo phụ Program MATRAN_TONGDUONGCHEO;

For i:=1 to n do sum1:=sum1+a[i,i];

Writeln('Tong cac phan tu tren duong cheo chinh la: ', sum1);

sum2:=0;

For i:=1 to n do sum2:=sum2+a[i,n-i+1];

Writeln('Tong cac phan tu tren duong cheo phu la: ', sum2);

Readln;

Trang 14

BÀI TẬP CHƯƠNG 1: CÂU LỆNH IF ….THEN…

and ( a > 0 ) and ( b > 0 ) and ( c > 0 ) Then

Writeln (' Thoa man : Day la 3 canh cua mot tam giac ')

Đếm các số lớn hơn 10 và nhỏ hơn 20 và tính tổng của chúng Sau đó , đưa

ra màn hình :So cac so >10 và <20 la : ( gia tri ) ;Tong cua chung la : ( gia tri )

Writeln (' So cac so >10 va <20 la : ', Dem ) ;

Writeln (' Tong cua chung la :', Tong ) ;

Trang 15

Var Max , a , b , c , d : Real ;

If Max < b Then Max := b ;

If Max < c Then Max := c ;

If Max < d Then Max := d ;

Writeln (' Gia tri lon nhat la : ', Max ) ;

Readln ;

END

Viết chương trình :

Nhâp số báo danh

Nhập điểm văn , toán , ngoại ngữ

Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng

số điểm >= 15 hay ngược lại

GIẢI

Uses Crt ; Var SBD : Integer;

Van , Toan , Ngoaingu , Tongdiem : Real ;

BEGIN

Clrscr ;

Write (' So bao danh : ') ; Readln( SBD ) ;

Write (' Diem toan : ') ; Readln( Toan ) ;

Write (' Diem ngoai ngu : ') ; Readln( Ngoaingu ) ;

Write (' Diem van : ') ; Readln ( Van ) ;

Tongdiem := Toan + Van + Ngoaingu ;

Clrscr ;

Writeln (' Phieu Bao Diem ') ;

Writeln (' So bao danh : ', SBD ) ;

Writeln (' Diem van : ', Van ) ;

Writeln (' Diem toan : ', Toan ) ;

Writeln (' Diem ngoai ngu : ', Ngoaingu) ;

Writeln (' Tong diem : ', Tongdiem) ;

Trang 16

Nếu là “+” , in kết quả của tổng lên màn hình

Nếu là “-” , in kết quả của hiệu lên màn hình

Nếu là “/” , in kết quả của thương lên màn hình

Nếu là “*” , in kết quả của tích lên màn hình Nếu là “+” , in kết quả của tổng lên màn hình

Nếu là “+” , in kết quả của tổng lên màn hình

Trang 17

Viết chương trình nhập hai số tự nhiên N, M và thông báo ‘Dung‘ nếu N ,

M cùng tính chẵn lẽ , trong trường hợp ngược lại thì thông báo ‘Sai‘.GIẢI

If ( (N + M) mod 2 = 0 ) Then Writeln(' Dung ! ')

Else Writeln(' Sai ! ') ;

Trang 19

Var i , n : Integer ;

a , giatri : Real ;

BEGIN

Clrscr ;

Write (' Cho so a : ') ; Readln(a) ;

Write (' Cho so mu n : ') ; Readln(n) ;

While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;

If j = i Then Writeln( A[i] ) ;

Trang 20

Write(' Do dai cua day so N = ') ; Readln (N) ;

Writeln (' Nhap day so : ') ;

Cho một dãy số được nhập từ bàn phím Hãy viết chương trình nhập một

số a rồi liệt kê tất cả các phần tử trong dãy lớn hơn a

Write ('Nhap do dai cua day so : ') ; Readln(n) ;

Writeln (' Nhap cac phan tu cua day : ') ;

For i := 1 To n Do

Trang 21

Begin

Write (' b[', i ,'] = ') ; Readln( b[i] ) ;

End ;

Write (' Nhap so thuc a : ') ; Readln(a) ;

Writeln (' Cac phan tu lon hon a cua day : ') ;

Write (' Nhap do dai cua day so nguyen : ') ; Readln(n) ;

Writeln (' Nhap cac phan tu cua day : ') ;

Trang 22

writeln (' Chuong trinh tinh thoi gian rut tien lai ') ;

write (' So tien lai muon rut ra : ') ; readln(x) ;

writeln (' Ban phai gui tien trong ', thang div 12 , ' nam ',

thang mod 12 ,' thang ') ;

writeln (' Khi do so tien ban rut ra duoc la ', tien:12:2 ,' dong ') ;

Trang 23

Writeln (' Tim USCLN cua N so :') ;

Write (' Nhap so N : ') ; Readln(n) ;

Trang 24

Writeln('He co nghiem duy nhat :');

Writeln('x=', x:0:2, ' ; y=', y:0:2);

For j := 2 To 9 Do a[i, j] := i*j ;

Writeln(' Bang cuu chuong : ') ; Writeln ;

Trang 25

Writeln ('Trung binh cong bimh phuong cac so '

+ 'nguyen tu m den n la: ', tb:12:2);

Write ('Nhap cac kich thuoc cua mang hai chieu : ') ;

Write (' So hang m = ') ; Readln(m) ;

Write (' So cot n = ') ; Readln(n) ;

Writeln (' Nhap cac phan tu cua mang : ') ;

Trang 26

Hãy lập chương trình tính và gán giá trị của dãy vào biến mảng

Var a : Array [1 100] Of Word ;

A Hàm số học dùng cho kiểu số nguyên và số thực:

1 Hàm ABS(x): trị tuyệt đối của x

2 Hàm EXP(x): ex

3 Hàm FRAC(x): cho số thực bằng phần lẻ của x

4 Hàm INT(x): Cho số thực bằng số nguyên của x

9 Hàm SQRT(x): căn bậc hai của x

10 Hàm SIN(x), cos(x), arctan(x): sin; cos, arctgx

11 Succ(n): tăng n lên 1 đơn vị

12 Hàm TRUNC(X): Lấy phần nguyên của x

B Các hàm và thủ tục xử lí xâu:

a Hàm length(x): cho độ dài thực tế của xâu x

b Hàm Copy(x,m,n): cho ta n kí tự của xâu x kể từ kí tự thứ m

c Hàm Concat(x,y,…,z): nối tất cả 1 xâu lại thành một xâu

d Hàm Pos(y,x): cho ta vị trí đầu tiên của xâu y gặp trong xâu x nếu

Trang 27

không tìm thấy hàm nhận giá trị bằng 0

e Thủ tục Delete(x,m,n): xoá n kí tự của x kể từ kí tự thứ m

f Thủ tục Insert(y,x,n): chèn xâu y vào xâu x từ kí tự thứ n

g Thủ tục Val(x,i, ma): thủ tục này chuyển đổi xâu x thành số nguyên hoặc số thực mà chính xâu x biểu diễn nó, nếu việc chuyển đổi thành công thì tham số ma nhận giá trị 0; trong trường hợp ngược lại ma nhận giá trị của

x trong trường hợp không chuyển đổi được

h Thủ tục STR(r,x): Biến đổi số nguyên hay số thực r thành kiểu chuỗi và gán cho biến chuỗi x

i Hàm Readkey: đọc 1 kí tự từ bàn phím, kí tự này không hiện trên màn hình

l Hàm Upcase(ch): đổi kí tự ch thành kí tự tự do

Ngày đăng: 06/06/2024, 16:52

w