Giải một số bài toán Pascal

Màu nền
Font chữ
Font size
Chiều cao dòng

1 lập chương trình con tính giá trị của hàm f(a,k)=ak

sử dụng chương trình con tính tổng s= 1k+2k+...+ nk. với n,k nguyên dương nhập từ bàn phím

.........................................................

uses crt;

var

i,n,k:integer;

s:longint;

function mu(a,k:integer): longint;

var i:integer;

t: longint;

t:=1;

for i:=1 to k do

t:=t*a;

mu:=t;

end;

clrscr;

write('Nhap vao so n= '); readln(n);

write('Nhap vao so k= '); readln(k);

s:=0;

for i:=1 to n do

s:=s+mu(i,k);

write('Tong S= ',s);

readln;

end.

..........................................

1. lập chương trình con tính giai thừa của một số a bất kỳ (a nguyên dương). Sử dụng chương trình con tính s=1!+2!+...+ n! n nguyên duong nhập từ bàn phím

uses crt;

var

i,n:integer;

s:longint;

function gt(a:integer): longint;

var i:integer;

t: longint;

t:=1;

for i:=1 to a do

t:=t*i;

gt:=t;

end;

clrscr;

repeat

write('Nhap vao so n= '); readln(n);

until (n>0);

s:=0;

for i:=1 to n do

s:=s+gt(i);

write('Tong S= ',s);

readln;

end.

.............................................

3. viết chương trình nhập 2 ma trận A,B vuông cấp n các phần tử nguyên. Tính tổng 2 ma trận C=A+B.

uses crt;

type mt=array[1..100,1..100] of integer;

var a,b,c:mt;

n,m:integer;

procedure nhap(var x:mt; var hang,cot:integer);

var i,j:integer;

for i:=1 to hang do

for j:=1 to cot do

write('nhap vi tri thu ',i,',',j,'=');

readln(x[i,j]);

end;

end;

procedure xuat(var x:mt; hang,cot:integer);

var i,j:integer;

for i:=1 to hang do

for j:=1 to cot do

write(x[i,j],' ');

writeln;

end;

end;

procedure cong(var x,y,z:mt; hang,cot:integer);

var i,j:integer;

for i:=1 to hang do

for j:=1 to cot do

z[i,j]:=x[i,j]+y[i,j];

end;

clrscr;

write('nhap so hang n='); readln(n);

write('nhap so cot m='); readln(m);

writeln('nhap ma tran a:');

nhap(a,n,m);

clrscr;

writeln('nhap ma tran b;');

nhap(b,n,m);

writeln('ma tran a vua nhap la:');

xuat(a,n,m);

writeln('ma tran b vua nhap la:');

xuat(b,n,m);

cong(a,b,c,n,m);

writeln('tong 2 ma tran la;');

xuat(c,n,m);

readln;

end.

..................................

4 viết chương trình nhập 1 dãy số thực gồm n phần tử từ bàn phím. Tính trung bình cộng các số dương , âm.

uses crt;

var a:array[1..100] of integer;

i,n,b,d:integer;

ta,td:real;

clrscr;

write('nhap so cac pt cua mang n='); readln(n);

{nhap day}

writeln('nhap cac pt cua day:');

for i:=1 to n do

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

readln(a[i]);

end;

for i:=1 to n do

if a[i]>0 then

td:=td+a[i];

d:=d+1; {dem so duong}

end;

if a[i]<0 then

ta:=ta+a[i];

b:=b+1;

end;

end;

if d<>0 then

write('tbc cac so duong la:',td/d:6:2)

else

write('khong co so duong nao trong day!!');

writeln;

if b<>0 then

write('tbc cac so am la :',ta/b:6:2)

else

write('khong co so am nao trong day!!');

readln;

end.

..............................................

5. viết chương trình nhập 1 dãy số thực gồm n phần tử. sắp xếp lại theo chiều ko giảm dần các phần tử trong dãy.

program ds5;

uses crt;

var a:array[1..100] of integer;

i,n,j,tg:integer;

clrscr;

write('nhap n=');

readln(n);

for i:=1 to n do

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

readln(a[i]);

end;

writeln('day vua nhap la:');

for i:=1 to n do

write(a[i]:5);

writeln;

for i:=1 to n-1 do

for j:=i+1 to n do

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

tg:=a[i];

a[i]:=a[j];

a[j]:=tg;

end;

writeln('day sau khi sap xep:');

for i:=1 to n do

write(a[i]:5);

readln;

end.

........................................

6. Lập hàm f(k)=k! , g(x,k)=xk. Lập trình nhập x(thực), n(nguyên dương) rồi tính SIN(x) theo công thức khai triển macloranh: S=x-x3/3!+x5/5!-x7/7!+...+(-1)n+1*x2n-1/(2n-1)!

program ds6;

uses crt;

var i,n,j:integer;

ms:longint;

ts,s,x:real;

function gt(k:integer): longint;

var j:integer;

nhan:longint;

nhan:=1;

for j:=1 to k do

nhan:=nhan*j;

gt:=nhan;

end;

function mu(a:real; k:integer): real

; var j:integer;

nhan:real;

nhan:=1;

for j:=1 to k do

nhan:=nhan*a;

mu:=nhan;

end;

clrscr;

write('nhap x= ');

readln(x);

repeat

write('nhap n= ');

readln(n);

until n>0;

s:=x;

for i:=1 to n do

ts:=mu(-1,i)*mu(x,2*i+1);

ms:=gt(2*i+1);

s:=s+ts/ms;

end;

writeln('sin(x)=',s:3:2);

readln;

end.

............................................................

7. viết chương trình nhập 1 dãy số nguyên gồm n phần tử từ bàn phím. Tính trung bình cộng các số chẵn, lẻ.

(Câu này từ từ nhé:)

...........................................................

10. Lập hàm f(k)=k! , g(x,k)=xk. với x và sai số eps nhập từ bàn phím(x thực, 0<eps<1) rồi tính cos(x) theo công thức khai triển macloranh:

S=1-x2/2!+x4/4!-x6/6!+...+(-1)n*x2n/(2n)!+...

...........

uses crt;

var

exp, s,x:real;

n,i:integer;

function gt(k:integer):longint;

var i:integer;

t:longint;

t:=1;

for i:=1 to k do

t:=t*i;

gt:=t;

end;

function mu(a:real;n:integer):real;

var i:integer;

t:real;

t:=1;

for i:=1 to n do

t:=t*a;

mu:=t;

end;

clrscr;

write('Nhap so x can tinh cos: ');

readln(x);

write('Nhap so exp: ');

readln(exp);

n:=0;

repeat

n:=n+1;

until mu(x,2*n)/gt(2*n) <= exp ;

s:=1;

for i:=1 to n do

s:=s+mu(-1,i)*mu(x,2*i)/gt(2*i);

writeln('Cos(',x:3:2,')= ',s:3:2);

write('n= ',n);

readln;

end.

...................................

11. lập hàm g(x,k)=xk áp dụng tính tổng sau:

S=1+x/2+x2/3+..+xn/(n+1) với x(thực), n nguyên dương.

uses crt;

var

x,s:real;

i,n:integer;

function mu(a:real; k:integer): real;

var j:integer;

nhan:real;

nhan:=1;

for j:=1 to k do

nhan:=nhan*a;

mu:=nhan;

end;

clrscr;

write('Nhao vao so x= '); readln(x);

write('Nhap vao so n= '); readln(n);

s:=1;

for i:=1 to n do

s:=s+mu(x,i)/(n+1);

write('S= ',s:5:2);

readln;

end.

...........................................................

12. lập hàm g(x,k)=xk, , g(x,k)=xk, với x(thực), n nguyên dương

Tính s=1-x+ x2/2!- x3/3!+...+(-1)n* xn/n!

uses crt;

var

s,x:real;

i,n:integer;

function gt(k:integer):longint;

var i:integer;

t:longint;

t:=1;

for i:=1 to k do

t:=t*i;

gt:=t;

end;

function mu(a:real;n:integer):real;

var i:integer;

t:real;

t:=1;

for i:=1 to n do

t:=t*a;

mu:=t;

end;

clrscr;

write('Nhao vao so x= '); readln(x);

repeat

write('Nhao vao so n= '); readln(n); until n>0;

s:=1;

for i:=1 to n do

s:=s+mu(-1,i)*mu(x,i)/gt(i);

write('S= ',s:5:2);

readln;

end.

................................................

13. lập hàm max(x,y) trả về GTLN của 2 số x,y. viết chương trình nhập 4 số a,b,c,d sau đó tìm GTLN va GTNN trong 4 số vừa nhập.

uses crt;

var

a,b,c,d:integer;

function solon(x,y:integer):integer;

var max:integer;

max:=x;

if (max<y) then

max:=y;

solon:=max;

end;

clrscr;

write('nhap a='); readln(a);

write('nhap b='); readln(b);

write('nhap c='); readln(c);

write('nhap d='); readln(d);

write('so lon nhat la: ',solon(solon(a,b),solon(c,d)));

readln;

end.

..............................................

14. lập hàm g(x,k)=xk, , g(x,k)=xk tính s với vòng lặp while : S=1+x/1!+x2/2!+..+xn/n!

uses crt;

var

s,x:real;

i,n:integer;

function gt(k:integer):longint;

var i:integer;

t:longint;

t:=1;

for i:=1 to k do

t:=t*i;

gt:=t;

end;

function mu(a:real;n:integer):real;

var i:integer;

t:real;

t:=1;

for i:=1 to n do

t:=t*a;

mu:=t;

end;

clrscr;

write('Nhap vao so x= '); readln(x);

repeat

write('Nhap vao so n= '); readln(n);

until n>0;

i:=0;

s:=1;

while i<n do

i:=i+1;

s:=s+mu(x,i)/gt(i);

end;

write('S= ',s:5:2);

readln;

end.

............................................

15. cho ma trận vuông cấp n. tính tổng các ptử nằm trên đường chéo chính.

program ttduong_cheo_chinh;

uses crt;

var a:array[1..100,1..100] of integer;

i,j,n,s:integer;

clrscr;

write('nhap so hang va cot n='); readln(n);

{nhap ma tran}

for i:=1 to n do

for j:=1 to n do

clrscr;

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

readln(a[i,j]);

end;

clrscr;

writeln('ma tran vuong vua nhap la:');

{xuat ma tran}

for i:=1 to n do

for j:=1 to n do

write(a[i,j]:5);

writeln;

end;

{tinh tong cac so tren duong cheo chinh}

s:=0;

for i:=1 to n do

for j:=1 to n do

if i=j then

s:=s+a[i,j];

write('tong cac so tren duong cheo chinh s=',s);

readln;

end.

.....................................

17. viết chương trình nhập 1 dãy số thực gồm n phần tử , nhập k(0<k<=n) chèn thêm 2 số x,y vào vị trí k,k+1 (x,y thực).

uses crt;

var a:array[1..100] of integer;

i,n,x,y,k:integer;

clrscr;

write('nhap n=');

readln(n);

for i:=1 to n do

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

readln(a[i]);

end;

writeln('day vua nhap la:');

for i:=1 to n do

write(a[i]:5);

writeln;

write('nhap k='); readln(k);

write('nhap x,y='); readln(x,y);

for i:=n downto k do

a[i+2]:=a[i];

a[k]:=x;

a[k+1]:=y;

writeln('day sau khi chen la:');

for i:=1 to n+2 do

write(a[i]:5);

readln;

end.

.............................

18. viết chương trình nhập 1 dãy số nguyên gồm n phần tử, nhập thêm số x, ktra xem số x vừa nhập có trong dãy ko. Nếu ko có thì đưa ra thong báo số vừa nhập ko có trong dãy..

uses crt;

var

dayso : array[1..100] of integer;

x:integer;

i,n,j:integer;

clrscr;

j:=0;

write('Nhap vao so phan tu cua day so ');

readln(n);

clrscr;

for i:=1 to n do

write('so thu ',i,' = '); read(dayso[i]);

clrscr;

end;

{in ra day vua nhap}

writeln('day vua nhap la:');

for i:=1 to n do

write(dayso[i],' ');

{nhap phan tu x}

writeln; {xuong dong}

write('nhap so x can dem trong day ');

readln(x);

for i:=1 to n do

if dayso[i]=x then

j:=j+1; { dem so lan xuat hien so x}

if j=0 then write('khong co so ',x,' trong day') else

write('so ',x,' xuat hien ',j,' lan tai vi tri: '); {thong bao so lan xuat hien}

for i:=1 to n do

if dayso[i]=x then

write(i,' '); {vi tri xuat hien}

end;

readln;

end.

................................................

26. lập chương trình đọc x(dương), n nguyên dương(số lượng dấu căn) tính s:

S=sqrt(x+sqrt(x+sqrt(x+sqrt(x+...+sqrt(x))))).

uses crt;

var x,n,i:integer;

s:real;

clrscr;

write('nhap x='); readln(x);

write('nhap n='); readln(n);

s:=0;

for i:=1 to n do

s:=sqrt(x+s);

writeln('tong s=',s:5:2);

readln;

end.

......................................................

33. nhập 1 dãy số n pt nguyên đã sắp xếp theo chiều tăng dần. nhập số x, CHÈN X VÀO ĐÚNG VỊ TRÍ.

uses crt;

var

a: array[1..100] of integer;

n,i,k,tg,j,x:integer;

clrscr;

repeat

write('Nhap vao so phan tu cua day: ');

readln(n);

until (n>0)and(n<=100);

for i:=1 to n do

write('so thu ',i,' = ');

readln(a[i]);

end;

write('day vua nhap la: ');

for i:=1 to n do

write(a[i],' ');

writeln;

for i:=1 to n do

for j:=i+1 to n do

if a[i]>a[j] then

tg:=a[i];

a[i]:=a[j];

a[j]:=tg;

end;

write('day sau khi xap xep la: ');

for i:=1 to n do

write(a[i],' ');

writeln;

write('Nhap so x can chen x= '); readln(x);

k:=1;

for i:=1 to n do

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

{chen}

for i:=n downto k do

a[i+1]:=a[i];

a[k]:=x;

n:=n+1;

write('day sau khi chen la: ');

for i:=1 to n do

write(a[i],' ');

readln;

end.

.......................................................

uses crt;

var

s,d:string;

i,l,j,m,n:integer;

clrscr;

writeln;

write('nhap vao chuoi x: '); readln(s);

d:=s;

l:=length(s);

i:=l+1;

repeat

i:=i-1;

for j:=i-1 downto 1 do

if d[i]=d[j] then

delete(d,j,1);

i:=i-1;

end;

until i=1;

writeln('Chuoi vua nhap la: ',s);

m:=0;

{ tim so lan xuat hien nhieu nhat}

for i:=1 to length(d) do

n:=0;

for j:=1 to l do

if d[i] = s[j] then

n:=n+1;

if n>m then m:=n;

end;

{doc ki tu xuat hien nhieu nhat}

write('ky tu xuat hien nhieu nhat la: ');

for i:=1 to length(d) do

n:=0;

for j:=1 to l do

if d[i]=s[j] then

n:=n+1;

if (n=m)and (d[i] =' ') then write('dau cach,') else

if (n=m)and (d[i]<>' ') then write(d[i],',');

end;

writeln;

write('xuat hien nhieu nhat ',m,'lan');

readln;

end.

......................................

39. nhập một xâu có từ'ha noi' trong sâu hãy chuyển thành 'HA NOI'..

uses crt;

var

s:string;

i,l,k:integer;

clrscr;

write('Nhap chuoi s: ');

readln(s);

l:=length(s);

k:=0;

for i:=1 to l do

if (copy(s,i,5)='hanoi')or(copy(s,i,6)='ha noi') then k:=k+1;

if k=0 then write('khong co chu hanoi trong xau') else

for i:=1 to l do

if copy(s,i,5)='hanoi' then

s[i]:=upcase(s[i]);

s[i+1]:=upcase(s[i+1]);

s[i+2]:=upcase(s[i+2]);

s[i+3]:=upcase(s[i+3]);

s[i+4]:=upcase(s[i+4]);

end;

if copy(s,i,6)='ha noi' then

s[i]:=upcase(s[i]);

s[i+1]:=upcase(s[i+1]);

s[i+2]:=upcase(s[i+2]);

s[i+3]:=upcase(s[i+3]);

s[i+4]:=upcase(s[i+4]);

s[i+5]:=upcase(s[i+5]);

end;

end;

write('Chuoi sau khi doi la: ',s);

end;

readln;

end.

...............................................................

22. viết chương trình nhập ma trận A (n hàng, m cột) các pt là thực. nhập k, tìm GTNN của cột k

uses crt;

type

mt=array[1..100,1..100] of integer;

var a:mt;

i,j,k,n,m,min:integer;

procedure nhap(var x:mt; var y,z:integer);

var i,j:integer;

for i:=1 to m do

for j:=1 to n do

write('nhap vi tri hang:',i,' cot:',j,'=');

readln(x[i,j]);

end;

end;

procedure xuat(var x:mt; var y,z:integer);

var i,j:integer;

for i:=1 to m do

for j:=1 to n do

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

writeln;

end;

end;

clrscr;

write('nhap so hang m='); readln(m);

write('nhap so cot n='); readln(n);

nhap(a,m,n); writeln;

xuat(a,m,n); writeln;

repeat

write('nhap {1<=k<=m} k=');

readln(k);

until

(1<=k) and (k<=m);

min:=a[k,1];

for j:=2 to n do

if (a[k,j]<min) then

min:=a[k,j];

writeln('gt nn hang ',k,' la:',min);

readln;

end.

..........................

31. nhập một dãy số tách dãy vừa nhập thành 2 dãy âm và dương riêng biệt

uses crt;

type chuoi=array[1..100] of integer;

var

s,s1,s2: chuoi;

i,j,k,n:integer;

clrscr;

write('Nhap vao so phan tu cua day: '); readln(n);

for i:=1 to n do

write('Nhap vao so thu',i,' = ');

readln(s[i]);

end;

write('Day vua nhap la: ');

for i:=1 to n do

write(s[i]:3);

{ tim cac so chan va dua vao s1}

j:=0;

for i:=1 to n do

if s[i] mod 2 = 0 then

j:=j+1;

s1[j]:=s[i];

end;

{tim cac so le va dua vao s2 }

k:=0;

for i:=1 to n do

if s[i] mod 2 <> 0 then

k:=k+1;

s2[k]:=s[i];

end;

writeln;

write('Day cac so chan: ');

for i:=1 to j do

write(s1[i]:3);

writeln;

write('Day cac so le: ');

for i:=1 to k do

write(s2[i]:3);

readln;

end.

..............................................

32. nhập 1 dãy số. xóa tất cả các số có giá trị =0 trong dãy

uses crt;

var a:array[1..100] of integer;

i,j,n:integer;

clrscr;

write('nhap n=');

readln(n);

for i:=1 to n do

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

readln(a[i]);

end;

writeln('day nhap la:');

for i:=1 to n do

write(a[i]:5);

writeln;

for i:=n downto 1 do

if (a[i]<0) and (a[i] mod 2<> 0) then

for j:=i to n do

a[j]:=a[j+1];

n:=n-1;

end;

end;

for i:=1 to n do

write(a[i]:5);

readln;

end.

Bạn đang đọc truyện trên: Truyen2U.Pro