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

Bài tập pascal cơ bản

15 804 5
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

Định dạng
Số trang 15
Dung lượng 107 KB

Nội dung

Trang 1

Bài tập pascal cơ bản dành cho hs-svthiết kế bởi: Vũ Đức Quang

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; readlnEND.Bài 2:

Nhập vào 2 số nguyên dương a và b.

+ Tính và in ra màn hình tổng, hiệu, tích, thương và UCLN của 2 số đó+ Tính tổng các ước số dương của |a+b|

Lời giải:uses crt;

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 clrscr;

Trang 2

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.Bài 3:

Lập chương trình nhập vào độ dài các cạnh của tam giác rồi thực hiện : + Tính chu vi, diện tích, 3 đường cao của tam giác.

+ Kiểm tra xem tam giác đó có là tam giác cân hoặc vuông không?Lời giải:

uses crt;

var a,b,c,cv,dt,p:real;BEGIN

clrscr;

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;

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');

readlnEND.Bài 4:

Lập trình giải phương trình bậc 2:Lời giải:

uses crt;

Trang 3

var a,b,c,x1,x2,d:real;BEGIN

clrscr;

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

Nhập vào 1 số nguyên gồm 4 chữ số -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ố hoàn hảo khôngLời giải:

uses crt;

var n,i:integer;ok:boolean;BEGIN

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');

Trang 4

end; readlnEND.

Có thể thay câu lệnh lặp “for i:=2 to trunc(sqrt(n)) do” bằng câu lệnh while do khi đó ta không cần biến ok nữa.

clrscr;

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

write('Nhap n: ');readln(n); until (n>0);

if (n mod 2=0) and (a>=0) then begin

else writeln('Khong xac dinh'); readln

END.Bài 7:

Nhập số có 3 chữ số tính tổng các chữ số của nó:Lời giải:

uses crt;

var a:integer;tong:byte;BEGIN

tong:=tong+a mod 10;

Trang 5

writeln('Tong cac chu so do la: ',tong); readln

END.Bài 8:

Nhập 2 số nguyên, hoán vị 2 số đó khi a>bLời giải:

uses crt;

var a,b,tg:integer;BEGIN

clrscr;

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.Bài 9:

Nhập số nguyên dương n in ra tổng các số nguyên dương là bội của 3 hoặc 5 từ 1nLời giải:

uses crt;

var n,tong,i:integer;BEGIN

Nhập n in ra tổng các chữ số của n:Lời giải:

uses crt;

var n,m:longint;tong:byte;BEGIN

Trang 6

clrscr;

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.Bài 11:

Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó, ngoại trừ 0 và 1.Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem nó có phải là số nguyên tố không?

Lời giải:uses crt;

var n,i:integer;BEGIN

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; readlnEND.Bài 12:

Số hoàn hảo là số mà có tổng các ước của nó không kể nó bằng chính nó.VD: số 28 có các ước là: 1 2 4 7 14

Trang 7

clrscr;

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.Bài 13:

Số chính phương là số có căn bậc 2 là 1 số nguyên.VD số 9 là số chính phương vì căn bậc 2 của 9 bằng 3.

Lập trình nhập 1 số nguyên dương n từ bàn phím kiểm tra xem số đó có là số chính phương không?

Lời giải:uses crt;var n:longint;BEGIN clrscr;

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');

readlnEND.Bài 14:

Nhập vào 1 xâu kí tự và cho biết xâu vừa nhập vào có bao nhiêu nguyên âm và bao nhiêu kí tự số.

Lời giải:uses crt;

var s:string;dem1,dem2,i:byte;BEGIN

Trang 8

Bài 15:

Lập trình giải bài toán cố sau

Vừa gà vừa chóBó lại cho tròn Ba mưoi sáu conMột trăm chân chẵnLời giải:

uses crt;var cho:byte;BEGIN clrscr;

Nhập 1 số nguyên dương n <1000 cho biết có bao nhiêu số nguyên tố từ 0nLời giải:

uses crt;

var n,i,j,dem:integer;BEGIN

clrscr;

write('Nhap so nguyen duong n: ');readln(n); dem:=0;

for i:=2 to n do begin

Nhập 1 số n kiểm tra tính chẵn lẻ, xem số đó có chia hết cho 3 không,tổng các chữ số củanó có là bội của 6 không

Lời giải:uses crt;

var n,m,tong:integer;BEGIN

Trang 9

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');

readlnEND.Bài 18:

Tính tổng n số phibonaci: F0=F1=1;Fi=Fi-1+Fi-2 (với mọi i>1).Lời giải

uses crt;

var f,ft,ftn,tong:longint;n,i:integer;BEGIN

clrscr;

write('Nhap n: ');readln(n); ft:=1;ftn:=1;tong:=2; for i:=2 to n do begin

f:=ft+ftn; tong:=tong+f; ftn:=ft;

ft:=f; end;

writeln('Tong n so hang dau day fibolaci la: ',tong); readln

Có thể biến đổi đề bài của bài toán đi như: tính số phibonaci thứ n hoặc nhập vào 1 số kiểm tra xem số đó có phải là số phibonaci hay không…Các bài đó làm tương tự.Bài 19:

Nhập số nguyên dương n lập chương trình tính: S1= 1+3+5+7+…+(2*n+1)

Lời giải:uses crt;

var i,n,s1:integer;BEGIN

Trang 10

clrscr;

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.Bài 20:

Tính S2=13+23+33+…+n3 trong đó n nhập từ bàn phím.Lời giải:

uses crt;

var i,n:integer;s2:longint;BEGIN

clrscr;

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.Bài 21:

Nhập 2 số n,m sao cho m<n lập trình tính S3= Cnm = (n(n-1)…(n-m+1))/m! (Tổ hợp chập m của n)

Lời giải:uses crt;

var i,m,n,tu,mau:integer; s3:longint;

BEGIN clrscr; 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;

Trang 11

s3:= tu div mau;

writeln('to hop chap ',m,' cua ',n,' la: ',s3); readln

END.Bài 22:

Nhập số thực dương e(e<0.01) rồi tính tổng

S4=1+1/22+1/32+…+1/n2 +… (chương trình kết thúc khi 1/n2<e)Lời giải:

uses crt;

var s4,e:real;i:integer;BEGIN

clrscr; 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.Bài 23:

Nhập số thực dương e(e<0.01) rồi tính tổng

S5= 1- 1/3+1/5-1/7+…+(-1)n/(2*n+1) (dừng khi 1/(2*n+1) <e)Lời giải:

uses crt;

var s5,e:real;i:integer;BEGIN

clrscr; 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;

Trang 12

end;

writeln('ket qua la: ',s5:0:4); readln

END.Bài 24:

Lập chương trình để nhập vào 4 dãy số a1, ,an;b1,…bn;c1,…,cn;d1,…,dn.Sau đó in ra kết quả n dòng 6 giá trị theo mẫu sau:

Ai bi ci di max(ai,bi,ci,di) min(ai,bi,ci,di)Lời giải:

uses crt;

var a,b,c,d:array[1 1000]of integer; n,max,min,i:integer;

BEGIN clrscr;

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; readlnEND.Bài 25:

Trang 13

Cho các số tự nhiên n (khai bảo longint), và cho biết: n có bao nhiêu chữ số, tổng các chữsố của n và số đảo ngược của n.

VD: số 123 có 3 chữ số, tổng các chữ số bằng 6, số đảo ngược là 321Lời giải:

uses crt;

var m,n:longint;tong,dem:byte;BEGIN

clrscr;

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;

readlnEND.Bài 26:

Nhập số nguyên dương n và dãy số a1,a2,…,an hãy in ra max, min dãy đóLời giải:

uses crt;

var n,i,max,min:integer; a:array[1 1000] of integer;BEGIN

clrscr; 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]);

Trang 14

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.Bài 27:

Nhập số nguyên dương n và dãy số a1,a2,…,an Hãy sắp xếp dãy đó tăng dần và in dãy đã được sắp xếp ra màn hình.

Lời giải:uses crt;

var n,i,j,tg:integer;

a:array[1 1000]of integer;BEGIN

clrscr; 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

Tương tự với bài sắp xếp với dãy giảm dần.

Trang 15

Bài 28:

Cho 2 dãy số a1, ,an; b1, ,bm đã được sắp xếp theo thứ tự tăng dần Lập trình để từ 2 dãy trên xây dựng 1 dãy mới cũng theo thứ tự tăng dần.

Lời giải:Bài 29:

Nhập số nguyên dương n và dãy số a1,a2,…,an.Hãy tính và in ra màn hình tổng các số lẻ trong dãy

9 10 10 11Lời giải:

Ngày đăng: 23/10/2013, 20:15

TỪ KHÓA LIÊN QUAN

w