Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции 1-4 (2 семестр)

.pdf
Скачиваний:
14
Добавлен:
12.03.2015
Размер:
4.11 Mб
Скачать

ɋɥɟɞɨɜɚɬɟɥɶɧɨ ɞɥɹ ɨɛɨɡɧɚɱɟɧɢɹ ɢɧɞɟɤɫɚ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ȼ ɜɜɨɞɢɬɫɹ ɞɪɭɝɚɹ ɩɟɪɟɦɟɧɧɚɹ – 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’);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]