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

Ebook tự học lập trình pascal (tập 3) phần 2 bùi việt hà (chủ biên)

106 226 4
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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 106
Dung lượng 1,04 MB

Nội dung

HUGNG DAN 137 Writeln‘Chuong trinh thay ky tu khác trống bằng "a":; WriteNhập một xau : ';Readinst;... Writeln' Chương trinh xử lý xâu có số :; WriteNhập một xâu có số : ;Readlnst; Repea

Trang 1

100 Lip hinds Patend - Ma (2d

Begin

Clrscr;

Writeln( Chương trinh tim một xảu con chung cực"

+dai cua hai xau:’):

Write(' Nhập xâu $1 : ');Readin($1):

Write’ Nhap xau 82 : ');Readin($2),

If (s1[=s2{j}) then Begin

k:=†:

While (i+k<=I1 )and(j+k<=I2) and

(S1fitk}=s2[j+k]) do inc(k):

If kmax<k then Begin kmax:=k; imax:=i;

Trang 3

102 Lip brink Pascal - Tip 3

Write(' Nhập xâu S1 : 9; Readin(s1);

Write(_ Nhập xâu S2 : 9; Readln(s2);

|1:Zlength(s1);

k:=0;

p:=pos(s1,$2);

While (p<>0) do Begin k:=ktp;

Trang 4

Phan 2 HUGNG DAN 103

Writeln(‘Chuang trinh tính số lần lặp của S1 trong S2:);

Wnfte( Nhập xâu S† : );Readln(s1):

Write( Nhập xâu S2 : ');Readin(s2);

I1:=lengfh(s1);

{2:=length(s2);

$:=0;

If (I2>=It) then For i:=1 to (I2-11+1)} do

Trang 5

104 La iw drat Pn wad - ‘Kin 3

Writeln(' Chương trình tinh số lần lặp rời nhau của'

+'S1 trong S2:

Write(’ Nhap xau S1 : ');Readln(s1),

Write(' Nhập xâu S2 ; );Readln(s2);

Trang 6

Write(ch); sii}:=sfij+ch;

End:

Until dem=N;, Writeln;

Trang 7

106 Lip tinh Pascal - Tap 3

Wnite(' Nhập độ dài N : ); Readin(N);

Writeln( Nhập 2 xâu nhị phân S1 và S2 : ),

For t:=1 to 2 do : Begin

dem:=0;

Write(’ Nhập xâu SỈ, : ), Repeat

ch:=readkey;

if ch in tap then Begin inc(dem); Wnte(ch);

S[Ï}=s[i]+ch, End;

Until dem=N;

Writeln;

End;

For i:=1 to ndo

If (s[2]fi] <> s[4]{i]} then

Trang 8

st:=s;

i+;

If (i<=9) then s:=s+1 Else if (i<=99) then s:=s+2 Else if (i<=999) then s:=s+3 Else if (i<=9999) then s:=s+4; End;

str(i,xi);

Write(copy(xi, 1,n-st));

Readin;

End

Trang 9

108 Lie toh: Pascal - ` ;

st:=s:

=i+Í;

if (i<=9) then s:=st+1 Else if (i<=99) then s:= s+2 Else if (i<=999) then s:= s+3 Else if (i<=9999) then s:= st4 Else if {i<=99999) then «.= s+5;

Trang 10

Writeln('Chương trinh viết xau dai 255 ki tu la phan’

+'đầu của xâu 1(100) :);

Write{ 4);

S;=1;

While (s<=n) do Begin

§C:=§; S:=§†3;

if (s<=255) then Write(st);

End;

Write(copy(st, 1,n-sc));

Writeln; Writeln(' Chương trình viết xâu dải 255 kí tự là phan’

+ 'đầu của xâu 10(001) :),

Write(10);

S:=2;

while (s<=n) do Begin

Trang 11

410 | Lig binh Pascal - Tap 3

20 A= 1(01)"0=1 0101 01 0

n lan 01 B= 0(10)"1 =0 1010 10 1

m lần 10

Để A là xâu con của B thì m>=n+1

§5 LENH LAP REPEAT

Trang 12

Phan 2 HUONG DAN 144

Trang 13

112 Lip tnads Pascai - ‘hin 3

Write(’ Nhap $6 thuc a: ‘};Readin(a):

Writelnj Các phần tử lớn a của dãy : );

Trang 14

hần 2 HƯỚNG DẪN 113

Begin

Clrscr,

Write(` Nhập độ dài của dãy số nguyên: );Readln(n);

Writeln(' Nhập các phần tử của dãy : );

For i:=1 to n do

Begin Write(‘ af',i,'] = ‘);ReadIn(ali));

if (afij= afj]) then trung:=true;

If not{trung} then write (all);

Begin

Clrscr;

Write(' Nhập độ dài của đây số nguyên: `:

Trang 15

114 Lép bint Pascal - Tip 3

End;

È=1;

Repeat trung:=false;

For j:=i+1 ton do {f (a[i]=alj]) then trung:=true;

lÍ trung then then Writeln(afi]:4);

Trang 16

Var thang: byte;

tien, lai, x: real;

Begin

Clrser;

Writeln(' Chương trình tính thời gian rút tiền lãi: '},

Write(' Số tiền lãi muốn rút ra :");Readln(X);

tien:=1000;

thang:=1;

repeat lai:=tien*8/100;

tien:=tlen+lai;

thang:=thang+1;

Until tien>=x;

Wnteln(' Bạn phải gti tién trong ', thang div 12,

‘nam’, thang mod 12," thang.’):

Trang 17

116 “âu J3 Pascal - ‘Vip 3

Writeln(' Khi đó số tiền bạn rút ra được là ',tien:12:2,' đồng );

Readln;

End

9 Program P3509;

Uses crt;

Var thang: byte:

tien, lai: real;

Trang 18

Write(‘S6 tha’ ="); Readin(ali])

End;

For i:=1 to n-1 do Repeat d.=a[i];

afi):=ali+1] mod ali);

117

Trang 19

118 Lép tinh Paseal - Tip 3

Write (Epxilon='); Readln(Epxilon);

Write (1/i > Epxilon); do

Begin S:= S+(1/i};

Trang 20

Writeln(’ Tim max clia mét dBy sO nguyén dé dai N:’);

Write(’ Nhap sé N :'); ReadIn(n);

Wrileln( Nhập các phần tử của dãy : ');

For i:=1 ton do Begin

Write(‘ a[‘i,'] = '); Readin(afi});

Trang 21

120 Lip hist Pasoad - ‘Tip 3

\f ajimax,jmax]<ali,j] then Begin

Trang 22

Phần 2 HƯỚNG DẪN 121

Until i>n;

Writeln(' Phần tử lớn nhất của mảng trên là a[',

imax,,,jmax,]= ` a[imax, jmarl);

Trang 23

122 Lap hink Pascal - 'lếp (3

Wrileln(' Phần tử lớn nhất trong ving tam gidc’

+ 'dưới đường chéo chính), Writeln(' của mảng trên là a[,imax, `,imax,] = ',

a[imax,jmax]); Readin;

Trang 24

Phan 2 HUGNG DAN 123

Max:=(N-i1)"J;

Pos:=' duoÏ;

End;

If Max<(j1-1)7i1 then Begin

Max:=(j1-1)*i1;

Pos.=' traf;

End;

If Max<(M-j1)*i4 then Begin

Max:=(M-j1)*i1;

Pos:=' phai;

End;

Write(‘Hinh chữ nhật lớn nhất của lưới khơng chứa +

“điểm (, ¡1 j1,)'+ nằm ở bên +Pos+' của điểm đĩ ')

Readln;

End

Trang 25

124 Lig bunt; Pascal - ‘lap ở

17 Program C3517;

Uses crt:

Var a: array [1 100,1 100] of integer,

m,n, S, smax, ai, aj, Di, bj: integer;

vitri: string;

Begin

Clrscr; ` Writeln(' Tìm miền chữ nhật lớn nhất không chứa'

+’(i,j) cla mat lưới ô vuông NxM :; Write(’ Nhap sé N : '); ReadIn(n);

Write(' Nhập số M: '); ReadIn(m);

Write(’ Nhap Ai: '); Readin(ai);

Write( Nhập Ai : ); Readln(a));

Write(' Nhập Bi: 3, ReadIn(bi);

Write(’ Nhap Bj: '); Readin(bj);

vitri:= tren xuong, giua;

End;

$:=(n-bi-1)*m;

if (s>smax) then Begin

Trang 26

Phan 2 HUGNG DAN 125

§maX:= S;

vitri:= tren;

s:=m '{ai-bi-1)

If (s>smax) then Begin smax:=s;

vitri:='fren xuong, giua End;

s:=(n-ai-1)*m;

it (s>smax) then Begin smax:=s;

vitri:=duof' End;

Trang 27

126 Lip brink Pascal - Tip 3

if (s>smax) then Begin

End;

End Else Begin s:=n*(bi-1);

smax'=S;

Vitri:='tral

$:=n*(aj-bj-1);

if (s>smax) then Begin smax:=s;

vitri:= ‘trai sang, giua’:

Ena;

$:=n*(m-aj-1);

if (s>smax) then Begin smax:=s; vitri:='phai’;

End;

End;

Trang 28

Phan 2 HUGNG DAN 127

Writeln(' Miền chữ nhật lớn nhất không chứa (¡j)}

'của luớởi 6 vuông |};

Writeln(' là miền chữ nhật", vitri,' À và B, có diện tích ',

Trang 29

428 Lép triads Pascal - “Tega ở

Trang 30

Phần 2 HƯỚNG DẪN 129

Writeln(' Nhập các phần tử của dãy : °,

For i:=1 tondo

Begin Wrie( a[,¡,]= );Readin(a[i);

Repeat k:=|+†;

Trang 31

130 Lip tink (aAn2l - Tip 3

Writeln(' Kiểm tra sự tốn tại của một cấp số cộng”

Trang 32

if p<>0 then Begin

Trang 33

132 Lip tink Pascal - Tip 3

Write( Nhập một xâu kí tự : );Readln(st),

While st[length(st}] = #32 do Delete(st, length(st),1);

Trang 34

Write(‘Nhap mét xau ky tu St : );Readln(st);

Write(‘Nhap gia tri Pos : );Readln(p);

Write(‘Nhap gia trị Size : );Readln(s);

sI1:=''; {xâu rỗng}

For i:=p to pts-1 do st1:=st1+st{[i];

Write(' Copy(St,', p,'’, s,') = ist);

Trang 35

134 Lip brink Pascal - ‘Tip 3

Writeln(' Thay thế "," đầu tiên bằng “!!" ; St1 = '\st4);

Wnteln(' Thay thé "***" bằng "*": S12 = ',sI2);

Readin, End

Trang 36

Writei::¡' Chương trình loại bỏ "abc" :);

Write( Nhập môt xâu 20 kỉ tự S† : );Readln(sÐ; SI1:=sÌ:

Repeal

|:=length(st1);

p:=pos( abc ,st1);

Trang 38

Phan 2 HUGNG DAN 137

Writeln(‘Chuong trinh thay ky tu khác trống bằng "a":);

Wri(te(Nhập một xau : ');Readin(st);

Trang 39

138 Lap Lush Pascal - ‘Vip 3

Writeln(' Chương trình loại bỏ dấu ngoặc ( ) : ;

Write( Nhập mội xâu : ); Readln(st);

Repeat

I:=length(s‡);

p1:=pos((.s});

lf (p1<>0) then Begin SI1:=copy(st,p1+1,-p1);

p2.=pf:

Repeat I1:=length(st1);

until (p1=0) or (p=0) or (p1>=p2);

Writeln(' Kết quả: 'ST);

Readin;

End

Trang 41

140 Lig hinh Pascal - Tig 3

For i:=(I div 2+1) tol do

If st{i]J="!" then stfi}:= “;

Trang 42

Writeln(' Chương trinh xử lý xâu có số :);

Write(Nhập một xâu có số : );Readln(st);

Repeat b:=otst{i);

Trang 43

142 Lig tinh Pascal - Tin 3

b) Néu Sic S2 va néu S2 lap trong S thi S1 cũng đã

lặp trong S Vậy TA(S1,S) >= TA(S2,S)

18 Đặt m= TAS(S1,S2) và n = TAS(S2,S) thì cứ mỗi

lần S2 lặp rời nhau trong S thi vì nó chứa m lần S2 nên $2

đã lặp rời nhau trong S m lần, Do đó:

Và 3<2.2 là bất đẳng thức ngược lại

20 Program P3620;

Uses crt;

Const hoa: set of char=ƑA' Z];

dau: set of char=[ ',:,!'?];

Var st: string;

I, i, j: byte:

Begin

Cirser;

Writeln(‘Chuang trinh stta 1di chinh ta :’);

Wriie(Nhập một xâu : '};Readin(st);

I:=length(st);

Trang 44

Phần 2 HƯỚNG DẪN 143

Wnie(i<=L) and (stfi] = #32) do inc(i);

If i<=L then sifil:=upcase(stfi));

While(i<=L) and not (st{i] in dau) do inc(Ì);

End;

Wnte(Phần tử cần thêm vào cuối dãy số đã cho là: ');

Trang 45

144 Lip buinh Pascal ~ Teg 3

For i:=N downto k+1 do Afi]:=Afi-1}:

Trang 46

Write(Số phân tử của dãy số Á là p=);ReadIn(p);

Writeln(Nhập các phần tử của dãy số}

For t:=1 to pdo

Begin Write(A[,¡,]E);ReadIn(A[i);

End;

Write(‘S6 phan tử của dãy số B.là q=);Readln(q); Writeln(Nhập các phần tử của dãy số);

For i:=1 to q do Begin Write(‘Bf’ i, =');Readin(B{i]);

Tg:=CỊ], C[:=CII, CHI=tg;

End:

Writein(‘In day C sau khida sắp xếp);

For i:=1 to ptq do Write(Cfi}:8:2);

Write(‘Nhan Enter dé két thuc ’);

Readln;

End

Trang 47

146 — Lap binh Pascal ~ Tap 3

Trang 48

Writeln(Nhập 2 xâu nhị phân S1 va S2’);

Write(Độ dài N=); Readin(N), For i:=1 to 2 do

Begin dem:=0;

Write(‘Nhap xau S’,i,"="):

Repeat ch:=readkey;

if ch in tap then

Begin inc(dem);

Trang 49

148 Lap tink Pascal - Tag 3

k:=me-md+1;

_ For ï:=md to me do case s[1]{i} of '0:s[1]Il:=1;

Trang 50

Writeln( Kiểm tra hai xâu nhị phân độ dai N cho’

+ trước có phải là k tương đương không : *;

Write(Nhập độ dài N : ');Readln{N);

Writeln( Nhập 2 xâu nhị phân S1 và 52: `);

For i:=1 to 2 do Begin dem:=0;

Write(’ Nhap xau S$’, : 9;

Repeat ch:=readkey;

if ch in tap then Begin

Trang 51

450 Lp tinh Pascal - Tig 3

lf s{1]<>s[2] then Wiite(Hai xâu s† và s2 không +

'phải là ,k,tương đương)

Else Wnte(Hai xáu s† và s2 là ',k,' tương đương ); Readin;

Trang 53

152 Lap tink Paseal - Tip 3

Writeln(Số lần đọc còn lại là ',dem,' lan);

Writeln(Bạn đã đọc được tất cả:', dem-1,' lan'); (Đọc số NJ

Repeat Write(.); Readln(W);

if N<=0 then Writeln(#7'Ban phai doc s6 tu nhién>0’); Until n>0;

kt:=false:

n†:=true;

{Kiểm tra tính nguyên tố của xố N}

{Néu N ld nguyén tố thì nt=true, von tai thi nt = false}

case N of 1: nt=false:

2.3: nt=true Else

Begin

nt:=true;

For i:=2 to {N div 2) do

if (N mod i=0) then nt:=false;

End:

{ Case }

Trang 54

Phần 2 HƯỚNG DAN 453

If not (nt) then { Néu N không nguyên rố }

Begin

if k=0 then Begin

k:=1;

sodadoc{1]:=N,

End Else { if K<>0 }

If k>=1 then Begin inc(k);

For i:=1 to k-1 do

If N<>sodadocii| then sodadoc|k}:=N

(Số N chưa được đọc}

Else kl:=truUe; {Số N đã được đọc rồi }

If kt=true then dec(dem) Else

Begin can:=sqrt(N);

Trang 55

154 Lip bink Pascal - Tip 3

Until N>O;

If k=O then Begin

sodadoc[k]:=N;{Kién tru xem xố N vừa đọc có

nguyên tố cùng nhau với các số đã đọc hay không}

If N<>1 then Begin kt:=true;

Trang 56

If kt=true then ine{solan)

Else {Kiém tra xem số N vừa đọc có chưng từ 2 ước xố trở lên với Í trong những xố đã đọc không}

If min<b then min:=b;

dem:=1; {Đếm xố ước xố chung của a và h} For j:=2 to min do

If (a mod j=0) and (b mod j=0) then inc(dem);

Until (i=k-1)or(dem>=2);

Trang 57

156 Lip tinh Pasoal - Tips 3

Until (solan=0); {Hé ror do}

Writeln( Bạn đã hết lượt chơi');

Write(' Nhãn Enter để kết thúc”);

Readin:

End

11 Lần 1: Người nông dân chở Dé qua sông

Lần 2: Người nông dân chở Sói qua sông, lượt về chở

Dê về cùng

Lần 3: Người nông dân chở Bắp cải qua sông

Lần 4: Người nông dân chở nốt Dê qua sông

(a*1000+b”100+c*10+d) then Writeln(a,b,c,d);

Write('Nhấn Enter để thoat ’);

Readln;

End.

Trang 58

Phan 2 HUGNG DAN 157

k:=2;

while (k<=(N1 dụw 2))and(T<=10000) do Begin

Trang 59

158 Lip tinh Pascal - Tip 3

For z:=1 to 9 do

if x=z then Begin Write(x, y,2,#32#32);

Begin

Clrscr;

Trang 60

Phan 2 HUGNG DAN 159

Writeln(Các số N<100 thỏa mãn điều kiện binh’

+ 'phương của N là số Palindrom là');

For i:=1 to 100 do

Begin bp:=sqr();

str(bp,S);

If length(s}=1 then = Writeln(i) Else

Begin k:=length(s) div 2;

kti=true;

For j:=1 to k do

lf s[j]<>s[lengfh(s)-j+1] then kt:=false;

lf kt=true then Writeln(I):

Trang 61

160 Lip tinh Paseal ~ Tap 3

Writeln('Các số N<1000 thỏa mãn điều kiện N vài

+ "binh phương của N là số Palindrom là);

if (length(sbp)=1) then kt:=true Else if (sbp(1}=sbp[2]) then kt:=true;

End Else

Begin kts:=true;

for |:=1 to (length(s) div 2) do {f s{j]<>s[length(s)-j+1] then kts:=false:

ktbp:=true;

For j:=1 to (length(sbp) div 2) do

if sop[j]<>sbp[length(sbp)-j+1] then ktbp:=false;

If kts and ktbp then kt:=true;

End;

If kt then Begin Writeln{i}; inc(D):

End;

End:

Trang 62

Repeat KT:=true;

str(N,S);

k:=(length(s)+1) div 2;

For i:=1 tok do

If s[i]<>sf{length(s)-i+ 1] then kt:=false;

If kt=true then Write(‘S6 N là sd Palindrom’} Else

Trang 63

162 Lip tink Pascal - Tig 3

Begin

If c=O then Writeln(Các phép biến đổi

+ sau đưa số 'N,` thành Palindrom));

a

inc(count); ’ For i:=1 to k do Begin ch:=s[i];

If (count<=100) and (kt=true) then

Write(‘Can ’ count, lần biển đổi để đưa',M,

‘thanh số Palindrom là ',ÑN) Else Write(Phép biến đổi chưa đạt kết quả sau’,

count, ‘ian bién đổi);

Readhn;

End

18 Program P3718;

Uses crt;

Trang 64

Narmsinh array[1 MaxHS] of longint;

Noisinh: array{[1 MaxHS] of string[40];

continue:=readkey;

End;

Clrscr;

Trang 65

164 Lip bink Pascal - Tap 3

Writein(‘In ra nhGng hoc sinh 06 Ho ta Nguyén’);

For i:=1 to sohs do

Trang 66

Write(' Số phần tử của dãy số:);Readln(N);

Writeln('Nhập các phần tử của dãy số);

End

20 Program P3720;

Uses crt;

Const Max=100;

Trang 67

166 Lip bink Pascal - Tip ~

Var A:array[1 Max] of real;

DN i:byte;

kt1 ,kt2:boolean;

Begin {Main Program}

Cirscr;

Write('Số phần tử của dãy số:); Readln(N);

Writeln(Nhập các phần tử của dãy số);

For i:=1 to N do

Begin Write(‘Af.i,J=';Readin(Afi]);

End;

D.=1;

kt1:=A[1]>=Al2Ì:

For i:=2 to N-1 do Begin

Kt2:=A{iJ>=A(i+1];

If Kt2<>Kt1 then Begin inc(D);

21 Lần1: Địa chủ 1 cùng người hầu của mình qua sông

Người hầu quay về,

Lần 2: Địa chủ 2 cùng người hầu của mình qua sông

Địa chú † quay về

Ngày đăng: 04/12/2015, 02:29

TỪ KHÓA LIÊN QUAN

w