Лекции 1-4 (2 семестр)
.pdfɋɥɟɞɨɜɚɬɟɥɶɧɨ ɞɥɹ ɨɛɨɡɧɚɱɟɧɢɹ ɢɧɞɟɤɫɚ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ȼ ɜɜɨɞɢɬɫɹ ɞɪɭɝɚɹ ɩɟɪɟɦɟɧɧɚɹ – J Ɂɧɚɱɟɧɢɟ ɩɟɪɟɦɟɧɧɨɣ J ɞɨɥɠɧɨ ɭɜɟɥɢɱɢɜɚɬɶɫɹ ɧɚ 1 ɩɟɪɟɞ ɡɚɧɟɫɟɧɢɟɦ ɜ ɦɚɫɫɢɜ ȼ ɨɱɟɪɟɞɧɨɝɨ ɷɥɟɦɟɧɬɚ ɇɚɱɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ J ɡɚɞɚɟɬɫɹ ɩɟɪɟɞ ɰɢɤɥɨɦ ɪɚɜɧɵɦ «0» (J = 0).
J: = 0;
For I: = 1 to N do
IF A [I]>0 Then Begin
j:=j+1; {Inc(j);} B[j]:=A[I];
End;
For I: = 1 to J do {ɜɵɜɨɞ ɦɚɫɫɢɜɚ ȼ}
Write(B [i],’’:3);
Ⱦɚɧ ɨɞɧɨɦɟɪɧɵɣ ɦɚɫɫɢɜ ɧɟɨɛɯɨɞɢɦɨ ɩɨɥɭɱɢɬɶ ɦɚɫɫɢɜ ɜ ɤɨɬɨɪɨɦ ɩɨɪɹɞɨɤ ɫɥɟɞɨɜɚɧɢɹ ɷɥɟɦɟɧɬɨɜ ɢɡɦɟɧɟɧ ɧɚ ɨɛɪɚɬɧɵɣ
Ɋɟɲɟɧɢɟ ɡɚɞɚɱɢ ɦɨɠɧɨ ɩɨɥɭɱɢɬɶ ɞɜɭɦɹ ɫɩɨɫɨɛɚɦɢɩɨɥɭɱɢɬɶ ɧɨɜɵɣ ɦɚɫɫɢɜ
ɪ |
|
|
|
ɜɫɩɨɦɨɝɚɬɟɥɶɧɭɸ ɩɟɪɟɦɟɧɧɭɸ Ɋ. |
|
1 ɫɩɨɫɨɛ
For I:=1 to N do
%>,@ Ǯ[N-I+1];
2 ɫɩɨɫɨɛ. Cɧɚɱɚɥɚ ɧɟɨɛɯɨɞɢɦɨ ɩɨɦɟɧɹɬɶ ɦɟɫɬɚɦɢ 1- ɵɣ ɢ N – ɵɣ ɷɥɟɦɟɧɬɵ, ɢɫɩɨɥɶɡɭɹ ɜɫɩɨɦɨɝɚɬɟɥɶɧɭɸ ɩɟɪɟɦɟɧɧɭɸ Ɋ. Ɂɚɬɟɦ ɚɧɚɥɨɝɢɱɧɨ ɩɨɫɬɭɩɢɬɶ ɫ ɚ2 ɢ an- 1 ɢ ɬɚɤ ɞɚɥɟɟ, ɩɨɤɚ ɧɟ ɞɨɣɞɟɦ ɞɨ ɫɟɪɟɞɢɧɵ ɦɚɫɫɢɜɚ ɉɨɫɥɟɞɧɢɦɢ ɷɥɟɦɟɧɬɚɦɢ ɤɨɬɨɪɵɟ ɧɭɠɧɨ ɩɨɦɟɧɹɬɶ
ɦɟɫɬɚɦɢ ɛɭɞɭɬ aN/2 ɢ aN/2+1, ɟɫɥɢ N – ɱɟɬɧɨɟ ɚn/2 ɢ ɚN/2+2, ɟɫɥɢ N–ɧɟɱɟɬɧɨɟ Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɜ ɨɛɳɟɦ ɫɥɭɱɚɟ, ɰɢɤɥ ɩɨ i ɨɪɝɚɧɢɡɭɟɬɫɹ ɨɬ 1 ɞɨ N/2.
M:=N div 2; For I:=1 to M do
Begin P:=A[I];
A[I]:=A[N-I+1]; A[N-I+1]:=P;
end;
Ⱦɥɹ ɨɞɧɨɦɟɪɧɨɝɨ ɦɚɫɫɢɜɚ ɧɟɨɛɯɨɞɢɦɨ ɩɟɪɟɞɜɢɧɭɬɶ ɜɩɪɚɜɨ ɧɚ Ɇ ɩɨɡɢɰɢɣ ɷɥɟɦɟɧɬɚ ɷɬɨɝɨ ɦɚɫɫɢɜɚ, ɩɪɢ ɷɬɨɦ Ɇ ɷɥɟɦɟɧɬɨɜ ɢɡ ɤɨɧɰɚ ɦɚɫɫɢɜɚ ɩɟɪɟɦɟɳɚɸɬɫɹ ɜ ɧɚɱɚɥɨ
ɫɩɨɫɨɛ: ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɜɫɩɨɦɨɝɚɬɟɥɶɧɨɝɨ ɦɚɫɫɢɜɚ ȼ ɷɬɨɦ
ɫɥɭɱɚɟ ɪɟɲɟɧɢɟ ɫɨɫɬɨɢɬ ɢɯ ɬɪɟɯ ɷɬɚɩɨɜ , ɷɬɚɩ ©ɯɜɨɫɬª ɦɚɫɫɢɜɚ Ⱥ ɩɟɪɟɫɵɥɚɟɬɫɹ ɜɨ ɜɫɩɨɦɨɝɚɬɟɥɶɧɵɣ ɦɚɫɫɢɜ ȼ, ɬɨ
ɟɫɬɶ b1 = a4, b2 = a5 ,, ɷɬɚɩ ɜɫɟ ɨɫɬɚɜɲɢɟɫɹ ɷɥɟɦɟɧɬɵ ɦɚɫɫɢɜɚ Ⱥ ɩɟɪɟɦɟɳɚɸɬɫɹ ɧɚ Ɇ ɩɨɡɢɰɢɢ ɜɩɪɚɜɨ, ɬ.ɟ.
,,, ɷɬɚɩ ɧɚ ɦɟɫɬɨ ɩɟɪɜɵɯ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ɩɟɪɟɫɵɥɚɸɬɫɹ ɷɥɟɦɟɧɬɵ ɜɫɩɨɦɨɝɚɬɟɥɶɧɨɝɨ ɦɚɫɫɢɜɚ ȼ: ɚ1 = b1, a2 = b2,
For I:=1 to M do |
|
B[I]:=A[N-M+I]; |
{I ȫȠȎȝ} |
For I:=(N-M) downto 1 do |
|
A[I+M]:=A[I]; |
{II ȫȠȎȝ} |
For I:=1 to M do |
|
A[I]:=B[I]; |
{III ȫȠȎȝ} |
ɫɩɨɫɨɛ ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɜɫɩɨɦɨɝɚɬɟɥɶɧɨɣ ɩɟɪɟɦɟɧɧɨɣ ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɜɨ ɜɫɩɨɦɨɝɚɬɟɥɶɧɨɣ ɩɟɪɟɦɟɧɧɨɣ Ɋ ɩɟɪɟɫɵɥɚɟɬɫɹ ɩɨɫɥɟɞɧɢɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ ɡɚɬɟɦ ɜɫɟ ɷɥɟɦɟɧɬɵ ɦɚɫɫɢɜɚ ɫɞɜɢɝɚɸɬɫɹ ɜɩɪɚɜɨ ɧɚ ɨɞɧɭ ɩɨɡɢɰɢɸ Ⱦɚɥɟɟ ɧɚ ɦɟɫɬɨ ɩɟɪɜɨɝɨ ɷɥɟɦɟɧɬɚ ɦɚɫɫɢɜɚ ɩɨɦɟɳɚɟɬɫɹ ɫɨɞɟɪɠɢɦɨɟ ɜɫɩɨɦɨɝɚɬɟɥɶɧɨɣ ɩɟɪɟɦɟɧɧɨɣ ɗɬɢ ɞɟɣɫɬɜɢɹ ɩɨɜɬɨɪɹɸɬɫɹ ɜ ɰɢɤɥɟ Ɇ ɪɚɡ
For I:=1 to M do Begin
P:=A[N];
For J:=N downto 2 do A[J]:=A[J-1];
A[I@ Ɋ; end;
ɇɟɨɛɯɨɞɢɦɨ ɭɩɨɪɹɞɨɱɢɬɶ ɷɥɟɦɟɧɬɵ ɦɚɫɫɢɜɚ ɩɨ ɭɛɵɜɚɧɢɸ ɢɥɢ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ɜ ɬɨɦ ɠɟ ɦɚɫɫɢɜɟ .
ɉɟɪɜɵɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ ɫɪɚɜɧɢɜɚɟɬɫɹɢ ɫɨ ɜɫɟɦɢ ɩɨɫɥɟɞɭɸɳɢɦɢɥ , ɢ ɤɚɠɞɵɣ ɪɚɡ, ɤɨɝɞɚ ɷɬɨɬ ɷɥɟɦɟɧɬ ɛɭɞɟɬ ɦɟɧɶɲɟ ɢɥɢ ɛɨɥɶɲɟ ɤɚɤɨɝɨɥɢɛɨ ɷɥɟɦɟɧɬɚ, ɬɨ ɧɟɨɛɯɨɞɢɦɨ ɨɫɭɳɟɫɬɜɢɬɶ ɩɟɪɟɫɬɚɧɨɜɤɭ
For I:=1 to N do {ɭɩɨɪɹɞɨɱɢɜɚɧɢɟ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ} For J:=1 to N-1 do
If A[J]>A[J+1] Then Begin P:=A[J]; A[J]:=A[J+1]; A[J+1@ Ɋ; end;
Ⱦɥɹ ɭɜɟɥɢɱɟɧɢɹ ɫɤɨɪɨɫɬɢ ɩɟɪɟɫɬɚɧɨɜɤɢ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ɢɥɢ ɧɟ ɨɫɭɳɟɫɬɜɥɹɬɶ ɩɟɪɟɫɬɚɧɨɜɤɭ ɷɥɟɦɟɧɬɨɜ ɜ ɫɥɭɱɚɟ, ɟɫɥɢ ɦɚɫɫɢɜ ɭɩɨɪɹɞɨɱɟɧ ɢɫɩɨɥɶɡɭɟɬɫɹ ɚɥɝɨɪɢɬɦ
Repeat |
{ɭɩɨɪɹɞɨɱɢɜɚɧɢɟ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ} |
B:=true; |
|
For J:=1 to N-1 do
If A[J]>A[J+1] Then Begin P:=A[J];
A[J]:=A[J+1]; A[J+1@ Ɋ; B:=false;
end;
Until B;
Ⱦɥɹ ɡɚɞɚɧɧɨɝɨ ɦɚɫɫɢɜɚ ɨɩɪɟɞɟɥɢɬɶ ɹɜɥɹɟɬɫɹ ɥɢ ɨɧ ɭɩɨɪɹɞɨɱɟɧɧɵɦ ɧɚɩɪɢɦɟɪ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ȿɫɥɢ ɦɚɫɫɢɜ ɭɩɨɪɹɞɨɱɟɧ,
ɬɨ ɞɥɹ ɤɚɠɞɨɣ ɩɚɪɵ ɷɥɟɦɟɧɬɨɜ ɷɬɨɝɨ ɦɚɫɫɢɜɚ ɞɨɥɠɧɨ ɜɵɩɨɥɧɹɬɶɫɹ ɭɫɥɨɜɢɟ A[I]<A[I+1] ȿɫɥɢ ɞɥɹ ɤɚɤɨɣ – ɬɨ ɩɚɪɵ ɷɥɟɦɟɧɬɨɜ ɷɬɨ ɭɫɥɨɜɢɟ
ɧɟ ɜɵɩɨɥɧɹɟɬɫɹ, ɬɨ ɜɵɱɢɫɥɟɧɢɟ ɩɪɟɤɪɚɳɚɟɬɫɹ ɢ ɜɵɜɨɞɢɬɫɹ ɫɨɨɛɳɟɧɢɟ ©ɦɚɫɫɢɜ ɧɟɭɩɨɪɹɞɨɱɟɧª ȿɫɥɢ ɞɚɧɧɨɟ ɭɫɥɨɜɢɟ ɜɵɩɨɥɧɹɟɬɫɹ ɞɥɹ ɜɫɟɯ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ, ɬɨ ɜɵɜɨɞɢɬɫɹ ɫɨɨɛɳɟɧɢɟ ©ɦɚɫɫɢɜ ɭɩɨɪɹɞɨɱɟɧª
B:=true; {ɩɪɨɜɟɪɤɚ ɧɚ ɭɩɨɪɹɞɨɱɢɜɚɧɢɟ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ} For I:=1 to N-1 do
If A[I]>A[I+1] Then Begin B:=false; Break;
end;
If B Then Writeln(‘uporiadochen’) Else Writeln(‘neuporiadochen’);
Ⱦɥɹ ɡɚɞɚɧɧɵɯ ɞɜɭɯ ɦɚɫɫɢɜɨɜ ɨɩɪɟɞɟɥɢɬɶ ɹɜɥɹɟɬɫɹ ɥɢ ɨɧɢ ɪɚɜɧɵɦɢ ȿɫɥɢ ɦɚɫɫɢɜɵ ɪɚɜɧɵ, ɬɨ ɞɥɹ
ɤɚɠɞɨɝɨ ɷɥɟɦɟɧɬɚ ɷɬɢɯ ɦɚɫɫɢɜɨɜ ɞɨɥɠɧɨ ɜɵɩɨɥɧɹɬɶɫɹ ɭɫɥɨɜɢɟ A[I]=B[I] ȿɫɥɢ ɞɥɹ ɤɚɤɨɣ – ɬɨ ɩɚɪɵ ɷɥɟɦɟɧɬɨɜ ɷɬɨ ɭɫɥɨɜɢɟ ɧɟ
ɜɵɩɨɥɧɹɟɬɫɹ, ɬɨ ɜɵɱɢɫɥɟɧɢɟ ɩɪɟɤɪɚɳɚɟɬɫɹ ɢ ɜɵɜɨɞɢɬɫɹ ɫɨɨɛɳɟɧɢɟ ©ɦɚɫɫɢɜɵ ɧɟɪɚɜɧɵª ȿɫɥɢ ɞɚɧɧɨɟ ɭɫɥɨɜɢɟ ɜɵɩɨɥɧɹɟɬɫɹ ɞɥɹ ɜɫɟɯ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɨɜ, ɬɨ ɜɵɜɨɞɢɬɫɹ ɫɨɨɛɳɟɧɢɟ ©ɦɚɫɫɢɜɵ ɪɚɜɧɵª
B:=true;
For I:=1 to N do
If A[I]<>B[I] Then Begin B:=false; Break;
end;
If B Then Writeln(‘Ravnie A I B’) Else Writeln(‘NeRavnie A I B’);
ɉɪɨɝɪɚɦɦɢɪɨɜɚɧɢɟ ɬɢɩɨɜɵɯ ɚɥɝɨɪɢɬɦɨɜ ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɞɜɭɯɦɟɪɧɵɯ ɦɚɫɫɢɜɨɜ
ɮɪɚɝɦɟɧɬɵ ɩɪɨɝɪɚɦɦ
Ⱦɥɹ ɦɚɬɪɢɰɵ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɭɠɧɨ ɜɵɱɢɫɥɢɬɶ ɫɭɦɦɭ |
Ⱦɥɹ ɦɚɬɪɢɰɵ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɭɠɧɨ ɜɵɱɢɫɥɢɬɶ ɫɭɦɦɭ |
|
ɢɥɢ ɩɪɨɢɡɜɟɞɟɧɢɟ ɜɫɟɯ ɟɟ ɷɥɟɦɟɧɬɨɜ |
ɷɥɟɦɟɧɬɨɜ ɡɚɞɚɧɧɨɣ ɫɬɪɨɤɢ ɢɥɢ ɫɬɨɥɛɰɚ K |
|
|
|
Ⱦɥɹ ɫɬɪɨɤɢ |
|
|
S:= 0; |
For I:=1 to N do |
|
For J:=1 to M do S:=S+A[K,J]; |
|
Ⱦɥɹ ɫɬɨɥɛɰɚ: |
|
For J:=1 to M do |
|
S:= 0; |
S:=S+A[I,J]; |
ɢɥɢ P:=P*A[I,J]; |
For I:=1 to N do S:=S+A[I,K]; |
Ⱦɥɹ ɦɚɬɪɢɰɵ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɭɠɧɨ ɜɵɱɢɫɥɢɬɶ ɫɥɟɞ ɦɚɬɪɢɰɵ ɋɥɟɞɨɦ ɦɚɬɪɢɰɵ ɧɚɡɵɜɚɟɬɫɹ ɫɭɦɦɚ ɷɥɟɦɟɧɬɨɜ, ɪɚɫɩɨɥɨɠɟɧɧɵɯ ɧɚ ɝɥɚɜɧɨɣ ɞɢɚɝɨɧɚɥɢ
ȼɚɪɢɚɧɬ
S:= 0;
For I:=1 to N do For J:=1 to M do
If I=J Then S:=S+A[I,J];
ȼɚɪɢɚɧɬ :
ɇɟɨɛɯɨɞɢɦɨ ɜɵɱɢɫɥɢɬɶ ɫɭɦɦɭ ɷɥɟɦɟɧɬɨɜ ɤɚɠɞɨɣ ɫɬɪɨɤɢ ɦɚɬɪɢɰɵ Ⱥ ɪɚɡɦɟɪɨɦ NxM, ɪɟɡɭɥɶɬɚɬ ɩɨɥɭɱɢɬɶ ɜ ɜɢɞɟ ɜɟɤɬɨɪɚ ȼ ɬɟ ɜ ɜɢɞɟ ɨɞɧɨɦɟɪɧɨɝɨ ɦɚɫɫɢɜɚ ȼ).
S:= 0;
For I:=1 to N do S:=S+A[I,I];
Ⱦɥɹ ɩɨɢɫɤɚ ɜ ɦɚɫɫɢɜɟ ɷɥɟɦɟɧɬɚ ɫ ɡɚɞɚɧɧɵɦ ɡɧɚɱɟɧɢɟɦ ɢɧɞɟɤɫɚ ɡɚɬɪɚɱɢɜɚɟɬɫɹ ɨɩɪɟɞɟɥɟɧɧɨɟ ɜɪɟɦɹ ɉɨɷɬɨɦɭ ɞɥɹ ɩɨɜɵɲɟɧɢɹ ɷɮɮɟɤɬɢɜɧɨɫɬɢ ɩɪɨɝɪɚɦɦɵ ɩɪɢ ɜɵɱɢɫɥɟɧɢɢ ɫɭɦɦɵ ɷɥɟɦɟɧɬɨɜ ɤɚɠɞɨɣ ɫɬɪɨɤɢ ɢɫɩɨɥɶɡɭɟɬɫɹ ɩɪɨɫɬɚɹ ɩɟɪɟɦɟɧɧɚɹ S, ɱɬɨ ɢɫɤɥɸɱɚɟɬ ɦɧɨɝɨɤɪɚɬɧɨɟ ɨɛɪɚɳɟɧɢɟ ɤ ɷɥɟɦɟɧɬɚɦ ɦɚɫɫɢɜɚ ȼ.
ɇɟɨɛɯɨɞɢɦɨ ɩɟɪɟɫɥɚɬɶ ɷɥɟɦɟɧɬɵ ɦɚɬɪɢɰɵ A ɪɚɡɦɟɪɨɦ NxM ɜ ɨɞɧɨɦɟɪɧɵɣ ɦɚɫɫɢɜ B ɪɚɡɦɟɪɨɦ N*M ɩɨɫɬɪɨɱɧɨ ɫ ɫɨɯɪɚɧɟɧɢɟɦ ɩɨɪɹɞɤɚ ɫɥɟɞɨɜɚɧɢɹ ɷɥɟɦɟɧɬɨɜ.
ȼɚɪɢɚɧɬ :
For I:= 1 to N do Begin
S:=0;
For J:=1 to M do S:=S+A[I,J]; B[I]:=S;
end;
ȼɚɪɢɚɧɬ :
For I: = 1 to N do Begin
B [I]:=0;
For J:=1 to M do B[I]:=B[I]+A[I,J]; ɟnd;
ȼɚɪɢɚɧɬ ɇɟɨɛɯɨɞɢɦɨ ɫɨɝɥɚɫɨɜɚɬɶ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɦ ɨɛɪɚɡɨɦ ɢɧɞɟɤɫɵ ɢɫɯɨɞɧɨɝɨ ɦɚɫɫɢɜɚ Ⱥ ɢ ɮɨɪɦɢɪɭɟɦɨɝɨ ɦɚɫɫɢɜɚ B.
For I:=1 to N do
For J:=1 to M do B[(I-1)*M+J]:=A[I,J];
ȼɚɪɢɚɧɬ 2 ɂɫɩɨɥɶɡɭɟɬɫɹ ɜɫɩɨɦɨɝɚɬɟɥɶɧɚɹ ɩɟɪɟɦɟɧɧɚɹ Ʉ, ɹɜɥɹɸɳɚɹɫɹ ɢɧɞɟɤɫɨɦ ɮɨɪɦɢɪɭɟɦɨɝɨ ɦɚɫɫɢɜɚ B, ɧɚɱɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ Ʉ .
K:=0;
For I:=1 to N do
For J:=1 to M do Begin
K:= K+1; ɢɥɢ INC(K); B[K]:=A[I,J];
end;
Ⱥɥɝɨɪɢɬɦ ɚɧɚɥɨɝɢɱɧɨ ɨɞɧɨɦɟɪɧɨɦɭ ɦɚɫɫɢɜɭ ɬɨɥɶɤɨ ɜ ɞɚɧɧɨɦ ɫɥɭɱɚɟ ɧɭɠɧɨ ɞɥɹ ɤɚɠɞɨɣ ɫɬɪɨɤɢ ɪɚɫɫɦɚɬɪɢɜɚɬɶ ɷɥɟɦɟɧɬɵ ɜɫɟɯ ɫɬɨɥɛɰɨɜ ɢ ɡɚɩɨɦɢɧɚɬɶ ɞɜɚ ɢɧɞɟɤɫɚ - ɧɨɦɟɪ ɫɬɪɨɤɢ ɢ ɧɨɦɟɪ ɫɬɨɥɛɰɚ
A_max:=A[1,1]; I_max:=1; J_max:=1; For I:=1 to N do
For J:=1 to M do
IF A[I,J]>A_max Then Begin A_max:=A[I,J]; I_max:=I;
J_max:=J; end;
I_max:=1;
J_max:=1;
For I:=1 to N do For J:=1 to M do
IF A[I,J]>A[I_max,J_max] Then Begin I_max:=I;
J_max:=J; end;
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɭɞɚɥɢɬɶ ɫɬɪɨɤɭ ɫ ɧɨɦɟɪɨɦ K Ɋɟɲɟɧɢɟ ɡɚɞɚɱɢ ɚɧɚɥɨɝɢɱɧɨ ɭɞɚɥɟɧɢɸ ɷɥɟɦɟɧɬɚ ɢɡ ɨɞɧɨɦɟɪɧɨɝɨ ɦɚɫɫɢɜɚ ȼɫɟ ɫɬɪɨɤɢ, ɧɚɱɢɧɚɹ ɫ Ʉ ɩɟɪɟɦɟɳɚɸɬɫɹ ɧɚ ɨɞɧɭ ɩɨɡɢɰɢɸ ɜɜɟɪɯ Ɉɛɳɟɟ ɤɨɥɢɱɟɫɬɜɨ ɫɬɪɨɤ ɭɦɟɧɶɲɚɟɬɫɹ ɧɚ 1.
For I:=K to N–1 do For J:=1 to M do
A[I,J] Ⱥ[I+1,J];
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɜɤɥɸɱɢɬɶ ɫɬɪɨɤɭ ɫ ɧɨɦɟɪɨɦ K, ɩɪɢ ɷɬɨɦ ɜɤɥɸɱɚɟɦɚɹ ɫɬɪɨɤɚ ɩɪɟɞɫɬɚɜɥɹɟɬ ɢɡ ɫɟɛɹ ɜɟɤɬɨɪ C. Ɋɚɡɦɟɪ ɦɚɬɪɢɰɵ Ⱥ ɫɬɚɧɨɜɢɬɫɹ (N+1)xM.
Ɋɟɲɟɧɢɟ ɫɨɫɬɨɢɬ ɢɡ ɞɜɭɯ ɷɬɚɩɨɜ :
Cɬɪɨɤɢ ɦɚɬɪɢɰɵ A, ɧɚɱɢɧɚɹ ɫ ɧɨɦɟɪɚ K, ɩɟɪɟɦɟɳɚɸɬɫɹɪ ɧɚ ɨɞɧɭ ɩɨɡɢɰɢɸ ɜɧɢɡ ɩɟɪɟɦɟɳɟɧɢɟ ɨɫɭɳɟɫɬɜɥɹɟɬɫɹ ɫ ɩɨɫɥɟɞɧɟɣ ɫɬɪɨɤɢ N).
ɇɚ ɨɫɜɨɛɨɞɢɜɲɟɟɫɹ ɦɟɫɬɨ ɩɨɦɟɳɚɟɬɫɹ ɜɟɤɬɨɪ ɋ.
For I:=N downto K do |
|
For J:=1 to M do |
|
A[I+1,J]:=A[I,J]; |
{I ȫȠȎȝ} |
For J: = 1 to M do |
|
A[K,J]:=C[J]; |
{II ȫȠȎȝ} |
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɩɟɪɟɫɬɚɜɢɬɶ ɫɬɪɨɤɢ ɫ ɧɨɦɟɪɚɦɢ K ɢ L.
ɋɭɳɟɫɬɜɭɟɬ ɞɜɚ ɜɚɪɢɚɧɬɚ ɜɵɩɨɥɧɟɧɢɹ ɡɚɞɚɱɢ:
ȼɚɪɢɚɧɬ ɉɟɪɟɫɬɚɧɨɜɤɚ ɨɫɭɳɟɫɬɜɥɹɟɬɫɹ ɫ ɩɨɦɨɳɶɸ ɜɫɩɨɦɨɝɚɬɟɥɶɧɨɣ ɩɟɪɟɦɟɧɧɨɣ, ɜ ɤɨɬɨɪɭɸ ɜɪɟɦɟɧɧɨ ɩɨɦɟɳɚɟɬɫɹ ɤɚɠɞɵɣ ɷɥɟɦɟɧɬ ɨɞɧɨɣ ɢɡ ɩɟɪɟɫɬɚɜɥɹɟɦɵɯ ɫɬɪɨɤ ɉɟɪɟɫɬɚɧɨɜɤɚ ɨɫɭɳɟɫɬɜɥɹɟɬɫɹ ɜɨ ɜɫɟɯ ɫɬɨɥɛɰɚɯ ɷɬɢɯ ɞɜɭɯ ɫɬɪɨɤ
For J:=1 to M do Begin
P:=A[K,J];
A[K,J]:=A[L,J];
A[L,J]:=P;
end;
ȼɚɪɢɚɧɬ 2 ɂɫɩɨɥɶɡɭɟɬɫɹ ɜɫɩɨɦɨɝɚɬɟɥɶɧɵɣ ɨɞɧɨɦɟɪɧɵɣ ɦɚɫɫɢɜ ɋ, ɩɟɪɟɫɬɚɧɨɜɤɚ ɩɪɨɢɫɯɨɞɢɬ ɜ ɬɪɢ ɷɬɚɩɚ:
¾ɨɞɧɚ ɢɡ ɩɟɪɟɫɬɚɜɥɹɟɦɵɯ ɫɬɪɨɤ K ɰɟɥɢɤɨɦ ɩɨɦɟɳɚɟɬɫɹ ɜ ɦɚɫɫɢɜ
ɋ;
¾ɧɚ ɦɟɫɬɨ ɷɬɨɣ ɫɬɪɨɤɢ K ɩɨɦɟɳɚɟɬɫɹ ɫɬɪɨɤɚ ɫ ɧɨɦɟɪɨɦ L;
¾ɧɚ ɦɟɫɬɨ ɫɬɪɨɤɢ L ɩɨɦɟɳɚɟɬɫɹ ɫɨɞɟɪɠɢɦɨɟ ɦɚɫɫɢɜɚ ɋ.
For J:=1 to M do |
|
C[J]:=A[K,J]; |
{I ȫȠȎȝ} |
For J:=1 to M do |
|
A[K,J]:=A[L,J]; |
{II ȫȠȎȝ} |
For J:=1 to M do |
|
A[L,J]:=C[J]; |
{III ȫȠȎȝ} |
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɭɦɧɨɠɢɬɶ ɦɚɬɪɢɰɭ ɧɚ ɜɟɤɬɨɪ B ɪɚɡɦɟɪɨɦ M ȼ ɪɟɡɭɥɶɬɚɬɟ ɧɚɞɨ ɩɨɥɭɱɢɬɶ ɜɟɤɬɨɪ C ɪɚɡɦɟɪɨɦ M, ɤɚɠɞɵɣ ɷɥɟɦɟɧɬ ɤɨɬɨɪɨɝɨ ɜɵɱɢɫɥɹɟɬɫɹ ɩɨ ɮɨɪɦɭɥɟ
ȼɨɡɦɨɠɧɨ ɞɜɚ ɜɚɪɢɚɧɬɚ ɪɟɲɟɧɢɹ.
ɋ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɩɪɨɫɬɨɣ ɩɟɪɟɦɟɧɧɨɣ S ɞɥɹ ɧɚɤɨɩɥɟɧɢɹ ɫɭɦɦɵ:
For I:=1 to N do Begin
S:=0;
For J:=1 to N do S:=S+A[I,J]*B[J]; C[I]:=S;
end;
ɩɨɫɬɨɹɧɧɨɟ ɨɛɪɚɳɟɧɢɟ ɤ ɜɟɤɬɨɪɭ ɋ:
For I:=1 to N do Begin
ɋ[I]:=0;
For J:=1 to N do C[I]:=C[I]+A[I,J]*B[J];
end;
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɭɦɧɨɠɢɬɶ ɦɚɬɪɢɰɭ ɧɚ ɦɚɬɪɢɰɭ B ɪɚɡɦɟɪɨɦ MxN ȼ ɪɟɡɭɥɶɬɚɬɟ ɧɚɞɨ ɩɨɥɭɱɢɬɶ ɦɚɬɪɢɰɭ C ɪɚɡɦɟɪɨɦ NxM, ɤɚɠɞɵɣ ɷɥɟɦɟɧɬ ɤɨɬɨɪɨɣ ɜɵɱɢɫɥɹɟɬɫɹ ɩɨ ɮɨɪɦɭɥɟ
ȼɨɡɦɨɠɧɨ ɞɜɚ ɜɚɪɢɚɧɬɚ ɪɟɲɟɧɢɹ.
ɋ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɩɪɨɫɬɨɣ ɩɟɪɟɦɟɧɧɨɣ ɞɥɹ ɧɚɤɨɩɥɟɧɢɹ ɫɭɦɦɵ:
For I:=1 to N do For J:=1 to M do
Begin S:=0;
For L:=1 to M do S:=S+A[I,L]*B[L,I]; C[I,J]:=S;
end;
ɩɨɫɬɨɹɧɧɨɟ ɨɛɪɚɳɟɧɢɟ ɤ ɷɥɟɦɟɧɬɚɦ ɦɚɬɪɢɰɵ ɋ:
For I:=1 to N do For J:=1 to M do
Begin C[I,J]:=0;
For L:=1 to M do C[I,J]:=C[I,J]+A[I,L]*B[L,I];
End;
ɍɦɧɨɠɟɧɢɟ ɦɚɬɪɢɰ ɜɨɡɦɨɠɧɨ ɬɨɥɶɤɨ ɩɪɢ ɭɫɥɨɜɢɢ, ɱɬɨ ɤɨɥɢɱɟɫɬɜɨ ɫɬɪɨɤ ɨɞɧɨɣ ɫɨɜɩɚɞɚɟɬ ɫ ɤɨɥɢɱɟɫɬɜɨɦ ɫɬɨɥɛɰɨɜ ɞɪɭɝɨɣ
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɬɪɚɧɫɩɨɧɢɪɨɜɚɬɶ ɟɺ, ɬɨ ɟɫɬɶ ɩɨɦɟɧɹɬɶ ɦɟɫɬɚɦɢ ɫɬɪɨɤɢ ɫɨ ɫɬɨɥɛɰɚɦɢ Ⱦɚɧɧɨɟ ɞɟɣɫɬɜɢɟ ɜɨɡɦɨɠɧɨ, ɢɫɩɨɥɶɡɭɹ ɜɫɩɨɦɨɝɚɬɟɥɶɧɭɸ ɦɚɬɪɢɰɭ B ɪɚɡɦɟɪɨɦ MxN.
For I:=1 to N do For J:=1 to M do
B[J,I]:=A[I,J];
Ⱦɚɧɚ ɤɜɚɞɪɚɬɧɚɹ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxN, ɤɨɬɨɪɭɸ ɧɟɨɛɯɨɞɢɦɨ ɬɪɚɧɫɩɨɧɢɪɨɜɚɬɶ Ɍɪɚɧɫɩɨɧɢɪɨɜɚɧɧɭɸ ɦɚɬɪɢɰɭ ɦɨɠɧɨ ɩɨɥɭɱɢɬɶ ɢ ɜ ɢɫɯɨɞɧɨɦ ɦɚɫɫɢɜɟ Ⱥ, ɞɥɹ ɷɬɨɝɨ ɧɟɨɛɯɨɞɢɦɨ ɩɨɦɟɧɹɬɶ ɦɟɫɬɚɦɢ ɤɚɠɞɵɣ ɷɥɟɦɟɧɬ ɜɟɪɯɧɟɝɨ ɬɪɟɭɝɨɥɶɧɢɤɚ ɦɚɬɪɢɰɵ ɬɨ ɟɫɬɶ ɬɪɟɭɝɨɥɶɧɢɤ ɪɚɫɩɨɥɨɠɟɧɧɨɝɨ ɧɚɞ ɝɥɚɜɧɨɣ ɞɢɚɝɨɧɚɥɶɸ ɫ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɦ ɷɥɟɦɟɧɬɨɦ ɧɢɠɧɟɝɨ ɬɪɟɭɝɨɥɶɧɢɤɚ ɗɥɟɦɟɧɬɵ ɝɥɚɜɧɨɣ ɞɢɚɝɨɧɚɥɢ ɧɟ ɩɟɪɟɫɬɚɜɥɹɸɬɫɹ
ɉɪɢ ɩɟɪɟɫɬɚɧɨɜɤɟ ɢɫɩɨɥɶɡɭɟɬɫɹ ɜɫɩɨɦɨɝɚɬɟɥɶɧɚɹ ɩɟɪɟɦɟɧɧɚɹ Ɋ, ɜ ɤɨɬɨɪɭɸ ɜɪɟɦɟɧɧɨ ɩɨɦɟɳɚɟɬɫɹ ɨɞɢɧ ɢɡ ɩɟɪɟɫɬɚɜɥɹɟɦɵɯ ɷɥɟɦɟɧɬɨɜ.
For I:=1 to N do For J:=1 to M do
If I<J Then Begin P:=A[I,J]; A[I,J]:=A[J,I]; A[J,I]:=P;
End;
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɭɩɨɪɹɞɨɱɢɬɶ ɷɥɟɦɟɧɬɵ ɫɬɪɨɤ ɫɬɨɥɛɰɨɜ ɦɚɫɫɢɜɚ ɩɨ ɭɛɵɜɚɧɢɸ ɢɥɢ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ɜ ɬɨɦ ɠɟ ɦɚɫɫɢɜɟ. ɉɟɪɜɵɣ ɷɥɟɦɟɧɬ ɫɬɪɨɤɢ ɫɬɨɥɛɰɚ ɦɚɫɫɢɜɚ ɫɪɚɜɧɢɜɚɟɬɫɹ ɫɨ ɜɫɟɦɢ ɩɨɫɥɟɞɭɸɳɢɦɢ, ɢ ɤɚɠɞɵɣ ɪɚɡ, ɤɨɝɞɚ ɷɬɨɬ ɷɥɟɦɟɧɬ ɛɭɞɟɬ ɦɟɧɶɲɟɢɥɢ ɛɨɥɶɲɟ ɤɚɤɨɝɨ-ɥɢɛɨ ɷɥɟɦɟɧɬɚ, ɬɨ ɧɟɨɛɯɨɞɢɦɨ ɨɫɭɳɟɫɬɜɢɬɶ ɩɟɪɟɫɬɚɧɨɜɤɭ
For I:=1 to N do {ɭɩɨɪɹɞɨɱɢɜɚɧɢɟ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ɷɥɟɦɟɧɬɨɜ ɫɬɪɨɤ} For K:=1 to M do
For J:=1 to M-1 do
If A[I,J]>A[I,J+1] Then Begin P:=A[I,J];
A[I,J]:=A[I,J+1]; A[I,J+1@ Ɋ;
end;
Ⱦɥɹ ɭɜɟɥɢɱɟɧɢɹ ɫɤɨɪɨɫɬɢ ɩɟɪɟɫɬɚɧɨɜɤɢ ɷɥɟɦɟɧɬɨɜ ɫɬɪɨɤ ɫɬɨɥɛɰɨɜ ɦɚɫɫɢɜɚ ɢɥɢ ɧɟ ɨɫɭɳɟɫɬɜɥɹɬɶ ɩɟɪɟɫɬɚɧɨɜɤɭ ɷɥɟɦɟɧɬɨɜ ɜ ɫɥɭɱɚɟ, ɟɫɥɢ ɦɚɫɫɢɜ ɭɩɨɪɹɞɨɱɟɧ ɢɫɩɨɥɶɡɭɟɬɫɹ ɚɥɝɨɪɢɬɦ
For I:=1 to N do {ɭɩɨɪɹɞɨɱɢɜɚɧɢɟ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ɷɥɟɦɟɧɬɨɜ ɫɬɪɨɤ} Repeat
B:=true;
For J:=1 to M-1 do
If A[I,J]>A[I,J+1] Then Begin P:=A[I,J]; A[I,J]:=A[J+1]; A[I,J+1@ Ɋ; B:=false;
end;
Until B;
Ⱦɚɧɚ ɦɚɬɪɢɰɚ Ⱥ ɪɚɡɦɟɪɨɦ NxM ɧɟɨɛɯɨɞɢɦɨ ɨɩɪɟɞɟɥɢɬɶ ɹɜɥɹɟɬɫɹ ɥɢ ɷɥɟɦɟɧɬɵ ɫɬɪɨɤ ɭɩɨɪɹɞɨɱɟɧɧɵɦɢ ɧɚɩɪɢɦɟɪ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ ȿɫɥɢ ɷɥɟɦɟɧɬɵ ɫɬɪɨɤ ɦɚɫɫɢɜɚ ɭɩɨɪɹɞɨɱɟɧɵ, ɬɨ
ɞɥɹ ɤɚɠɞɨɣ ɩɚɪɵ ɷɥɟɦɟɧɬɨɜ ɫɬɪɨɤ ɷɬɨɝɨ ɦɚɫɫɢɜɚ ɞɨɥɠɧɨ ɜɵɩɨɥɧɹɬɶɫɹ ɭɫɥɨɜɢɟ A[I,J]<A[I,J+1] ȿɫɥɢ ɞɥɹ ɤɚɤɨɣ – ɬɨ ɩɚɪɵ ɷɥɟɦɟɧɬɨɜ ɫɬɪɨɤ ɷɬɨ ɭɫɥɨɜɢɟ ɧɟ ɜɵɩɨɥɧɹɟɬɫɹ, ɬɨ ɜɵɱɢɫɥɟɧɢɟ ɩɪɟɤɪɚɳɚɟɬɫɹ ɢ ɜɵɜɨɞɢɬɫɹ ɫɨɨɛɳɟɧɢɟ ©ɦɚɫɫɢɜ ɧɟɭɩɨɪɹɞɨɱɟɧ ɩɨ ɫɬɪɨɤɚɦª ȿɫɥɢ ɞɚɧɧɨɟ ɭɫɥɨɜɢɟ ɜɵɩɨɥɧɹɟɬɫɹ ɞɥɹ ɜɫɟɯ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ, ɬɨ ɜɵɜɨɞɢɬɫɹ ɫɨɨɛɳɟɧɢɟ ©ɦɚɫɫɢɜ ɭɩɨɪɹɞɨɱɟɧ ɩɨ ɫɬɪɨɤɚɦª
B:=true; {ɩɪɨɜɟɪɤɚ ɧɚ ɭɩɨɪɹɞɨɱɢɜɚɧɢɟ ɷɥɟɦɟɧɬɨɜ ɫɬɪɨɤ ɩɨ ɜɨɡɪɚɫɬɚɧɢɸ}
For I:=1 to N do Begin
For J:=1 to M-1 do If A[I,J]>A[I,J+1] Then Begin B:=false; Break;
end;
If B=false Then Break; End;
If B Then Writeln(‘uporiadochen po string’) Else Writeln(‘neuporiadochen po string’);