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

Nội dung

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), 11:=length(s1); I2:=length(s2)}: k:=0; kmax:=0; For i:=1 to 14 do For j:=1 to 12 do Begin 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; End; End; End:

if kmax=0 then Wrtteln(Hai xâu S1 va S2 khơng cĩ + xâu con nào chungl)

Else Begin

Trang 3

102 Lip brink Pascal - Tip 3 End; End; if not(d) then Writein(‘Khéng cé x4u nhu vay!’); Readin; End 42 Program P3412; Uses crt; Var s1, s2: string; p, k, f1, l2: byte; Begin Cirscr; Writein(‘Chuang trinh tim vi tri cudi cling cla $1’ + rong S2 ?);

Trang 4

Phan 2 HUGNG DAN 103 Else Writetn('Kếtquả :0.); Readln; , End 13 Program P3413; Uses crt; Var s1, $2: string; s, i, 11, 12: byte; Begin Clrscr;

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

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:

Trang 6

Phần 2 HƯỚNG DAN 405

+'tương ứng với cùng mơt cách xếp quân bái khơng;?, Write( Nhập độ dài N : ?; Readin(N);

Trang 7

106 Lip tinh Pascal - Tap 3 16 Program P3416; Uses crt:2 const tap = ['0''1'; Var s: array[1 2] of string; n, i, dem: byte: ch: char; Begin Clrscr; Writeln( Biến đổi xâu nhị phân S1 độ dài N thành” +'xâu S2:);

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

Trang 8

Phần 2 HƯỚNG DẪN 407 Writeln( Vì trì 'i:2; : so ',s[1][j' —> ',s[2][i]); Readlln; End 17 Program P3417; Uses crt; Var n,i, s, st: integer; xi: string: Begin Clrscr, Writeln('Chương trình viết xâu độ dài N dãy các + 'số tự nhiên:; Write(_ Nhập số N: , Readln(n); i:=1; si=1; While (s<=n) do Begin White(i); st:=s; i+; If (i<=9) then s:=s+1 Else if (i<=99) then s:=s+2

Trang 9

108 Lie toh: Pascal - ` ; 18 Program C3418; Uses crt; Var n, ¡, s, st integer; XI: string; Begin Clrscr: Writeln( Chương trình viết xáu độ dài N dãy các + 'số tự nhiên, '), Write(Nhập số N : );Readln(n); i=; s.=1; While (s<=n) do Begin Wrtte(), 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

Trang 10

Phần 2 HƯỚNG DẪN s 109 19 Program C3419; Uses crt; Const n: integer=255; st: string[3]F 100; s(2: string[3]E'001'; Var s, sc: integer; Begin Clrscr;

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’

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

Trang 13

112 Lip tnads Pascai - ‘hin 3 4 Program C3504; Uses crt, Var b: atray[1 100] of real: a:real; n, i: byte; Begin Clrscr;

Write(_ Nhập độ dài của dãy số thực : );Readln(n); Writeln(_ Nhập các phân tử của day’);

For i:=1 ton do Begin

Write( b[.i/]= };eadln(b[l);

End:

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

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)); End; Writeln(' Các phần tử khác nhau của dãy : ); I:ZÍ; Repeat trung:=false, For j:=1 to —† đo

Trang 15

114 Lép bint Pascal - Tip 3 Readln(n); Writeln(' Nhập các phần tử của dã y: ); For :=1 to n do Begin Write(' af',i,'] = 3;Readin(alïl); End; È=1; Repeat trung:=false; For j:=i+1 ton do

Trang 16

Phần 2 HƯỚNG DAN 115 While not(j in sang) do inc(j); Write(j:8); ij; Repeat sang:=sang-[t]; Ì:=i*l; Until Ì>n; Until sang=| |; Readin; End 8 Program P358; Uses crt;

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,

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;

Trang 19

118 Lép tinh Paseal - Tip 3 afit+1):=d; Until afi]=0; Writeln(' USCLN cla '\N,' 86 trên là : ', a[n]); Readin; End 12 Dung 1 1 1 Ví dụ: Tỉnh S=z 1+—+—+x +— ` 2 3 N cho đến khi 1/N <= ¢ (e rat bé dudc nhập từ ban phím) a) Dùng While: =1; S:= 0;

Trang 20

Phần 2 HƯỚNG DẪN 419 S:= St; inc(); End; Until (4/1 <= Epxilon); 143 Program P3513; Uses crt; Var a‘array {1 100] of integer; n, t: byte; imax: byte; Begin Clrscr;

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

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[',

Trang 23

122 Lap hink Pascal - 'lếp (3 - imax:=i; jmaX:=j; End: inc(j): Until j=i; inc(i); Until i>n;

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

Trang 24

Phan 2 HUGNG DAN 123 End: For i:=1 to N do Begin For j:=1 to M do Write(A{i,j}:6:2); Wiitetn: End; Write(‘Cho 6 (j)=); Readln(1, j1): Max:=(i1-1)`J3; Pos:= tren; JfMax<{(N-i1)”ƒ1 \hen Begin 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 đĩ ')

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

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 ', smax); Readh; End 18 Program C3518; Uses crt; Var a:array [1 100] of real; n, : byfe; c: real; Begin Cirscr; Wrileln(' Tìm một giao điểm của một đường thẳng với' + một dãy số độ dài N :'; Write(’ Nhập số N: );Readln(n); Writeln(f' Nhập các phần tử của dãy : ', For I:=1 to n do Begin Write(’ af',i,'] = '}; Readin{alil); End; WriteIn(' Nhập số c : );Readln(c); Writeln(’ Cac diém cất :); n=; Repeat

Trang 30

Phần 2 HƯỚNG DẪN 129 Writeln(' Nhập các phần tử của dãy : °,

Trang 31

130 Lip tink (aAn2l - Tip 3

Trang 33

132 Lip tink Pascal - Tip 3 2 Program C3602; Uses crt; Var st: string; Begin Clrscr; Write{(Nhập một xâu kí tự : );Readln(sÐ); While st[1]= #32 do Delete(st, 1, 1); Writeln(st); Readln; End 3 Program C3608; Uses cn; Var st:string; Begin Clrscr;

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

Trang 34

Phần 2 HƯỚNG DẪN 433 else tu:= copy (st, 1, p-1): Write(tu): Readhn; End 5 Program P3605; Uses crt; Var st, st1: string; i, p, $: byte; Begin Clrscr; Wrileln(' Chương trình thực hiện ham’ + ‘Copy(St,Pos,Size) ;’}; 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}

Trang 35

134 Lip brink Pascal - ‘Tip 3 I:=length(st); p:=pos('\‘ st); lf (p<>0) then st†:=copy(st,†1,p-1)+ "H' + copy(stpt1,bp) Else ‘ stt:=st} st2:="" ste:=st; Repeat |:=length(stc); p:=pos("**"' stc); If p<>0 then Begin st2:= st2 + copy(stc,1,p): Delete(stc,1, p+2); End; Until p=0; st2:=st2+stc; Writeln’ St ='\st);

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

Trang 36

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

©lrscr:

Writeln('Chương trinh thay thé "house" dau tién’ + ‘barig “houses” và loại bé “abc” dau tiên: );

Write(‘Nhap mot xau 20 ki tu St : );Readln(sl); st1:=st; st2:=st; P:=pos( house”,s†1); lf (p<>0) then insert(‘s’,st1,p+4); p:=pos(‘abc’,st2); if (p<>0) then delete(st2,p,3): Writeln(’ St = ',st); Writeln(’ Thay thé “house đầu tién bang’ +' “houses”: St1 ='\st1); Writeln(' Loại bỏ "abc" đầu tiên : S2 = s2); Readln; End 8 Program P3608; Uses crt; Var st: string[20}; st: string; |,p: byte; Begin ©lrscr;

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

Trang 37

136 End Lip tinh Paseal -Tép 3 If (p<>0) then delete(st1,p,3); Until (p=0); Writeln(’ St =‘, st); Writeln(' Loai bd “abc” : St2 =‘, st); Readin; 9 Program P3609; Uses crt; Var st: string[20}; ¡,p: byte; Begin End Clrscr;

Trang 38

Phan 2 HUGNG DAN 137 Clrscr; Writeln( Chương trình tách từ :); Write(Nhập mội câu ); ReadiIn(cau); Repeat While (cau <> “) and (cau[1]=#32) do Delete(cau, 1 1); l:= length(cau); p:=pos(‘', cau); if (p<>0) then tu:= copy(cau,1, p-1) Esle tu:=cau; Delete(cau, 1, length(u)); Writeln(tu); Until (cau="): Readin; End 11 Program P3611; Uses crt; Var st: string; i, | byte; Begin Clrscr;

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

Trang 39

138 Lap Lush Pascal - ‘Vip 3 12 Program P3612; Uses crt; Var st, st1: string: i, 1 11, p, pt, p2: byte: Begin Clrscr;

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

Trang 40

Phần 2 HƯỚNG DẪN 139 13 Program P3613; Uses crt; Var st string: i: byte; Begin Clrscr; Writeln(' Chương trình xử lý ““” : `}; Write(‘Nhap mot xau : ‘); Readin(st); I:=length(sl);

Trang 41

140 Lig hinh Pascal - Tig 3 I:= length(st); p:= pos(’.'st): For i:=p to | do If st(i]="3° then stfi}:= '+; Writein(' Két quả : ',SĐ, ' Readln; End 15 Program P3615; Uses crt; Var st: string; i, | byte; Begin Clrscr; Writeln('Chương trinh xử lý ":° và "!" :); Write(Nhập mội xâu : ); Readln(st); l:=length(st); For i:=1 to (I div 2) do f stlil= then s[Ï:= ',; For i:=(I div 2+1) tol do

If st{i]J="!" then stfi}:= “; Writeln(' Kết qua : ',St): Readin; End 16 Program P3616; Uses crt;

Trang 42

Phần 2 HƯỚNG DAN 141 st, b: string; l,i, n: byte; c: integer; Begin Clrscr;

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

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 đĩ: TAS(S1,S)>=m.n (đpcm) 49 Khẳng định: nếu S1c S2 thì TA(S1,S) >= TA(S1,S2) TA(S2,S) là sai Ví dụ: S1 = a` S2= ‘aa’, S= ‘aaa’ Khi đĩ TA(S1,S) = 3 TA(S1,S2) = 2 TA(S2,S) = 2 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 :’);

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(Ì); Until i>L; For i:=1 to L<1 do If (st{j} in hoa) and (j<!) and (st{j+1] in hoa) then st [j+1]:= chr (ord(st[j+1]}+32); Wnlteln(st); Readln; End §7 ƠN TAP: DU LIEU VA THUAT TOAN 1 Program P3701; Uses crt; Const Max=1000: Type Day=array(1 Max} of real; Var A: Day; Nik: integer; Nh: real: Begin Clrser;

Trang 46

Phần 2 HƯỚNG DAN 145 Tg: real; Begin Clrscr;

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]); End; For i:=1 to ptq do lfi<=p then C[]:=Afi] Eise C[i'=B[i-p]; For i:=1 to ptq-1 do For j:=i+1 to p+q do lf C[]>C[] then Begin 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 ’);

Trang 48

Phần 2 HƯỚNG DẪN 447 ch: char; Begin Clrser;

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; "1:s[1Il]=0; End; if s[1}<>s[2] then

Trang 50

Phần 2 HƯỚNG DẪN 149 b) 4 0001011001110 1 1 0 0 0 10 1 1 0011010 1 Ø0 0010001011010 1 0000 i1 1011011010 1 0 0 110190 19011010 1 1170101010 11010 0 1 1010101011010 Vậy hai xâu đã cho khơng phải là 3 tương đương 6 Program P3706; Uses crt; Const tap=!'0','1']; Var s: array[1 2] of string; n, k, i, j, dem: byte; ch: char Begin Clrscr;

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

Trang 51

450 Lp tinh Pascal - Tig 3 End inc(dem), Write(ch}; s{it=s[i]+ch; End; Until dem=N; Writetn; End; Write(’ Nhập số k<=N : );Readin(k); r=} Repeat if (s(1}[i]<>s(2I[i]) then: For j:=i to itk-1 do if (s[1][J='0') then s{t}{}:="1° Else s(1]{j}:='0'; inc(i); Until (i>n-k+1);

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

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

Trang 52

Phần 2 HƯỚNG DẪN 151 Vậy hai xâu đã cho là 2 tương đương nên chúng tương đương 8 Program P3708; Uses crt; Var count,n\.n: integer; kt: boolean; Begin Clrscr; count:=1; kt:=false: Write(’.’); ReadIn(n); Repeat Whiteln('Boc sé nguyén>=1');

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

TỪ KHÓA LIÊN QUAN

w