You are on page 1of 8

MT S BI TP LP TRNH PASCAL

Bi 1: Vit CT nhp vo 1 s N nguyn dng, in ra mn hnh cc s chn t 0 n N, mi s chim 4 v tr v 15 s trn 1 dng. Li gii: Var n,i,dem:integer; BEGIN write('Nhap n: ');readln(n); dem:=0; for i:=1 to n do BEGIN if i mod 2=0 then BEGIN write(i:4); dem:=dem+1; END; if dem=15 then BEGIN dem:=0; writeln;{in duoc 15 so thi xuong dong}; END; END; readln END. Bi 2: Nhp vo 2 s nguyn dng a v b. + Tnh v in ra mn hnh tng, hiu, tch, thng v UCLN ca 2 s + Tnh tng cc c s dng ca |a+b| Li gii: Var a,b,tg,i,tong:integer; function tinh(x,y:integer):integer; BEGIN tg:= x mod y; if tg=0 then tinh:=y else tinh:=tinh(y,tg); END; BEGIN write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); tong:=1; for i:=2 to abs(a+b) do if (abs(a+b) mod i =0) then tong:=tong+i; writeln('Tong 2 so la: ',a+b); writeln('Hieu 2 so la: ',a-b); writeln('Tich 2 so la: ',a*b); writeln('Thuong 2 so la: ',a/b:0:4); writeln('UCLN 2 so la: ',tinh(a,b)); writeln('Tong cac uoc cua ',a+b,' la: ',tong); readln END. Bi 3: Nhp s c 3 ch s. Tnh tng cc ch s ca n: Li gii: Var a:integer;tong:byte; BEGIN write('Nhap 1 so co 3 chu so: '); readln(a); tong:= a mod 10; a:=a div 10; tong:=tong+a mod 10; a:=a div 10; tong:=tong+a mod 10; writeln('Tong cac chu so do la: ',tong); readln END.

Bi 4: Lp chng trnh nhp vo di cc cnh tam gic ri hin : + Tnh chu vi, din tch, 3 ng cao ca tam gic. + Kim tra xem tam gic c l tam gic cn hoc vung khng? Li gii: Var a,b,c,cv,dt,p:real; BEGIN write('Nhap do dai canh a: ');readln(a); write('Nhap do dai canh b: ');readln(b); write('Nhap do dai canh c: ');readln(c); cv:=a+b+c; p:=(a+b+c)/2; dt:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln('Chu vi tam giac la: ',cv:0:4); writeln('Dien tich tam giac la: ',dt:0:4); writeln('Duong cao canh thu 1 la: ',dt*2/a:0:4); writeln('Duong cao canh thu 2 la: ',dt*2/b:0:4); writeln('Duong cao canh thu 3 la: ',dt*2/c:0:4); if (a=b) or (a=c) or(b=c) then writeln('Tam giac can'); if (a*a=b*b+c*c) or (b*b=a*a+c*c) or (c*c=b*b+a*a) then writeln('Tam giac vuong'); readln END. Bi 5: Lp trnh gii phng trnh bc 2: Li gii: Var a,b,c,x1,x2,d:real; BEGIN write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); write('Nhap c: ');readln(c); d:=b*b-4*a*c; if d>0 then BEGIN x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); writeln('2 nghiem PT la: ',x1:0:2,' va: ',x2:0:2); END; else if d=0 then BEGIN x1:=(-b)/(2*a); writeln('PT co nghiem kep la: ',x1:0:2); END; else writeln('PT vo nghiem'); readln END. Bi 6: Nhp vo 1 s nguyn gm 4 ch s: kim tra tnh chn l, kim tra xem c phi l s nguyn t khng Li gii: Var n,i:integer;ok:boolean; BEGIN write('Nhap n: ');readln(n); if n mod 2=0 then writeln('So ',n,' la so chan') else writeln('So ',n,' la so le'); if n<2 then write('So ',n,' khong la so nguyen to') else BEGIN ok:=true; for i:=2 to trunc(sqrt(n)) do if n mod i=0 then ok:=false; if ok then writeln('So ',n,' la so nguyen to') else writeln('So ',n,' khong la so nguyen to'); END; readln END.

Bi 7: Nhp n,a hy tnh cn bc n ca a: Li gii: Var n:integer;a,s:real; BEGIN write('Nhap a: ');readln(a); repeat write('Nhap n: ');readln(n); until (n>0); if (n mod 2=0) and (a>=0) then BEGIN s:=exp(1/n*ln(a)); writeln('Ket qua la: ',s:0:4); END; else if (n mod 2<>0) then BEGIN s:=exp(1/n*ln(abs(a))); writeln('Ket qua la: ',s:0:4); END; else writeln('Khong xac dinh'); readln END. Bi 8: Nhp 2 s nguyn, hon i v tr hai s khi a> b Li gii: Var a,b,tg:integer; BEGIN write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); if a>b then BEGIN tg:=a; a:=b; b:=tg; END; writeln(a,' ',b); readln END. Bi 9: S nguyn t l s nguyn dng chia ht cho 1 v chnh n, ngoi tr 0 v 1. Lp trnh nhp vo 1 s nguyn dng n v kim tra xem n c phi l s nguyn t khng? Li gii: Var n,i:integer; BEGIN write('Nhap so nguyen duong n: '); readln(n); if n<2 then writeln(n,' khong la so nguyen to') else BEGIN i:=2; while ((i<=trunc(sqrt(n))) and (n mod i<>0)) do i:=i+1; if i>trunc(sqrt(n)) then writeln(n,' la so nguyen to') else writeln(n,' khong la so nguyen to'); END; readln END.

Bi 10: Nhp s nguyn dng n in ra tng cc s nguyn dng l bi ca 3 hoc 5 t 1 n n Li gii: Var n,tong,i:integer; BEGIN write('Nhap so nguyen duong n: ');readln(n); tong:=0; for i:=1 to n do if (i mod 3=0) or (i mod 5=0) then tong:=tong+i; writeln('Tong cac so chia het cho 3 hoac 5 tu 0--> ',n,' la: ',tong); readln END. Bi 10: Nhp n in ra tng cc ch s ca n: Li gii: Var n,m:longint;tong:byte; BEGIN write('Nhap n: ');readln(n); tong:=0;m:=n; while m>0 do BEGIN tong:=tong+m mod 10; m:=m div 10; END; writeln('Tong cac chu so cua ',n,' la: ',tong); readln END. Bi 11: S hon ho l s m c tng cc c ca n khng k n bng chnh n. VD: s 28 c cc c l: 1 2 4 7 14; s 6 c cc c l: 1 2 3. Lp trnh nhp vo 1 s nguyn dng n v kim tra xem s c l s hon ho khng? Li gii: Var n:longint;tong,i:integer; BEGIN write('Nhap so nguyen duong n: ');readln(n); tong:=0; for i:=1 to n div 2 do if n mod i=0 then tong:=tong+i; if tong=n then writeln(n,' la so hoan hao') else writeln(n,'khong la so hoan hao'); readln END. Bi 12: Nhp 1 s nguyn dng n <1000 cho bit c bao nhiu s nguyn t t 0 n n Li gii: Var n,i,j,dem:integer; BEGIN write('Nhap so nguyen duong n: ');readln(n); dem:=0; for i:=2 to n do BEGIN j:=2; while ((j<=trunc(sqrt(i))) and (i mod j<>0)) do j:=j+1; if j>trunc(sqrt(i)) then dem:=dem+1; END; writeln('So luong so nguyen to trong khoang tu 0-->',n,' la: ',dem); readln END. Bi 13: S chnh phng l s c cn bc 2 l 1 s nguyn. VD: s 9 l s chnh phng v cn bc 2 ca 9 bng 3. Lp trnh nhp 1 s nguyn dng n t bn phm kim tra xem s c l s chnh phng khng? Li gii: Var n:longint; BEGIN write('Nhap so nguyen duong n: ');readln(n); if sqrt(n)=trunc(sqrt(n)) then writeln(n,' la so chinh phuong') else writeln(n,' khong la so chinh phuong'); readln END.

Bi 14: Nhp vo 1 xu k t v cho bit xu va nhp vo c bao nhiu nguyn m v bao nhiu k t s. Li gii: Var s:string;dem1,dem2,i:byte; BEGIN write('Nhap 1 xau: ');readln(s); dem1:=0;dem2:=0; for i:=1 to length(s) do BEGIN if s[i] in ['a','e','i','o','u','y','A','E','I','O','U','Y'] then dem1:=dem1+1; if s[i] in ['0','1','2','3','4','5','6','7','8','9'] then dem2:=dem2+1; END; writeln('Trong xau ',s,' co ',dem1,' nguyen am va co ',dem2,' ki tu so'); readln END. Bi 15: Lp trnh gii bi ton c sau: Va g va ch, b li cho trn, ba mi su con, mt trm chn chn Li gii: Var cho:byte; BEGIN for cho:=1 to 24 do if 4*cho+(36-cho)*2=100 then writeln('So ga la: ',36-cho,' so cho la: ',cho); readln END. Bi 16: Nhp 1 s n kim tra tnh chn l, xem s c chia ht cho 3 khng,tng cc ch s ca n c l bi ca 6 khng Li gii: Var n,m,tong:integer; BEGIN write('Nhap n: ');readln(n); if n mod 3=0 then writeln(n,' chia het cho 3') else writeln(n,' khong chia het cho 3'); m:=n;tong:=0; while m>0 do BEGIN tong:=tong+m mod 10; m:=m div 10; END; if tong mod 6=0 then writeln('Tong cac chu so cua ',n,' la ',tong,' chia het cho 6') else writeln('Tong cac chu so cua ',n,' la ',tong,' khong chia het cho 6'); readln END. Bi 17: Nhp s nguyn dng n lp chng trnh tnh: S1= 1+3+5+7++(2*n+1) Li gii: Var i,n,s1:integer; BEGIN write('Nhap n: ');readln(n); s1:=0; for i:=1 to 2*n+1 do if i mod 2<>0 then s1:=s1+i; writeln('Tong S1 la: ',s1); readln END. Bi 18: Tnh S2=13+23+33++n3 ( trong n nhp t bn phm) Li gii: Var i,n:integer;s2:longint; BEGIN write('Nhap so n: ');readln(n); s2:=0; for i:=1 to n do s2:=s2+i*i*i; writeln('Tong S2 la: ',s2); readln END.

Bi 19: Nhp 2 s n,m sao cho m<n lp trnh tnh S3= Cnm = (n(n-1)(n-m+1))/m! (T hp chp m ca n) Li gii: Var i,m,n,tu,mau:integer; s3:longint; BEGIN repeat write('Nhap n: ');readln(n); until n>0; repeat write('Nhap m: ');readln(m); until (m<=n) and (m>0); tu:=1;mau:=1; for i:=n-m+1 to n do tu:=tu*i; for i:=2 to m do mau:=mau*i; s3:= tu div mau; writeln('to hop chap ',m,' cua ',n,' la: ',s3); readln END. Bi 20: Nhp s thc e (e<0.01). Tnh tng S4=1+1/22+1/32++1/n2 + (chng trnh kt thc khi 1/n2<e) Li gii: Var s4,e:real;i:integer; BEGIN repeat write(Nhap so thuc duong e<0.01: ); readln(e); until (e>0) and (e<0.01); s4:=0;i:=1; while 1/(i*i)>e do BEGIN s4:=s4+1/(i*i); i:=i+1; END; writeln(Ket qua la: ,s4:0:4); readln END. Bi 21: Lp chng trnh nhp vo 4 dy s a1,..,an;b1,bn;c1,,cn;d1,,dn. Sau in ra kt qu n dng 6 gi tr theo mu sau: Ai bi ci di max(ai,bi,ci,di) min(ai,bi,ci,di) Li gii: Var a,b,c,d:array[1..1000]of integer; n,max,min,i:integer; BEGIN write('Nhap n: ');readln(n); for i:=1 to n do BEGIN write('Nhap A[',i,']: '); readln(a[i]); write('Nhap B[',i,']: '); readln(b[i]); write('Nhap C[',i,']: '); readln(c[i]); write('Nhap D[',i,']: '); readln(d[i]); END; for i:=1 to n do BEGIN write(a[i],' ',b[i],' ',c[i],' ',d[i],' '); max:=a[i];min:=a[i]; if b[i]>max then max:=b[i]; if c[i]>max then max:=c[i]; if d[i]>max then max:=d[i]; write(max,' '); if b[i]<min then min:=b[i]; if c[i]<min then min:=c[i]; if d[i]<min then min:=d[i]; writeln(min); END; readln END.

Bi 22: Nhp s nguyn dng n v dy s a1,a2,,an. Hy sp xp dy tng dn v in dy c sp xp ra mn hnh. Li gii: Var n,i,j,tg:integer; a:array[1..1000]of integer; BEGIN repeat write('Nhap so nguyen duong n: '); readln(n); until (n>0) and (n<1000); for i:=1 to n do BEGIN write('Nhap A[',i,']: ');readln(a[i]); END; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then BEGIN tg:=a[i]; a[i]:=a[j]; a[j]:=tg; END; writeln('Day sau khi duoc sap xep la: '); for i:=1 to n do write(a[i]:4); readln END. Bi 23: Nhp s thc dng e(e<0.01) ri tnh tng S5= 1- 1/3+1/5-1/7++(-1)n/(2*n+1) (dng khi 1/(2*n+1) <e) Li gii: Var s5,e:real;i:integer; BEGIN repeat write('Nhap so thuc duong e<0.01: '); readln(e); until (e>0) and (e<0.01); s5:=1;i:=1; while 1/(2*i+1)>e do BEGIN if i mod 2=0 then s5:=s5+1/(2*i+1) else s5:=s5-1/(2*i+1); i:=i+1; END; writeln('ket qua la: ',s5:0:4); readln END. Bi 24: Cho cc s t nhin n ( khai bo longint). cho bit: n c bao nhiu ch s, tng cc ch s ca n v s o ngc ca n. VD: s 123 c 3 ch s, tng cc ch s bng 6, s o ngc l 321 Li gii: Var m,n:longint;tong,dem:byte; BEGIN write('Nhap so n: ');readln(n); m:=n;dem:=0;tong:=0; while m>0 do BEGIN tong:=tong+ m mod 10; dem:=dem+1; m:=m div 10; END; writeln(n,' co ',dem,' chu so va tong cac chu so cua ',n,' la: ',tong); write('So dao nguoc cua ',n,' la: '); m:=n; while m>0 do BEGIN write(m mod 10); m:=m div 10; END; readln END.

Bi 25: Nhp s nguyn dng n v dy s a1,a2,,an hy in ra max, min dy Li gii: Var n,i,max,min:integer; a:array[1..1000] of integer; BEGIN repeat write('Nhap so nguyen duong n: '); readln(n); until (n>0) and (n<=1000); for i:=1 to n do BEGIN write('Nhap A[',i,']: '); readln(a[i]); END; max:=a[1];min:=a[1]; for i:=2 to n do BEGIN if a[i]>max then max:=a[i]; if a[i]<min then min:=a[i]; END; writeln('Max cua day so la: ',max); writeln('Min cua day so la: ',min); readln END.

You might also like