ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ơ ả

ế

ươ

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

ữ ậ

ằ ậ ụ

ớ ữ ậ

ư ầ

ọ ủ ớ

ươ

ạ ng trình c a l p 11 không  phân ban. Các  ẩ ọ

ơ ả ằ

ươ

ị 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

ễ ế ậ 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 ụ ch ề cho các bài ki m tra v  môn tin h c.

Nha trang tháng 3/2011

ĐT  :  0972.311.481 Trang 1

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Ậ Ơ Ả

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;

Uses crt;

Var a,b,c,d,max  : real;

BEGIN

Clrscr;

Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

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

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

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

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

Readln;

END.

ấ ỳ ể

ươ

ng b t k , ki m tra ba s  v a nh p có ph i là

ậ ng trình nh p ba s  d

ố ươ ả

ố ừ ủ

ế

Bài 1B:  Viêt ch ba c nh c a tam giác không? N u ph i thì tính chu vi và di n tích c a tam giác đó.

PROGRAM Kiem_tra_tam_giac;

Uses crt;

Var a,b,c,cv,s,p   :

real;

BEGIN

Clrscr;

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

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

ĐT  :  0972.311.481 Trang 2

End

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

Readln

End.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ươ

ộ ậ ơ ạ ơ

ậ ộ

ế

ớ ặ ấ ủ ng trình nh p đ  cao h so v i m t đ t c a m t v t r i t i n i có gia

Bài 1C:  Vi t ch ố t c g,

ị ậ ố ủ ậ ạ ặ ấ

Tính và hi n th  v n t c c a v t t i m t đ t.

Program  Tinh_van_toc;

Uses crt;

Var h, v,g   :  real;

Begin

Clrscr;

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

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

V :=sqrt(2*g*h);

Writeln(‘van toc tai mat dat la’, v  : 6  : 2);

Readln

End.

ế

ươ

ươ

Bài 2:   Vi t ch

ng trình gi

i ph

ng trình ax+b=0

Program GIAI_PHUONG_TRINH_BAC_NHAT;

Uses crt;

Var a,b,x :  real;

Begin

Clrscr;

Writeln('GIAI PHUONG TRINH BAC NHAT  :  AX + B=0');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write ('Nhap a= ');

readln(a);

Write ('Nhap b= ');

readln(b);

If(a=0) then

If(b=0) then Writeln(' Phuong trinh co vo so nghiem')

Else  writeln(' Phuong tring vo nghiem')

Else Writeln('Phuong trinh co nghiem x=',­b/a  : 4  : 2);

Readln

ĐT  :  0972.311.481 Trang 3

End.

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

iả  b tấ  ph

ngươ  trình bậc 1 (ax + b >(cid:149)  0)

Program BAT_PHUONG_TRINH_BAC_I;

Uses crt;

Var a,b  :  real;

Begin

Clrscr;

Writeln('GIAI BAT PHUONG TRINH BAC NHAT  :  AX + B>=0');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write('nhap a=');

readln(a);

Write('nhap b=');

readln(b);

If a<>0 then

If a>0 then Writeln('Bat phuong trinh co nghiem  :  x>=',­b/a  : 4  : 2)

Else Writeln('Bat phuong trinh co nghiem  :  x<=',­b/a  : 4  : 2)

Else

If b>=0 then Writeln('Bat phuong trinh co vo so nghiem')

Else writeln('Bat phuong trinh vo nghiem');

Readln

End.

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

iả  ph

2 nươ g trình  (ax

+ bx + c =0)

Program GIAI_PHUONG_TRINH_BACII;

Uses crt;

Var a,b,c,d,x,x1,x2  : real;

Begin

Clrscr;

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

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write('Nhap he so a=');

readln(a);

Write('Nhap he so b=');

readln(b);

Write('Nhap he so c=');

readln(c);

If a=0 then

If b=0 then

If c=0 then

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ĐT  :  0972.311.481 Trang 4

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

x1:=(­b+sqrt(d))/(2*a);

x2:=(­b­sqrt(d))/(2*a);

Write('Phuong trinh co hai nghiem  :  ‘);

Writeln(‘ x1=',x1  : 4  : 2,' va x2=',x2  : 4  : 2);

End;

End;

Readln

End.

Bài 5:  Giải hệ phương trình tuyến tính  :

ax + by = m

cx + dy = n

Program GIAI_HE_HAI_AN;

Uses crt;

Var a,b,c,d,m,n  : real;

dx,dy,dd  : real;

BEGIN

Clrscr;

Writeln('GIAI HE HAI AN  : ');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write('Nhap a=');

readln(a);

Write('Nhap b=');

readln(b);

Write('Nhap c=');

readln(c);

Write('Nhap m=');

readln(m);

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ĐT  :  0972.311.481 Trang 5

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

End;

Readln

End.

Bài 6:  Nhập vào thời gian 1 công việc nào đó là x giây. Hãy chuyển đổi và viết ra  màn

hình số thời gian trên dưới dạng bằng bao nhiêu giờ, bao nhiêu phút, bao nhiêu giây.

Program DOI_GIO_PHUT_GIAY;

Uses crt;

Var gio, phut,giay, x  :  longint;

Begin

Clrscr;

Writeln('DOI SANG GIO PHUT GIAY');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write('Nhap vao so giay  :  '); readln(x);

gio:=x div 3600;

x :=x mod 3600;

phut :=x div 60;

x :=x mod 60;

Writeln('Ket qua = ', gio,'gio   :  ', phut, 'phut   :  ', x, 'giay');

Readln;

End.

nườ g tròn. Sau đó nhập vào một điểm

Bài 7:  Nh pậ  vào tâm và bán kính của m tộ  đ 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;

Var x0,y0,xa,ya,d,r

:

real;

Begin

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ĐT  :  0972.311.481 Trang 6

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

d :=SQRT(SQR(xa­x0)+SQR(ya­y0));

If r=d then Writeln('Diem A nam tren duong tron')

Else

If d>r then Writeln('Diem A nam ngoai duong tron')

Else Writeln('Diem A nam trong duong tron');

Readln

End.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ế ươ ậ ườ ị 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 đó.

Program Khao_Sat_Hai_Duong_Tron;

Var  R 1, R2 ,x1, y1,x2,y2,  Kc, Tong, Hieu   :  Real;

BEGIN

Writeln('KHAO SAT 2 DUONG TRON');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Writeln;

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

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

ĐT  :  0972.311.481 Trang 7

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

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

Else

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

Else If (Tong < Kc) Then

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

Readln

Bài 8:  Tính x

y  ( Với x, y là số th c). ự

Program X_LUYTHUA_Y;

Uses crt;

Var lt, x,y,z  : real;

Begin

Clrscr;

Writeln(‘TINH X LUY THUA Y  : ’);

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write('Nhap x = '); readln(x); Write('nhap y = '); readln(y);

If x>=0 then

Begin

z :=exp(y*ln(x));

End.

ĐT  :  0972.311.481 Trang 8

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

End

Else

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

Readln;

End.

Bài 9:  Tính n!

Program TINH_N_GIAI_THUA;

Uses crt;

Var i,n,gt  : integer;

Begin

Clrscr;

Writeln('  TINH N GIAI THUA  : ');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

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

gt :=1;

For i :=1 to n do gt :=gt*i; Writeln(n, '!= ',gt);

Readln;

End.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ế

ứ ấ

Bài 10**  :  Đ c ngày tháng năm, sau đó vi

t ra màn hình đó là ngày th  m y trong tu n.

Ngaythang;

Program

Uses crt;

Var     Thu, Ngay, Thang   :  Byte;

Nam   :  Integer;

BEGIN

Clrscr;

Write (' Doc Ngay   :  ');

Readln ( Ngay );

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

Write (' Doc Nam   :  ');

Readln ( Nam );

Nam :=1900 + ( Nam mod 1900 );

If Thang < 3 Then

ĐT  :  0972.311.481 Trang 9

Begin

Thang :=Thang + 12;         Nam :=Nam ­ 1;

End;

Thu :=Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3  div 5 + Nam + Nam div 4 ) mod 7;

Case Thu Of

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

1   :  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Hai ');

2   :  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Ba ');

3   :  Writeln (‘ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay  Thu Tu ');

4   :  Writeln (‘ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay  Thu Nam ');

5   :  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Sau ');

6   :  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Bay ');

End;

Readln;

END.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ế

ươ

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

ướ ạ

In ra màn hình d

i d ng   :

ế

Phi u đi m:

(cid:0)

S  báo danh :

(cid:0) Đi m văn :

(cid:0) Đi m toán :

(cid:0) Đi m ngo i ng  :

(cid:0)

ố ể

T ng s  đi m:

ố ể

B n đã trúng tuy n ( ho c B n đã không trúng tuy n ) v i đi u ki n T ng s  đi m >=

ạ ượ ạ c l 15 hay ng

i.

Program INPHIEU;

Uses Crt;

(cid:0)

ĐT  :  0972.311.481 Trang 10

Var SBD   :  Integer;

Van, Toan, Ngoaingu, Tongdiem   :  Real;

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.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ươ

ố ự

ng trình nh p hai s  th c. Sau đó h i phép tính c n th c hi n và in

ế ả ủ

ế

Bài 12: Vi t ch 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.

ĐT  :  0972.311.481 Trang 11

Chuongtrinh_tinh;

Program

Uses Crt;

Var      a, b, T   :  Real;

Pt   :  Char;

BEGIN

Clrscr;

Write (' a = '); Readln( a );

Write (' b = '); Readln( b );

Write (' Phep tinh thuc hien la (+ ­ * /)   :  ');

Readln( Pt );

If Pt = '+’ Then T :=a + b;

If Pt =  '­’ Then T:=a ­ b;

If Pt = '*’ Then T :=a * b;

If Pt = '/’  Then T :=a / b;

Write ( a, pt, b, ' = ', T );

Readln;

END.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ĐT  :  0972.311.481 Trang 12

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Ệ 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   :

a. 1 + 1/22 + 1/32 + … + 1/n2  b. 1 + 1/2! + 1/3! + … + 1/n!

Caua;

Program

Uses crt;

Var  n, i   :  Word;

S   :  Real;

BEGIN

Clrscr;

Write (' Nhap n   :  '); Readln (n);

S :=0;

For i :=1 To n Do

S :=S + 1 / sqr(i);

Writeln ('Tong la  S = ', S  : 6  : 2);

Readln

END.

Program

Cau_b;

Uses crt;

Var n, i, j, p   :  Word;

S   :  Real;

BEGIN

Clrscr;

Write (' Nhap n   :  ');

Readln(n);

p :=1;      s :=0;

For i  :=1 To n  Do

Begin

p :=p * i;       S :=S + 1 / p;

ĐT  :  0972.311.481 Trang 13

End;

Writeln ('Tong la S = ', S  : 6  : 2);

Readln

End.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Câu 13a :  L p trình tính t ng   :

A = 1 + 1/2 + 1/3 + … + 1/n

ố ự

ượ

đây n là s  t

nhiên đ

c nh p vào t

bàn phím.

Program

tinhtong;

Uses Crt;

Var i, n   :  Integer;

tong  :  Real;

BEGIN

Clrscr;

Write (' Cho so tu nhien n   :  '); Readln (n);

tong :=0;

i :=1;

While i <= n Do

Begin

tong:=tong + 1/i;

i:=i + 1;

End;

Writeln (' Tong can tim la  :  ', tong  : 8  : 2 );

Readln;

END.

ố ạ

ế

ậ ừ

t n nh p t

bàn phím và quy

ư

ứ Câu 13b :  Tính s  h ng th  n c a dãy FIBONAXI bi lu t dãy nh  sau

F0=0; F1=1 và Fn=Fn­1+Fn­2

FIBONAXI;

Program

Uses crt;

Var A  :

array[0..1000] of integer;

n   :  integer;

Begin

ĐT  :  0972.311.481 Trang 14

Clrscr;

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

readln(n);

A[0] :=0; A[1] :=1;

For i :=2 to n do

A[i] :=A[i­1]+A[i­2];

Writeln(‘so hang thu’, n,’cua day fibonaxi la’, A[n]);

Readln

End.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ượ

ự  đây a th c và n t

nhiên đ

c nh p vào t

bàn

Câu 14a :  Tính hàm lũy th a aừ n,  phím.

Program

Tinhgiaithua;

Uses Crt;

Var  i, n   :  Integer;

a, giatri   :  Real;

BEGIN

Clrscr;

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

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

i :=1;

giatri :=1;

While i <= n Do

Begin

giatri :=giatri * a;

i:=i+1;

End;

Writeln(' a mu n bang   :   ', giatri  : 8  : 2 );

Readln;

END.

ĐT  :  0972.311.481 Trang 15

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ĐT  :  0972.311.481 Trang 16

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ế

ươ

ấ ỳ ể

ng a, b b t k , hi n th

ị ướ   c

ố ng trình nh p vào hai s  nguyên d ỏ ấ ủ

ươ t ch ấ ủ

ậ Bài 14b. Vi ộ chung l n nh t c a hai s  và b i chung nh  nh t c a hai s  đó.

UC_BC;

Program

Uses crt;

Var a, b, uc, bc   :  integer;

BEGIN

Clrscr;

Writeln(‘nhap so thu nhat

’);

readln(a);

Writeln(‘nhap so thu hai

’);

readln(b);

While (a<>b) do

Begin

If a>b then a :=a­b else b :=b­a;

End;

uc :=a;

bc :=(a*b)/uc;

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

‘,uc);

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

‘,bc);

Readln

END.

ươ

ề ồ

ầ ử

ộ ng trình nh p m ng m t chi u g m n ph n t

ể  n<=100 ki u nguyên

Câu 15 :  Ch ệ ồ ự r i th c hi n

ố ượ

ầ ử ươ

ế

ế a. Đ m s  l

ng ph n t

d

ả ng cho k t qu  ra màn hình

ầ ử ươ

b. Tính t ng các ph n t

d

ng trong m ng.

ầ ử

c. Tính trung bình các ph n t

trong m ng.

ầ ử ươ

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.

ầ ử

ậ ừ

ế

ầ ử

=k thì

ị 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 ầ ử

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.

ĐT  :  0972.311.481 Trang 17

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ấ ố ộ

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 đó

Prgram BAI_15;

Uses crt;

Var A  :  array[1..100] of

integr;

i, k,demd, s, demnt, tg,n, d, dd,j

:  integer;

tb, tbm   :  real;

Begin

Clrscr;

Writeln(‘nhap so luong phan tu cua mang’); readln(n);

Writeln(‘­­­­­­­­­­­­­­­­­­­­­­nhap mang­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­‘);

For i :=1 to n do

Begin

Writeln(‘nhap so hang thu’, I, ‘A[‘,I,’]=  ‘);

Readln(A[i]);

End;

{­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­Cau a­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­}

demd :=0;

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

{­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­Cau c­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­}

s :=0;

ĐT  :  0972.311.481 Trang 18

For i :=1 to n do s :=s+A[i];

tbm :=s/n;

Writeln(‘ trung binh cac phan tu  cua mang la   ’, tbm  : 6  : 2);

{­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­Cau d­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­}

s :=0; demd :=0;

For i :=1 to n do

Begin

if A[i]>0 then s :=s+ A[i]; demd :=d+1;

End;

tb :=s/demd;

Writeln(‘ trung binh cac phan tu duong  cua mang la   ’, tb  : 6  : 2);

{­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­Cau e­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­}

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

readln(k);

J :=1;

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

While (j<=n) do

Begin

If A[j]=k  then write(j  : 5);

j :=j+1;

end;

{­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­Cau g­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­}

Demnt :=0;

For i:=1 to n do

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ĐT  :  0972.311.481 Trang 19

Begin

j:=2;

While( j<=A[i] ­ 1 ) And (A[i] mod j<>0) do

Begin

J:=j+1;

End;

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.

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ế ươ ầ ử ồ ậ ả ể 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;

ĐT  :  0972.311.481 Trang 20

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

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

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

begin

clrscr;

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

readln(n);

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

for i:=1 to n do

begin

write('A', i,']= ');

readln(a[i]);

end;

Max :=a[1]; vt :=1;

For i :=1 to n do

begin

If A[i]>max then

Begin

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

End;

End;

Writeln('gia tri lon nhat la  ', max, ' nam o vi tri thu ',vt);

for i:=1 to n­1 do

for j :=i+1 to n do

if a[i]>a[j] then

Begin

tg :=a[i];

ĐT  :  0972.311.481 Trang 21

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

a[i] :=a[j];

a[j] :=tg;

End;

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

for i :=1 to n do

write( a[i]  : 4);

readln;

End.

ồ ế ươ t ch

ậ ệ ệ ủ ầ ử ề ấ ầ ử ể ả  ki u nguyên(n<=100) và  ng trình nh p m ng g m n ph n t ố ầ  xuât hi n nhi u nh t và s  l n xuât hi n c a nó trong

Bài 15C:  Vi cho ra màn hình ph n t m ngả

Program  Tansuat;

Uses crt;

var i,k,j,n,max:integer;

b,st: array [1..100] of integer;

begin

clrscr;

write('Nhap so pt:');readln(n);

for i:=1 to n do

Begin

write('st[',i,']=');readln(st[i]);

End;

b[i]:=0;

for i:=1 to n do

for j:=i to n do

if st[i]=st[j] then inc(b[i]);

ĐT  :  0972.311.481 Trang 22

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

max:=b[1];

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

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

for i:=1 to n do

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

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

Readln

End.

ế ươ ầ ử ồ ộ ậ ả 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 phím.

Chen; Program

Uses crt;

Var   i,spt, so,vitri   : Integer;

A  :  Array[1..100] Of Integer;

Begin

Clrscr;

Writeln(' + CHEN MOT SO VAO MANG +');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Write('­Co bao nhieu phan tu­  :  ');

Readln(spt);

For i :=1 To spt Do

Begin

Write('­Phan tu A[',i,']= ');

Readln(a[i]);

End;

Writeln;

Writeln('­­MANG TRUOC KHI CHEN­­');

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

Writeln;

Write('­Can che so  :  ');

ĐT  :  0972.311.481 Trang 23

ầ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ườ  Readln(so);

Write('­Vao vi tri  :  ');

Readln(vitri);

For i :=spt+1 Downto Vitri+1 Do

a[i] :=a[i­1]; a[vitri] :=so; spt :=spt+ 1; Writeln;

Writeln('MANG SAU KHI CHEN');

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

End.

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

ậ ừ ị  nào đó có v  trí nh p t bàn phím

Program  Xoa_Pt;

Var       i,spt,vitri  : Integer;

a  : Array[1..100] Of Integer;

Begin

Writeln('­­XOA PHAN TU TRONG MANG­­');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Writeln;

Write('­Mang co bo nhieu phan tu­ ');

Readln(spt);

For i :=1 To spt Do

Begin

Write('­Phan tu A[',i  : 2,']= ');

Readln(A[i]);

End;

Writeln;

Writeln(' ­­MANG TRUOC KHI XOA­­');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Writeln;

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

ĐT  :  0972.311.481 Trang 24

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Writeln;

Writeln;

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

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

spt :=spt ­ 1;

Writeln;

Writeln(' MANG SAU KHI XOA');

Writeln('­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Writeln;

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

Writeln; Writeln;

Writeln('   Bam phim  de ket thuc ');

Readln

End.

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

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

Program  Bo_so_trung;

Uses crt;

Const       Max=100;

Var    A   : Array[1..Max] Of Integer;

i,j,k,n  : Integer;

Begin

Writeln('XOA BO CAC SO TRUNG NHAU');

Writeln('­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­');

Writeln;

Write('­Nhap so phan tu mang:  '); Readln(n);

For i :=1 To N Do

Begin

Write('­Phan tu A[',i,']= ');

ĐT  :  0972.311.481 Trang 25

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Readln(a[i]);

End;

i :=2;

While i <= N Do

Begin

j :=1;

While a[j] <> a[i] Do

j :=j+1;

If j < i Then

Begin

For k :=i to n­1 Do

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

n :=n­1;

End

Else

i :=i+1;

End;

Writeln;

Write('­Mang con lai  :  ');

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

Writeln;

Writeln('   Bam phim  de ket thuc ');

Readln

End.

Bài t p ph n xâu  :

ố ầ ươ ậ ừ bàn phím các ký t ự ươ  ch ế ng trình đ m s  l n

ng trình nh p t ự ỗ ấ Bài t pậ 1:   Ch ệ ủ xu t hi n c a m i ký t

Program    Dem_so_lan;

ĐT  :  0972.311.481 Trang 26

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Uses Crt ;

Var  a   :  Array[ 'A'..'Z' ] of integer;

ch   :  char ;

i   :  byte ;

BEGIN

Clrscr ;

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

Writeln (' Go phim 50 lan ') ;

For i :=1 To 50 Do

Begin

ch  :=Readkey ;

ch :=Upcase(ch) ;

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

End;

Writeln (' So lan xuat hien cac ki tu la   : ') ;

For ch  :='A' to 'Z' do

If a[ch] > 0 Then

Writeln (ch ‘xuat hien’, a[ch]   :  4, ' lan. ');

Readln ;

END.

ậ ướ ố ứ ể ả ậ Bài t p 2: Nh p xâu cho tr c ki m tra có ph i xâu đ i x ng hay không?

Program  Xau­doi­xung;

Uses Crt;

Var   St   :  string;

dx   :  Boolean;

i, len  :  byte;

ĐT  :  0972.311.481 Trang 27

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

BEGIN

Clrscr;

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

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

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

Begin

dx :=(St[i] = St[len ­ i+1]);

I :=i+1;

End;

If dx then Write(' St la xau doi xung ')

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

Readln;

END.

ươ ủ ọ ộ ậ ườ ế ự ậ ng trình nh p vào h  tên c a m t ng i sau đó xóa h t ký t

ắ Bài t p 3:  Ch ư ừ tr ng d  th a

Uses crt;

Const  Chu=['a'..'z'];

Var    Hoten  :  string;

i,len  :  byte;

BEGIN

Clrscr;

Write('Ho ten='); Readln(Hoten);

Len :=length(Hoten);

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

For i :=2 to len do

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

ĐT  :  0972.311.481 Trang 28

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Hoten[i] :=Upcase(Hoten[i]);

Write('Ho ten sau khi dieu chinh la :  ', Hoten);

Readln;

END.

ế ươ ộ ậ ấ ậ t ch ng trình nh p vào m t xâu, sau đó xu t ra xâu sau khi đã xóa

ế Bài t p 4:  Vi ự ố  s . h t ký t

xoa_ky_tu_so; Program

Uses  crt;

Var I,k :  byte;

S  :   string;

Ch   :  char;

Begin

Clrscr;

Writeln(‘nhap xau ‘); readln(s);

K :=length(s); i :=1;

For ch :=’0’ to ‘9’ do

Begin

While (i<=k) And (pos(ch,s))<>0 do

Begin

Delete(s,pos(ch,s),1);

i :=i+1;

End;

End;

Writeln(‘xau sau khi xoa het so la  :  ’,s);

Readln

End.

ĐT  :  0972.311.481 Trang 29

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ậ ự ấ ế ng trình nh p vào xâu ký t và xu t ra màn hình xâu sau khi đã

ươ t ch ự ắ ư ừ Bài 5:  Vi ỏ ế b  h t ký t tr ng d  th a.

xoa_ky_tu_trang; Program

Uses  crt;

Var I,k :  byte;

S  :  string;

Begin

Clrscr;

Writeln(‘nhap xau’); Readln(s);

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

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

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

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

Readln

End.

ế ộ ế ự ắ ư ừ tr ng d  th a và

ổ ươ t ch ự ầ ủ ng tình nh p vào m t xâu, sau đó xóa h t ký t ữ ậ ỗ ừ Bài 6:  Vi đ i các ký t thành ch  hoa. đ u c a m i t

Doi_chu; Program

Uses  crt;

Var I,k :  byte;

S  :  string;

Begin

Clrscr;

Writeln(‘nhap xau’); Readln(s);

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

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

ĐT  :  0972.311.481 Trang 30

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

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

ổ ớ ủ ọ ọ ồ ọ ậ ươ ng trình nh p danh sách h c sinh g m H  tên, tu i, l p c a h c

ậ ậ ừ Bài t p 1:  Ch sinh,in ra danh sách v a nh p

danh_sach; Program

Uses  Crt;

Const n=15;

Type  Danhsach=record

holot  :  string[25];

ten  :  string[10];

tuoi  :  0..99;

lop  :  string[3];

End;

Var  ds  :  array [1..n] of Danhsach;

i   :  byte;

BEGIN

ClrScr;

Writeln('Hay nhap danh sach hoc sinh   :  ');

Writeln;

For i :=1 to n do

Begin

ĐT  :  0972.311.481 Trang 31

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

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

Writeln;

End;

Writeln('Danh sach hoc sinh    : ');

For i :=1 to n do

With ds[i] do Writeln(holot  : 20,ten  : 10,tuoi  : 4,lop  : 5);

Writeln;

Write('Bam Enter de ket thuc...');

Readln;

END.

ươ ổ ớ ọ ậ ng trình nh p danh sách h c sinh g m H  tên, tu i, l p.

ọ ắ ế ồ ứ ự ươ ng trình in ra danh sách sau khi s p x p theo th  t ầ .  tăng d n Bài t p ậ 2:   Ch Ch

sap_xep; Program

Uses  Crt;

Const n=5;

Type

Danhsach=record

holot  :  string[25];

ten  :  string[10];

tuoi  :  0..99;

lop  :  string[3];

End ;

ĐT  :  0972.311.481 Trang 32

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Var   ds  :  array [1..20] of Danhsach;

i,j  :  byte;

f  :  file of Danhsach;

Procedure Doi(i,j  :  byte);

Var tg  :  Danhsach;

Begin

tg :=ds[i];

ds[i] :=ds[j];

ds[j] :=tg;

End;

BEGIN

ClrScr;

Writeln('Nhap danh sach hoc sinh tu file data.dat   :  ');

Writeln;

Assign(f,'data.dat'); Reset(f);

For i :=1 to n do Read(f,ds[i]);

Close(f);

For i :=1 to n­1 do

For j :=i+1 to n do

begin

If (ds[i].ten>ds[j].ten) then Doi(i,j)

Else

If (ds[i].ten=ds[j].ten)And(ds[i].holot>ds[j].holot) then Doi(i,j);

end;

Writeln('Danh sach hoc sinh  : ');

For  i:=1 to n do

ĐT  :  0972.311.481 Trang 33

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

With ds[i] do Writeln(holot  : 20,ten  : 11,tuoi  : 4,lop  : 5);

Writeln;

Write('Bam Enter de ket thuc...');

Readln;

END.

ề ỗ ọ ộ ả ồ ườ Bài t p ậ 3 :  Thông tin v  m i h c sinh là m t b n ghi g m các tr ng   :

ọ ệ ự ộ H đ m   :  m t xâu 25 kí t .

ự ộ Tên   :  m t xâu 10 kí t .

ộ ố ổ ữ ố 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.

Program Nhaphocsinh;

Uses  Crt;   Const n=5;

Type  Danhsach=record

holot  :  string[25];

ten  :  string[10];

tuoi  :  0..99;

lop  :  string[3];

end;

Var   ds  :  Danhsach;

i  :  byte;

f  :  file of Danhsach;

ĐT  :  0972.311.481 Trang 34

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

BEGIN

ClrScr;

Writeln('Danh sach hoc sinh tu file bai2.dat');

Writeln;

Assign(f,'bai2.dat'); Reset(f);

For  i:=1 to n do

Begin

Read(f,ds);

With ds do Writeln(holot  : 20,ten  : 11,tuoi  : 4,lop  : 5);

End;

Close(f);

Writeln;

Write('Bam Enter de ket thuc...');

Readln;

END.

ề ỗ ọ ứ ọ ả

ộ ươ ộ ư ứ ố ộ ậ ả ạ

ng trình t o m t file b n ghi khác ch a  ườ ồ 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 ỗ ả 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

Prorgam file_banghi;

Uses Crt;

Type Danhsach1=record

holot  :  string[25];

ĐT  :  0972.311.481 Trang 35

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ten  :  string[10];

tuoi  :  0..99;

lop  :  string[3];

End;

Danhsach2=record

hoten  :  string[35];

tuoi  :  byte;

khoi  :  byte;

lop  :  char;

End;

Var  ds1   :  Danhsach1;

ds2   :  Danhsach2;

f1   :  file of Danhsach1;

f2   :  file of Danhsach2;

c   :  integer;

BEGIN

ClrScr;

Writeln('Ghi tu file bai3.dat sang bai3n.dat  : ');

Writeln;

Assign(f1,'bai3.dat');  Reset(f1);

Assign(f2,'bai3n.dat'); Rewrite(f2);

While not Eof(f1) do

Begin

Read(f1,ds1);

With ds1 do

Begin

ĐT  :  0972.311.481 Trang 36

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ds2.hoten :=holot+ten;

val(copy(lop,1,2),ds2.khoi,c);

ds2.tuoi:=tuoi;

ds2.lop :=UpCase(lop[3]);

Write(f2,ds2);

End;

End;

Close(f1); Close(f2);

Writeln;

Writeln('Bam Enter de ket thuc!');

Readln;

END.

ĐT  :  0972.311.481 Trang 37

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

ậ ề ươ

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

b   :  Array[0..  1] Of Char = ('0', '1') ;

Var

du, So   :  Integer ;

S   :  String ;

Begin

S :='' ; {tao xau rong}

So :=n ;

Repeat

Du:= So mod 2 ;

So:=So div 2 ;

S:=b[du] + s ;

Until So = 0 ;

St :=S ;

End ;

2 + bx + c = 0

ủ ụ ả ươ ậ Bài t p ậ 2:  Dùng th  t c gi i ph ng trình b c hai ax

Uses Crt ;

Var  a, b, c, x1, x2  :  real;

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

Procedure  Nhapabc(var  aa,bb,cc  :  real);

Begin

Write('a='); Readln(aa);

Write('b='); Readln(bb);

ĐT  :  0972.311.481 Trang 38

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Write('c='); Readln(cc);

End;

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

Procedure  GPTB2;

Var Delta  :  real;

Begin

Delta :=sqr(b)­4*a*c;

If Delta<0 then Writeln('Phuong trinh vo nghiem.')

Else

If Delta=0 then

Begin

Write('Phuong trinh co nghiem kep   :  ');

Write('x1,2=',­b/(2*a)  : 8  : 2);

End

Else

Begin

x1 :=(­b+sqrt(Delta))/(2*a);

x2 :=(­b­sqrt(Delta))/(2*a);

Writeln('Phuong trinh co 2 nghiem phan biet la   : ');

Writeln('X1=',x1  : 8  : 2, 'X2=',x2  : 8  : 2);

End;

End;

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

BEGIN { CT chính }

Clrscr;

Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So   : ');

ĐT  :  0972.311.481 Trang 39

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Nhapabc(a,b,c);

If a<>0 then  GPTB2

Else  Writeln(' Khong phai phuong trinh bac hai ');

Readln ;

END.

ế ươ ệ ầ ượ ệ ậ Bài t p 3: Vi t ch ự ng trình th c hi n l n l t các công vi c sau   :

(cid:0) ố ự ươ ủ ụ ậ ừ ậ L p th  t c nh p ba s  th c d ng a, b, c t bàn phím.

(cid:0) ậ ủ ụ ủ ể ậ ạ ố

L p th  t c ki m tra xem ba s  trên có l p thành ba c nh c a tam giác hay  không ?

(cid:0) Vi

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

(cid:0) Vi

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

(cid:0) Vi

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

Chuong_trinh; Program

Uses Crt;

Var  a, b, c  :  real ;

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

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

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

Begin

Repeat

Write('Nhap ' + tenbien+' = '); Readln(a);

Until (a>=0);

End;

Begin

Input(a, 'a');

Input(b, 'b');

ĐT  :  0972.311.481 Trang 40

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Input(c, 'c');

End;

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

Begin

If (a

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;

Begin

ma :=sqrt((2*sqr(b)+2*sqr(c)­sqr(a))/4);

mb :=sqrt((2*sqr(a)+2*sqr(c)­sqr(b))/4);

mc :=sqrt((2*sqr(a)+2*sqr(b)­sqr(c))/4);

Writeln('Cac trung tuyen cua tam giac la   :  ') ;

Writeln('ma=', ma  : 0  : 2, '   mb=', mb  : 0  : 2, '   mc=', mc  : 0  : 2);

End;

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

Procedure Dientich (a, b, c  :  real); Var p, S  :  real;

Begin

p :=(a+b+c)/2;

S :=sqrt(p*(p­a)*(p­b)*(p­c));

Writeln('Dien tich =', S  : 0  : 2);

End;

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

BEGIN

ĐT  :  0972.311.481 Trang 41

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Clrscr;

Nhap(a, b, c);

Kiemtra(a, b, c);

Dientich(a, b, c);

Trung_tuyen(a, b, c);

Readln;

END.

ố ổ ố ả ướ ủ ừ ằ S  Hoàn H o là s  có t ng các c c a nó (tr  nó) b ng chính nó

ậ Bài t p 4 :   ụ Ví d    :  6 = 1 + 2 + 3

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ố

Program  So_hoan_hao;

uses crt;

var n,i,d,k,j  : integer;

Procedure hoanhao;

Begin

d :=0;

for i :=1 to n­1 do

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

end;

Procedure  Viet_len;

ĐT  :  0972.311.481 Trang 42

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

Begin

write(' Day so hoan hao tu 1­­>2000  : ');

k :=0;

for i :=1 to 2000 do

Begin

d :=0;

for j :=1 to i­1 do

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

if d=i then

Begin

write(i  : 5);      k :=k+1;

End;

End;

writeln;

writeln(' Trong day 1­­>2000 co ',k,' so hoan hao');

End;

Begin

clrscr;

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

hoanhao;

vietlen;

ĐT  :  0972.311.481 Trang 43

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

readln;

End.

ồ ậ ế ươ ự ệ ố 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

(cid:0) Ki m tra tình ch n l

ắ ẻ ể

(cid:0) Ki m tra xem có ph i là s  nguyên t

ố ể ả ố không

(cid:0) 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?

Program chuong_trinh;

uses crt;

var i,n,k,d  : integer;

ok  : boolean;

Function chanle(n  : integer)  : boolean;

Begin ok :=true;

if n mod 2<>0 then ok :=false;

chanle :=ok;

End; Function  nguyento(n  : integer)  : boolean; Begin

ok :=true; d :=0;

ĐT  :  0972.311.481 Trang 44

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

for i :=2 to n­1 do

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

if d<>1 then ok :=false;

nguyento :=ok;

End;

Function chinhphuong(n  : integer)  : boolean;

Begin

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

if sqr(k)<>n then ok :=false;

chinhphuong :=ok;

End;

Begin

clrscr;

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

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

else writeln(' So vua nhap la so le');

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

readln;

ĐT  :  0972.311.481 Trang 45

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

End.

ế ươ ậ ừ ớ Bài 6. Vi t ch ng trình con t ính a Giai Th aừ  v i a nh p t bàn phím

Program giaithua;

uses crt;

integer; var a  :

gt(n  : byte)  : Longint; Function

Var s  :  Longint; i  : byte;

Begin

s :=1; For i :=2 to n do s :=s*i;

gt :=s;

End;

Begin

clrscr;

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

writeln('Giai thua cua  ',a,' = 1')

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

End.

ậ ả ồ ố ố ố có trong

Bài 7. Nh p vào 1 m ng g m n s  nguyên (2

Program  Mang;

uses crt;

var  a  : array [ 1..20] of byte;

i,n,d,j,k  : integer;

Procedure  nhap;

Begin

ĐT  :  0972.311.481 Trang 46

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

for i :=1 to n do

Begin

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

End;

End;

Procedure  nguyento;

Begin               write(' Day so cac so nguyen to  : ');

k :=0;

for i :=1 to n do               Begin                                  d :=0;

for j :=1 to a[i]­1 do

if d=1 then

if a[i] mod j=0 then                                d :=d+1;                                                       Begin                                                                   write(' ',a[i]);                                    k :=k+1;                                                         End;                End;          if k=0 then                   write(' khong co so nao')          else                  begin                                          writeln;                           writeln(' Trong day co ',k,' so nguyen to');                  End;  End;  Begin         clrscr;         repeat

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

until (2

ĐT  :  0972.311.481 Trang 47

ầ ườ ụ Tr n Văn Chung tr ng THPT Hoàng Văn Th  Nha Trang

nhap;

nguyento;

readln;

End.

ĐT  :  0972.311.481 Trang 48