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

Bài tập pascal cho học sinh

45 274 0

Đ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 45
Dung lượng 319,26 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC lớp 11 không phân ban Nhằm giúp các bạn học sinh lớp 11 tiếp cận với ngôn ngữ lập trình Pascal một cách dễ dàng và vận dụng

Trang 1

Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC

lớp 11 không phân ban

Nhằm giúp các bạn học sinh lớp 11 tiếp cận với ngôn ngữ lập trình Pascal một cách dễ dàng và vận dụng vào các ngôn ngữ lập trình khác trong tin học, tôi sưu tầm và biên soạn một số bài toán cơ bản đến nâng cao có trong chương trình của lớp 11 không phân ban Các chương trình nhằm mục đích tham khảo cho các bạn ham mê tin học và là tài liệu chuẩn bị cho các bài kiểm tra về môn tin học

Nha trang tháng 3/2011

Trang 2

Phần I: CÁC BÀI TẬP CƠ BẢN

Bài 1: Tìm giá trị lớn nhất trong 4 số a, b, c, d (a, b, c, được nhập từ bàn phím)

Program Program TIM_SO_LON_NHAT;

Write('Nhap d='); Readln(d); max:=a;

If b>max then max:=b; If c>max then max:=c; if d>max then max:=d;

Writeln('So lon nhat la: ',max: 4: 2);

Writeln(‘nhap so thu nhat’); readln(a);

Writeln(‘nhap so thu hai’); readln(b);

Writeln(‘nhap so thu ba’); readln(c);

If(a+b>c) And(a+c>b) And(b+c>a) then

Begin Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));

Writeln(‘ba so vua nhap la ba canh cua tam giac’);

Trang 3

Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2); End

Else Writeln(‘ba so vua nhap khong phai la ba canh cua tam giac’);

Writeln(‘nhap do cao cua vat’); readln(h);

Writeln(‘nhap gia toc’); readln(g);

Write ('Nhap a= '); readln(a);

Write ('Nhap b= '); readln(b);

Trang 4

Readln End

Bài 3: Viết chương trình giải bất phương trình bậc 1 (ax + b > 0)

Writeln('GIAI PHUONG TRINH BAC II: ');

Trang 5

If b=0 then

If c=0 then Writeln('Phuong trinh co vo so nghiem') Else Writeln('Phuong trinh vo nghiem') Else Writeln('Phuong trinh co mot nghiem: x=',-c/b: 4: 2) Else

Begin d:=b*b-4*a*c;

If d=0 then Writeln('Phuong trinh co nghiem kep: x=',-b/(2*a): 4: 2) Else if d<0 then Writeln(‘phuong trinh vo nghiem’)

Else Begin

Trang 6

Write('Nhap c='); readln(c);

Write('Nhap m='); readln(m);

Write('Nhap n='); readln(n);

dd:=a*d-b*c; dx:=m*d-b*n; dy:=a*n-c*m; If dd=0 then

If (dx=0) And (dy=0) then

Writeln('He vo so nghiem hoac vo nghiem') Else writeln('He vo nghiem')

Else Begin Write('He co nghiem: '); Writeln('x=',dx/dd: 4: 2,' va y=',dy/dd: 4: 2);

Bài 7: Nhập vào tâm và bán kính của một đường tròn Sau đó nhập vào một điểm

A(x, y) bất kì và kiểm tra xem nó có thuộc đường tròn hay không?

Program KIEM_TRA_DIEM_THUOC_DUONG_TRON;

Uses crt;

Trang 7

Begin

Clrscr;

Writeln('KIEM TRA DIEM THUOC DUONG TRON: ');

Writeln(' -');

Write('Nhap ban kinh R= '); readln(r);

Write('Nhap hoanh do tam duong tron = '); readln(x0);

Write('Nhap tung do tam duong tron = '); readln(y0);

Write('Nhap hoanh do diem a = '); readln(xa);

Write('Nhap tung do diem a = '); readln(ya);

Bài 7 b: Viết chương trình nhập vào tâm và bán kính hai đường tròn, xác định vị trí tương đối của hai đường tròn đó

Writeln('*Duong tron thu nhat');

Write(' +Ban kinh: '); Readln(R1);

Write(' +Toa do x: '); Readln(x1);

Write(' +Toa do y: '); Readln(y1);

writeln;

Writeln('*Duong tron thu hai');

Trang 8

Write(' +Ban kinh: '); Readln(R2);

Write(' +Toa do x: '); Readln(x2);

Write(' +Toa do y: '); Readln(y2);

Kc:=Sqrt(Sqr(x1 – x2) + Sqr(y1 – y2));

Tong:=R1 + R2; Hieu:=ABS(R1 – R2);

If (Kc = 0) AND (Hieu = 0) Then

Writeln('-Hai duong tron trung nhau')

If (Hieu > Kc) Then

Writeln('-Hai duong tron long nhau')

Else If (Tong = Kc) OR (Hieu = Kc) Then

Writeln('-Hai duong tron tiep xuc nhau')

Else If (Tong > Kc) AND (Hieu < Kc) Then

Writeln('-Hai duong tron cat nhau ')

Writeln('-Hai duong tron o ngoai nhau-');

Trang 9

Writeln('x ^ y = ',z: 4: 2);

End Else

Writeln('Khong tinh duoc do x la so am');

Write (' Doc Ngay: '); Readln ( Ngay );

Write (' Doc Thang: '); Readln ( Thang );

Write (' Doc Nam: '); Readln ( Nam );

Nam:=1900 + ( Nam mod 1900 );

If Thang < 3 Then

Trang 10

0: Writeln (‘ngay ’,ngay,’ thang ',thang,’ nam ’,nam,’ la ngay Chu Nhat ');

End;

Readln;

END

Bài 11: Viết chương trình:

Nhâp số báo danh Nhập điểm văn, toán, ngoại ngữ

Trang 11

BEGIN

Clrscr;

Write (' So bao danh: '); Readln( SBD );

Write (' Diem toan: '); Readln( Toan );

Write (' Diem ngoai ngu: '); Readln( Ngoaingu );

Write (' Diem van: '); Readln ( Van );

Tongdiem:=Toan + Van + Ngoaingu;

Writeln (' Phieu Bao Diem ');

Writeln (' So bao danh: ', SBD );

Writeln (' Diem van: ', Van );

Writeln (' Diem toan: ', Toan );

Writeln (' Diem ngoai ngu: ', Ngoaingu);

Writeln (' Tong diem: ', Tongdiem);

If Tongdiem >= 15 Then

Writeln(' Ban da trung tuyen ')

Else Writeln(' Ban khong trung tuyen ');

Readln;

END

Bài 12 : Viết chương trình nhập hai số thực Sau đó hỏi phép tính cần thực hiện và in kết quả của phép tính đó

Nếu là “+”, in kết quả của tổng lên màn hình

Nếu là “-”, in kết quả của hiệu lên màn hình

Nếu là “/”, in kết quả của thương lên màn hình

Nếu là “*”, in kết quả của tích lên màn hình Nếu là “+”, in kết quả của tổng lên màn hình

Nếu là “+”, in kết quả của tổng lên màn hình

Uses Crt;

Trang 13

PHẦN II: CÂU LỆNH CÓ CẤU TRÚC

Bài 12 Cho số tự nhiên n, hãy lập trình để tính các tổng sau:

Trang 15

Writeln(‘can so hang thu may cua day Fibonaxi’); readln(n);

Write (' nhap co so a =: '); Readln(a);

Write (' nhap so mu n =: '); Readln(n);

Trang 16

Bài 14b Viết chương trình nhập vào hai số nguyên dương a, b bất kỳ, hiển thị ước chung lớn nhất của hai số và bội chung nhỏ nhất của hai số đó

Writeln(‘nhap so thu nhat ’); readln(a);

Writeln(‘nhap so thu hai ’); readln(b);

Writeln(‘uoc chung lon nhat cua ‘,a,’ va ’,b,’ la ‘,uc);

Writeln(‘boi chung nho nhat cua ‘,a,’va ’,b,’ la ‘,bc);

d Tính trung bình các phần tử dương trong mảng

e Tìm vị trí đầu tiên của phần tử =k với k nhập từ bàn phím

f Tìm vị trí phần tử =k với k nhập từ bàn phím, nếu có nhiều phần tử =k thì hiển thị ra màn hình tất cả vị trí phần tử=k đó

g Đếm số lượng phần tử là nguyên tố trong mảng

h Kiểm tra mảng vừa nhập có phải là cấp số cộng hay không?

i Sắp xếp mảng theo thứ tự tăng dần các phần tử và hiển thị ra màn hình mảng tăng đó

Trang 17

Prgram BAI_15;

Uses crt;

Var A: array[1 100] of integr;

i, k,demd, s, demnt, tg,n, d, dd,j : integer;

For i:=1 to n do if A[i]>0 then demd:=demd+1;

Writeln(‘ so luong phan tu duong cua mang la’, demd);

{ -Cau b -}

s:=0;

For i:=1 to n do if A[i]>0 then s:=s+ A[i];

Writeln(‘ tong cac phan tu duong cua mang la’, s);

Trang 18

While (j<=n) And (A[j]<>k) do j:=j+1;

If j> n then Writeln(‘khong co gia tri ’, k, ’ trong mang’)

Else Writeln(k, ‘ nam o vi tri thu ’, j,’ trong mang’);

{ -Cau f -}

Writeln(‘ nhap gia tri can tim vi tri ’); readln(k);

J:=1; writeln(‘cac vi tri xuat hien cua ’,k,’ trong mang la’);

Trang 19

If j> A[i] - 1 then demnt:=demnt+1;

End;

Writeln(‘ so luong phan tu la nguyen to la’, demnt);

{ -Cau h -}

d:=A[2]-A[1]; j:=3;

While (j<=n) And (A[j]-A[j-1]=d) do j:=j+1;

if j>n then Writeln(‘ mang vua nhap la cap so cong’) else Writeln(‘ mang vua nhap khong phai la cap so cong’);

{ -Cau i -}

For i:=1 to n do

For j:=i+1 to n-1 do

If A[j]>A[j+1] then Begin {doi vi tri hai phan tu A[j] va A[j+1]}

tg:=A[j];

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

A[j+1]:=tg;

End;

Writeln(‘mang sau khi duoc sap xep la’);

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

Readln

END

Bài 15 b: Viết chương trình nhập vào mảng gồm n phần tử (n<=100) tìm và hiển thị

vị trí phần tử có giá trị lớn nhât, sau đó sắp xếp các phần tử theo thứ tự tăng dần và hiển thị các phần tử sắp xếp đó ra màn hình

Program Tim_vi_tri;

uses crt;

var a: array[1 100] of integer;

var i,n,j, tg,max, vt: integer;

begin

clrscr;

write(' nhap so phan tu cua mang ');

Trang 20

readln(n);

writeln(' moi nhap cac phan tu cua mang ');

for i:=1 to n do begin

If A[i]>max then

Begin Max:=a[i]; vt:=i;

Trang 21

write( a[i]: 4);

readln;

End

Bài 15C: Viết chương trình nhập mảng gồm n phần tử kiểu nguyên(n<=100) và cho

ra màn hình phần tử xuât hiện nhiều nhất và số lần xuât hiện của nó trong mảng Program Tansuat;

for i:=1 to n do if b[i]>max then max:=b[i];

write(' So xuat hien nhieu nhat la ');

if max=b[i] then write(st[i],' ');

write(' -xuat hien - ',max,' –lan ');

End

Trang 22

Bài 16 Viết chương trình nhập mảng gồm n (n<=100) phần tử rồi chèn vào một số bất kỳ vào một vị trí nào đó trong mảng, số cần chèn và vị trí chèn nhập từ bàn

Writeln(' MANG TRUOC KHI CHEN ');

For i:=1 To spt Do Write(a[i]: 6);

For i:=1 To spt Do Write(a[i]: 6);

Readln

End

Trang 23

Bài 17 Viết chương trình nhập mảng gồm n (n<=100)phần tử rồi xóa đi một phần tử nào đó có vị trí nhập từ bàn phím

Write('-Vi tri muon xoa: '); Readln(vitri);

For i:=vitri to spt - 1 Do a[i]:=a[i+1];

Trang 24

Writeln; Writeln;

Writeln(' Bam phim <Enter> de ket thuc ');

Readln

End

Bài 18 Viết chương trình nhập mảng gồm n (n<=100)phần tử rồi xóa đi những phần

tử trùng nhau trong mảng và in ra màn hình phần tử sau khi đã bỏ bớt

Trang 25

Write('-Mang con lai: ');

For i:=1 to n Do Write(a[i]: 8);

For ch:='A' to 'Z' Do a[ch]:=0 ;

Trang 26

Write(' Nhap xau St = '); Readln(St);

dx:=True; i:=1; len:=Length(St);

While dx And (i<=(len div 2)) do

Trang 27

Else Write(St,’ khong phai la xau doi xung ') ;

If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]);

If (Hoten[i-1]=#32)And(Hoten[i] in Chu) then

Trang 28

While (s[lengh(s)] =’ ‘ do Delete(s,length(s),1);

While pos(‘ ‘,s)<>0 do Delete(s,pos(‘ ‘,s),1);

Trang 29

Writeln(‘ xau sau khi xoa het ky tu trang du thua la’, s);

While (s[lengh(s)] =’ ‘ do Delete(s,length(s),1);

While pos(‘ ‘,s)<>0 do Delete(s,pos(‘ ‘,s),1);

K:=length(s);

For i:=1 to k do if ( s[i]=’ ‘ )And( s[i+1]<>’ ‘) do upcase(s[i+1];

Writeln(‘xau sau khi dieu chinh la’,s);

Readln

End

Bài tập phần bản ghi, file

Bài tập 1: Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp của học sinh,in ra danh sách vừa nhập

Program danh_sach;

Uses Crt;

Const n=15;

Type Danhsach=record

Trang 30

Writeln('Thong tin hoc sinh thu ',i);

Write('Cho ho lot: '); Readln(ds[i].holot);

Write('Cho ten: '); Readln(ds[i].ten);

Write('Cho tuoi: '); Readln(ds[i].tuoi);

Write('Cho lop: '); Readln(ds[i].lop);

Trang 32

Tuổi: một số nguyên hai chữ số

Lớp: một xâu hai chữ số và một chữ cái viết hoa

Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh Hãy lập chương trình hiển thị danh sách lên màn hình, mỗi người một dòng

Trang 34

Bài tập 4: Một file bản ghi chứa một danh sách học sinh, thông tin về mỗi học sinh giống như bài trên Hãy lập chương trình tạo một file bản ghi khác chứa danh sách

đó, mỗi bản ghi gồm các trường:

Họtên: một xâu 35 kí tự

Tuổi: một số nguyên hai chữ số

Khối: một số nguyên hai chữ số

Lớp: một chữ cái viết hoa

Trang 36

Bài tập về chương trình con

Bài tập 1 Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2

Procedure Change ( n: integer ; Var St: String ) ;

Trang 38

 Viết thủ tục tính diện tích của tam giác

 Viết thủ tục tính các trung tuyến của tam giác

 Viết hoàn thiện chương trình chính

Uses Crt;

Var a, b, c: real ;

{================================}

Procedure Nhap(Var a, b, c: real);

Procedure input (Var a: real; tenbien: Char);

Trang 39

Begin

If (a<b+c) And (b<a+c) And (c<a+b) then

Writeln(a:0:2, ', ', b: 0: 2, ' va ', c: 0: 2, ' lap thanh ba canh cua tam giac ') Else Writeln('Khong lap thanh ba canh cua tam giac') ;

End;

Procedure Trung_tuyen (a, b, c: Real);

Var ma, mb, mc: real;

Trang 40

a Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không

b Liệt kê tất cả số hoàn hảo từ 1 2000 và đếm xem có bao nhiêu số

if n mod i=0 then d:=d+i;

if d=n then writeln(' So vua nhap la so hoan hao')

else writeln(' So vua nhap khong la so hoan hao');

Trang 41

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

hoanhao;

vietlen;

readln;

End

Trang 42

Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số viết chương trình con thực hiện

 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ố chính phương không

Sau đó trên chương trình chính kiểm tra và trả lời số vừa nhập thuộc số nào?

Trang 43

Function chinhphuong(n: integer): boolean;

Begin ok:=true; k:=trunc(sqrt(n));

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

if chanle(n) then writeln(' So vua nhap la chan')

if nguyento(n) then writeln(' So vua nhap la nguyen to')

else writeln(' So vua nhap khong phai la so nguyen to');

if chinhphuong(n) then writeln(' So vua nhap la so chinh phuong') else writeln(' So vua nhap khong la so chinh phuong');

Trang 44

write ('Nhap so can tinh giai thua: ');readln(a);

if a:=0 or a:=1 then writeln('Giai thua cua ',a,' = 1')

else writeln('Giai thua cua',a,' =', gt(a) );

Ngày đăng: 22/07/2017, 17:32

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w