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

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

Đ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

Bài tập pascal bản dành cho hs-sv thiết kế bởi: Vũ Đức Quang Bài 1: Viết chương trình nhập vào 1 số N nguyên dương và in ra màn hình các sỗ chẵn từ 0N mỗi số chiếm 4 vị trí và 15 số trên 1 dòng. Lời giải: uses crt; {khai bao' thu vien crt} var n,i,dem:integer; BEGIN clrscr;{ cau lenh xoa man hinh}; 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. 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; 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 đó 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; 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. Bài 4: Lập trình giải phương trình bậc 2: Lời giải: uses crt; 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 x1:=(-b)/(2*a); writeln('PT co nghiem kep la: ',x1:0:2); end else writeln('PT vo nghiem'); readln END. B à i 5: 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 phải là số nguyên tố không -kiểm tra xem phải là số hoàn hảo không Lời giải: uses crt; var n,i:integer;ok:boolean; BEGIN clrscr; 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. 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. Bài 6: Nhập n,a hãy tính căn bậc n của a: Lời giải: uses crt; var n:integer;a,s:real; BEGIN 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 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. Bài 7: Nhập số 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 clrscr; 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. Bài 8: Nhập 2 số nguyên, hoán vị 2 số đó khi a>b Lờ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n Lời giải: uses crt; var n,tong,i:integer; BEGIN clrscr; 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. Bài 10: 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 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ó phải là số nguyên tố không? Lời giải: uses crt; var n,i:integer; BEGIN clrscr; 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. Bài 12: Số hoàn hảo là số mà tổng các ước của nó không kể nó bằng chính nó. VD: số 28 các ước là: 1 2 4 7 14 số 6 các ước là: 1 2 3 Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem số đó là số hoàn hảo không? Lời giải: uses crt; var n:longint;tong,i:integer; BEGIN 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ă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ố đó 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'); readln END. Bài 14: Nhập vào 1 xâu kí tự và cho biết xâu vừa nhập vào 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 clrscr; 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. 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 con Một trăm chân chẵn Lời giải: uses crt; var cho:byte; BEGIN clrscr; for cho:=1 to 25 do if 4*cho+(36-cho)*2=100 then writeln('So ga la: ',36-cho,' so cho la: ',cho); readln END. Bài 16: Nhập 1 số nguyên dương n <1000 cho biết bao nhiêu số nguyên tố từ 0n Lờ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 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. Bài 17: Nhập 1 số n kiểm tra tính chẵn lẻ, xem số đó chia hết cho 3 không,tổng các chữ số của nó là bội của 6 không Lời giải: uses crt; var n,m,tong:integer; BEGIN clrscr; 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. Bài 18: Tính tổng n số phibonaci: F 0 =F 1 =1;F i =F i-1 +F i-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 END. 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ố đó 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 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=1 3 +2 3 +3 3 +…+n 3 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= C n m = (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; [...]... write(a[i]:4); readln END Tương tự với bài sắp xếp với dãy giảm dần 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 Lời giải: thể làm với 1 số đề bài tương tự như: tính tổng các số là số... la: ',s3); readln END Bài 22: Nhập số thực dương e(emax then max:=c[i]; if d[i]>max then max:=d[i]; write(max,' '); if b[i]0) and (ee 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 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... a1,a2,…,an.Hãy tính và in ra màn hình tổng các số lẻ trong dãy Lời giải: thể làm với 1 số đề bài tương tự như: tính tổng các số là số nguyên tố trong dãy hoặc tổng các số là số chính phương trong dãy Bài 30: Lập trình nhập 1 mảng 2 chiều kích thước n*n phần tử, Hãy in ra màn hình mảng được sắp xếp theo hình ziczắc VD 1 2 2 4 5 5 6 8 9 10 10 11 Lời giải: . Bài tập pascal cơ bản dành cho hs-sv thiết kế bởi: Vũ Đức Quang Bài 1: Viết chương trình nhập vào 1 số N nguyên. đề 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

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan