1. Trang chủ
  2. » Luận Văn - Báo Cáo

TỔNG HỢP, PHÂN LOẠI BÀI TẬP PASCAL CÓ LỜI GIẢI

157 7,2K 18

Đ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

Định dạng
Số trang 157
Dung lượng 902,5 KB

Nội dung

Lần lượt cho chương trình đọc giá trị của các phần tử nhập được.. - Một thủ tục Procedure sẽ làm công việc sắp xếp như sau : đầu tiên đưa phần tử thứ nhất sosánh với các phần tử tiếp the

Trang 1

A BÀI TẬP VỀ CÂU LỆNH CÓ CẤU TRÚC

Bài 1 Kiểm tra số nguyên tố

Var n,I : integer; ok : boolean;

While (n mod I <> 0) and ( i<= sqrt(n));

If i > sqrt(n) then ok:= trueElse ok:= false;

End;

If ok then write (‘ Đó là số nguyên tố’)

Else write (‘ Đó không à số nguyên tố’);

Until (i>k) or (n mod I = 0) ;

If i > k then write (‘ Đó là số nguyên tố’)

Else write (‘ Đó không à số nguyên tố’);

Trang 2

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

Write ('Cac so nguyen to nho hon ',n,' la:');

for i:=2 to trunc(sqrt(n)) do

if n mod i=0 then exit;

Trang 3

writeln('tong la: ',tong);

writeln('tich la: ',tich);

Write('Hãy nhập tên của bạn : '); Readln(St);

FOR i:= 1 TO Length(St) DO

Trang 4

Bài 7 : VCT tính số tiền điện trong 1 thắng.

write ('Nhap so a:= '); readln (a);

write ('Nhap so b:= '); readln (b);

write ('Nhap so c:= '); readln (c);

max:=a; {cái này dạng như chúng ta giả sử a là số lớn nhất :D }

if max<b then max:=b;

if max<c then max:=c;

write ('so lon nhat max:= ',max);

write ('Nhap a:= ');readln (a);

write ('Nhap b:= ');readln (b);

write ('Nhap c:= ');readln (c);

if (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then

begin

write ('3 cạnh tren tao thanh 1 tam giac');

if (a=b) and (b=c) then

write ('Day la tam giac deu');

if (a=b) or (b=c) or (a=c) then

Trang 5

weite ('Day la tam giac can');

Write(‘nhap a:’); readln(a);

If a mod 2 = 0 then writeln(a,’la so chan’)

Else

Writeln(a,’la so le’);

Trang 6

If sqrt(a) = int(sqrt(a)) then writeln(a,’la so chinh phuong’)

Trang 7

Writeln(‘ Tong so tien lai :’,Y – X);

Writeln(‘so thang gui:’,month);

Write(‘nhap nam hien tai:’); readln(M);

Write(‘nhap thang hien tai:’); readln(N);

Trang 8

- Tổng các chữ số của n bằng bao nhiêu?

- Tìm chữ số đầu tiên của n

- Giả sử trong cách biểu diễn thập phân của n có dạng sau:

1 2

Trang 9

Write('Ban hay nhap so thu nhien n:');Readln(n);

if n<0 then Writeln('n phai la so tu nhien.');

Writeln('Tong cac chu so cua ',n,' la:',k,'.');

Writeln('Chu so dau tien cua ',n,' la:',s[1],'.');

For i:=1 to length(s) do k:=k+(ord(s[i])-48);

Writeln('Tong ',m,' chu so cuoi cung cua ',n,' la:',k,'.');

) 1 (

) 1 ( 5

) 1 ( ) 1 ( 3

) 1 ( ) 1 (

) 1 (

1 2

1 2 5

5 3

x x

x x

x x

x

0001 , 0 )

1 ( ) 1 2 (

) 1 (

1 2

1 2

x

Trang 10

for i:=2 to n do tong:=tong+1/i;

writeln('Ket qua, S =',tong:7:4);

writeln;

writeln('An Phim BAT KY de TIEP TUC, X de THOAT! ');

t:=readkey;

Trang 11

for i:=2 to round(sqrt(a)) do

if (a mod i)=0 then d:=d+1;

writeln('An Phim Bat ky de THOAT! ');

repeat until keypressed;

Trang 12

if i<256 then r:=x*x+i/tinh(i*2)

Write('Ban hay nhap so thuc x:');Readln(x);

if x=0 then Writeln('Ban phai nhap x khac 0.');

Until x<>0;

Write('Ket qua la:',tinh(2):0:2);

Readln;

End.

Bài 25 Số hoàn hảo

Nhập từ bàn phím một số tự nhiên N Lập chương trình tìm tất cả các số hoàn hảo có giátrị từ 1 đến N (nếu có) Nếu không có hãy đưa ra thông báo “Không có” (Số hoàn hảo là một

số tự nhiên thoả mãn điều kiện: giá trị số đó bằng tổng các ước số thực sự của nó mà không

Trang 13

Bài 26: Tính số ngày giữa 2 mốc thời gian bất kỳ:

Yêu cầu nhập vào 6 số: nd, td , yd , nc , tc , yc là ngày tháng năm bắt đầu và ngàytháng năm cuối ( 2000 < yd < yc ) Hãy tính xem giữa hai mốc thời gian đó có bao nhiêungày Biết rằng: Tháng 4, 6, 9, 11 có 30 ngày.Tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày.Tháng 2nếu năm nhuận có 29 ngày còn nếu không nhuận thì có 28 ngày Bốn năm có một năm nhuận,biết rằng năm 2000 thì năm nhuận

For i:=yd+1 to yc-1 do

if i mod 4<>0 then n:=n+365 else n:=n+366;

For i:=td to 12 do n:=n+ng(i,yd);

Bài 27: Trên một bàn cờ có n x n ô, hãy lập trình xếp 2n quân cờ lên bàn cờ sao cho không có

quá 2 quân cờ trên 1 hàng và trên 1 cột Chỉ cần in ra một cách xếp lên màn hình (dùng dấu

‘*’làm ký hiệu quân cờ )

var i,k,n:integer;

Trang 14

a.Tìm hai phần tử liên tiếp nhau có tổng bằng n.

b Tính khoảng cáhc giữa hai vị trí của phần tửlớn nhất và bé nhất đầu tiên trên A.

{Tìm hai phần tử liên tiếp nhau có tổng bằng n}

While (A[i] + A[i+1]) <> n) and (i<= n-1) do Inc(i);

If i>=n then write (‘hai phan tu co chi so la:’,i,’ va’,i+1);

{Tính khoảng cáhc giữa hai vị trí của phần tử lớn nhất và bé nhất đầu tiên trên A}

Trang 15

const NMax = 50;

Type Mass = array[1 NMax, 0 NMax-1] of real;

Var A: Mass; i, j, N:byte; C: real;

Bài 5: Sắp xếp một dãy số theo thứ tự từ nhỏ đến lớn

Tiến trình của bài toán:

- Giả sử chuỗi số của ta có n phần tử Lần lượt cho chương trình đọc giá trị của các phần tử nhập được

- Một thủ tục (Procedure) sẽ làm công việc sắp xếp như sau : đầu tiên đưa phần tử thứ nhất sosánh với các phần tử tiếp theo, nếu nó lớn hơn phần tử so sánh thì đem đổi chổ giá trị của hai phần tử với nhau Sau đó tiếp tục đem phần tử thứ 2 so sánh các phần tử tiếp theo theo trình

Trang 16

tự như vậy, và cứ như thế cho đến phần tử thứ n - 1

Trang 17

write('nhap phan tu a[',i,',',j,']: ');

readln(a[i,j]);

end;

for i:=1 to m do

for j:=1 to n do

if odd(a[i,j]) then write(a[i,j],' ');

{tong so hang le}

Writeln(‘tong binh phuong cac so hang chan’,tbphc);

{tinh tong can bac 2 cac cot le}

Tccl := 0;

For := 1 to n do

For j :=1 to n div 2 do

Tccl : =tccl + sqrt(A[I,j sh 1 2] – 1);

Writeln(tong can cot le’,tccl);

{co bao nhieu gia tri nam trongg 4 6}

Writeln(so phan tu nam trong khoang 4 6 la’,L);

{tong duong cheo chinh}

Trang 19

Writeln(‘mang do sap xep xong’);

For i := 1 to n do write (A[i]:5:3);

{chen M vao day}

Write(‘nhap gia tri M:’); readln(M);

If M >= A[i] then A[i+1] := M

Trang 20

Write(‘nhap mang X[‘,1,’]=’); readln(X[i]);

End;

{ tinh tong binh phuong cac so am trong day }

If A[i] < 0 then S:= S + sqr(X[i]);

Writeln(‘tong la:’,S:5);

{ Tim so lon nhat}

Max := 1;

if X[i] max then max := X[i];

writeln(‘so lon nhat la:’, max);

{ tim phan tu dau tien chia het cho 10}

Ok:= false;

I := 1;

While (not ok) and (I <=n) do

If X[i] mod 10 = 0 then ok := true

Bài 9:Cho dãy số thực bất kỳ, hãy kiểm tra xem dãy số đã sắp xếp chưa? Nếu sắp xếp rồi thì

theo chiều nào? Nếu chưa thì sắp xếp theo chiều tăng dần

Write('Ban hay nhap so thu ',i,':');Readln(a[i]);

if (i>1) and (k<>3) then

Trang 21

2:Writeln('Day duoc sap xep theo thu tu giam dan.');

3:begin

Writeln('Day chua duoc sap xep.');

Writeln('Sap xep lai theo thu tu tang dan:');

Write('Ban hay nhap so phan tu cua day:');Readln(n);

if n<=0 then Write('Ban phai nhap so>0.');

Trang 22

Bài 11.Viết chương trình nhập vào một ma trận vuông k hàng, k cột Sau đó sắp xếp lại sao

cho phần tử có trị tuyệt đối lớn nhất trong mỗi hàng sẽ nằm trên đường chéo chính

Write('Ban hay nhap so k(hang,cot:');Readln(n);

if n<=0 then Write('Ban phai nhap so>0.');

Bài 12 Viết chương trình nhập vào một dãy n số nguyên và in ra màn hình các thông tin sau

(Nếu không có số nào thoả mãn thì đưa ra thông báo không có):

- Số hạng âm lớn nhất của dãy và chỉ số của nó;

- Số hạng dương nhỏ nhất của dãy và chỉ số của nó;

- Số lượng số hạng dương liên tiếp nhiều nhất;

- Số lượng số hạng âm liên tiếp có tổng lớn nhất;

- Số lượng số hạng liên tiếp đan dấu nhiều nhất

Trang 23

Write('Ban hay nhap so phan tu cua day:');Readln(n);

if n<=0 then Writeln('Ban phai nhap so lon hon 0.');

Until n>0;

For i:=1 to n do

begin

Write('Ban hay nhap so thu ',i,':');Readln(a[i]);

if ((a[i]>a[kq[1]]) or (kq[1]=0)) and (a[i]<0) then kq[1]:=i;

if ((a[i]<a[kq[2]]) or (kq[2]=0)) and (a[i]>0) then kq[2]:=i;

if (a[i]>0) and (a[i-1]>0) and (i>1) then

if (a[i]<0) and (a[i-1]<0) and (i>1) then

begin if d2=0 then d2:=2 else d2:=d2+1;end

else

begin if kq[4]<d2 then kq[4]:=d2;d2:=0;end;

if (a[i]*a[i-1]<0) and (i>1) then

begin if d3=0 then d3:=2 else d3:=d3+1;end

if kq[1]<>0 then Writeln('So hang am lon nhat la so thu ',kq[1],':',a[kq[1]],'.')

else Writeln('Khong co so am nao trong day.');

if kq[2]<>0 then Writeln('So hang duong nho nhat la so thu ',kq[2],':',a[kq[2]],'.')

else Writeln('Khong co so duong nao trong day.');

if kq[3]<>0 then Writeln('So luong cac so duong lien tiep lon nhat la:',kq[3],'.')

else Writeln('Khong co cac so duong nao lien tiep trong day.');

if kq[4]<>0 then Writeln('So luong cac so am lien tiep lon nhat la:',kq[4],'.')

else Writeln('Khong co cac so am nao lien tiep trong day.');

if kq[5]<>0 then Writeln('So luong cac so dan dau lien tiep lon nhat la:',kq[5],'.')

else Writeln('Khong co cac so dan dau nhau nao lien tiep trong day.');

Trang 24

clrscr;

Repeat

Write('Ban hay nhap so n:');Readln(n);

if n<=0 then Writeln('Ban phai nhap so lon hon 0.');

Trang 26

hienthi(a,h,c);

writeln;

write('An Phim Bat ky de THOAT! ');

repeat until keypressed;

Trang 27

Write('Ban hay nhap so tu nhien m:');Readln(m);

if n*m<0 then Writeln('Ban phai nhap 2 so tu nhien.');

if m=0 then Writeln('m phai khac 0.');

a Cả hai số đều dương

b Cả hai số đều cùng dấu đồng thời số đứng trước có giá trị tuyệt đối lớn hơn sốđứng sau

c Cả hai số trái dấu nhau

if (a[i]>0) and (a[i-1]>0) then kq[1]:=kq[1]+1;

if (a[i]*a[i-1]>=0) and (abs(a[i-1])>abs(a[i])) then kq[2]:=kq[2]+1;

if a[i]*a[i-1]<0 then kq[3]:=kq[3]+1;

end;

end;

Writeln('Co ',kq[1],' cap phan tu ke nhau ma ca hai so deu duong.');

Writeln('Co ',kq[2],' cap phan tu ke nhau ma ca hai so cung dau va so dung truoc co gia tri tuyet doi lon hon so dung sau.');

Writeln('Co ',kq[3],' cap phan tu ke nhau ma ca hai so trai dau nhau.');

Trang 28

Readln;

End

Bài 17:Tam giác Pascal

Hãy in ra màn hình tam giác Pascal có n dòng và tính xem ở hàng thứ i có bao nhiêu số

if i>1 then a[i,k]:=a[i-1,k-1]+a[i,k-1];

Gotoxy(37-k*6 div 2+i*6,k+1);Write(a[i,k]);

end;

Trang 29

nhap('Ban hay nhap so i(hang i):',i);

if (i>n) or (i<1) then

Writeln('So i phai nam trong khoang tu 1->n(0<i<',n+1,')');

Bài 18 Bài toán số nguyên tố tương đương

Hai số tự nhiên được gọi là nguyên tố tương đương nếu chúng có chung các ước sốnguyên tố Ví dụ như các số 75 và 15 là nguyên tố tương đương vì cùng có các ước nguyên tố

Write('Ban hay nhap so thu nhat:');Readln(m);

Write('Ban hay nhap so thu hai:');Readln(n);

Trang 30

if m<n then begin k:=m;m:=n;n:=k;end;

Bài 19 Số siêu nguyên tố

Số siêu nguyên tố là số nguyên tố mà khi bó đi một số tuỳ ý các chữ số bên phải của nóthì phần còn lại vẫn tạo thành một số nguyên tố Ví dụ: 7333 là số siêu nguyên tố có 4 chữ số

Trang 31

Bài 20 Tìm điểm yên ngựa

Cho bảng số A kích thước m x n Phần tử Aij (nằm ở hàng i, cột j ) được gọi là phần tửyên ngựa nếu nó là phần tử nhỏ nhất trong hàng i đồng thời là phần tử lớn nhất trong cột j( hoặc là phần tử lớn nhất trong hàng i đồng thời là phần tử nhỏ nhất trong cột j ).Ví dụ trong

Trang 32

Hãy lập chương trình nhập từ bàn phím một bảng số kích thước m x n và in ra các phần

tử yên ngựa ( nếu có )

uses crt;

var i,k,m,n,s:integer;

a:array [1 100,1 100] of integer; h:array [1 100,1 2] of integer;

c:array [1 100,1 2] of integer; kq:array [1 2,1 100] of integer;

if a[k,i]<a[h[i,1],i] then h[i,1]:=k;

if a[k,i]>a[h[i,2],i] then h[i,2]:=k;

if a[i,k]<a[i,c[i,1]] then c[i,1]:=k;

if a[i,k]>a[i,c[i,2]] then c[i,2]:=k;

Trang 33

Write('Ban hay nhap so cot:');Readln(m);

- Trả lời dãy đó được sắp xếp theo chiều tăng hay giảm?

- Chèn một phần tử vào dãy đã sắp xếp đó sao cho thứ tự sắp xếp không thay đổi ( phảichèn trực tiếp, không được sắp xếp lại )

Nếu dãy chưa sắp xếp, hãy sắp xếp chúng theo chiều tăng dần

Write('Nhap so thu ',i,':');Readln(a[i]);

if (i>1) and (k=0) then

Trang 34

0,1:Writeln('Day duoc sap xep theo thu tu tang dan.');

2:Writeln('Day duoc sap xep theo thu tu giam dan.');

Trang 35

type matran=array[1 50,1 50] of integer;

var A:matran; n,i:integer;

procedure nhapmatran(var A:matran;n,m:integer);

Trang 36

write('Cac max tren cac duong cheo can tim: ');

for i:=1 to n do write(' ',timmax(i,1));

readln;

End.

Bài 23:Cho ma trận nguyên An x n và 2 số a, b Hãy xây dựng ma trận mới cấp An – 1 x n – 1

từ ma trận trên bằng cách loại bỏ dòng a và cột b ( không dùng ma trận trung gian )

write('Nhap hang can xoa: ');readln(x);

write(' Nhap cot can xoa: ');readln(y);

t:=1; k:=1;

for i:=1 to n do

begin

for j:=1 to n do

Trang 37

if (i<>x) and (j<>y) then begin

A[t,k]:=A[i,j];inc(k); end;

if i<>x then inc(t);

if (k>n-1) and (i<n) then k:=1;

Trang 38

For i:= 1 to 10 do a[i]:=random(99)+1;

For i:= 1 to 10 do Write('Phan tu thu ',i,' =',a[i];

For i:= 1 to 10 do

Begin

Us:=0;

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

If Us<0> then write('Phan tu thu ',i,'=',a[i],' la so nguyen to');

write('Nhap so luong phan tu: '); readln(so_luong);

{ nhap tung phan tu cua mang }

for i:=1 to so_luong do

begin

write('a[', i, '] = ');

readln(a[i]);

end;

{ tim vi tri cua cac phan tu max, min }

{ gia su phan tu nho nhat va lon nhat deu nam o vi tri 1 }

vt_min:=1;

vt_max:=1;

{ so sanh voi cac phan tu con lai trong mang }

for i:=2 to so_luong do

begin

if (a[i]>a[vt_max]) then

vt_max:=i;

if (a[i]<a[vt_min]) then

Trang 39

vt_min:=i;

end;

{ dua ket qua ra man hinh }

writeln('Phan tu nho nhat: ', a[vt_min], ' nam o vi tri: ', vt_min);

writeln('Phan tu lon nhat: ', a[vt_max], ' nam o vi tri: ', vt_max);

readln;

END

C BÀI TẬP VỀ XÂU

Bài 1 Đếm số kí tự trong chuổi

Var a: array['A' 'Z'] of Integer;

s: String; i: Integer; c: Char;

Begin

For c:= 'A' to 'Z' do

a[c]:= 0;

Write('Nhap chuoi S: '); Readln(s);

For i:=1 to Length(s) do

{ Loại bỏ những khoảng trắng đầu }

While (l <= r) and (s[l] = ' ') do Inc(l);

{ Loại bỏ những khoảng trắng cuối }

While (r > l) and (s[r] = ' ') do Dec(r);

For i := l to r do

Trang 40

If (s[i] <> ' ') or (p[Length(p)] <> ' ') then

Delete(s, 1, 1); { Xóa cầm canh đầu }

Delete(s, Length(s), 1); {Xóa cầm canh cuối }

Writeln('Chuoi da chuan hoa: ', s);

Trang 41

If (st[upp] <> st[upp] then

Write('Ban hay nhap mot xau ki tu:');Readln(s);

While Pos(' ',s)<>0 do Delete(s,Pos(' ',s),1);

Writeln('Xau da chuan hoa:',s);

Readln;

End.

Bài 5:Nhập vào một xâu ký tự bất kỳ Hãy chuẩn hoá xâu đó bằng cách chỉ giữ lại một dấu

trống (dấu cách) giữa các từ (từ được hiểu là một dãy các ký tự liên tiếp không chứa dấu cách)

Write('Ban hay nhap mot xau ki tu:');Readln(s);

While Pos(' ',s)<>0 do Delete(s,Pos(' ',s),1);

Writeln('Xau da chuan hoa:',s); Readln;

End.

Trang 43

const m= ; {tuy loai man hinh ma cho do dai vao}

while s[length(S)]=#32 do delete(s,length(s),1);

while pos(#32#32,s)>0 do delete(s,pos(#32#32,s),1);

Trang 44

Bài 10 : Cho 1 biểu thức ngoặc chưa hoàn chỉnh Hãy thực hiên các bước thêm các dâu ngoặc

"(" hoặc ")" để được 1 biểu thức ngoặc đúng sao cho số bước là ít nhất

Bài 11 Xâu nghịch đảo

Hãy sử dụng kỹ thuật đệ quy trong lập trình để tìm xâu nghịch đảo của một xâu nhị phân cho trước (xâu nhị phân là xâu chỉ gồm hai kí tự ‘0’ và ‘1’)

Ngày đăng: 05/02/2015, 09:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w