Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΡΠ²ΠΎΠ΄ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅ΡΠ΅Π· Π΄Π²Π° ΠΏΡΠΎΠ±Π΅Π»Π°. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠΊΡΠ°Π½Π°. */. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++, Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Haskell. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎ ΡΡΡΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ svap ΠΈ m_sort. Π’ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ priznak ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠΎΠ»Π°Ρ Π²Π΅Π΄Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΈΠΏΠ° Pascal ΠΈ Π‘ΠΈ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΈ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++ [4], Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ [2], ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Haskell [3].
ΠΠ°Π΄Π°ΡΠ°. ΠΠ°Π½ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ Π½Π΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++. ΠΠ΄Π΅ΡΡ ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎ Π½Π΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΠ΅ΡΠΈΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
#include.
#include.
/*.
ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² ΠΠ° ΡΠ·ΡΠΊΠ΅ Π‘++ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠ»Π°ΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ. Π΄. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° iostream. h ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ cin ΠΈ cout, ΠΊΠΎΡΠΎΡΡΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ . ΠΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° conio. h> ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ int getch (void), ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. */.
void main () {.
/* main () — ΡΡΠΎ Π³Π»Π°Π²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ */.
int n;
// ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ n ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°.
cout<< «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°: «;
cin>>n;
/* ΠΠ»Ρ Π²Π²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ cin ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° iostream. h */.
double *mas=new double [n];
// ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
cout<< «ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°: «;
/* ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ cout ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° iostream. h */.
int j;
for (j=0; j.
cout<<οΏ½"ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² mas ["<<οΏ½"]=";
cin>>mas[j];
}.
// ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ «ΠΏΡΠ·ΡΡΡΠΊΠ°» [1].
// ΠΠ΄Π΅ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
int p=n;
int flag;
double m;
do {.
flag=0;
// Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° flag Π²Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ.
for (j=0; j.
/*ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΈΠΊΠ» Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° */.
if (mas[j]>mas [j+1]) {.
m=mas[j]; mas[j]=mas [j+1]; mas [j+1]=m;
/* ΠΡΠ»ΠΈ j-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ j+1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ m */.
flag=1;
/* ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° flag ΡΠ°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ */.
}.
p -;
} while (flag);
/* ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° flag ΡΠ°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, Ρ. Π΅. Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΌΠ΅Π½ΡΠ»ΠΈ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠΈΠΊΠ» ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ Π΅ΡΡ ΡΠ°Π· */.
cout <<οΏ½" ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²: «;
for (j=0; j.
cout <<<οΏ½"";
/* ΠΡΠ²ΠΎΠ΄ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅ΡΠ΅Π· Π΄Π²Π° ΠΏΡΠΎΠ±Π΅Π»Π°. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠΊΡΠ°Π½Π°. */.
getch ();
// ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π·Π°Π΄Π΅ΡΠΆΠΊΡ.
}.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ.
const n=15;
// ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ n, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°.
var x: array [1.n] of real;
// ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ .
m: real;
j, p: integer;
f: boolean;
// ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
BEGIN.
writeln ('ΠΠ²ΠΎΠ΄ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°');
for j:=1 to n do.
begin.
write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° x [', j, ']= ');
readln (x[j]);
end;
writeln;
p:=n;
repeat.
{ΠΠ°ΡΠ°Π»ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠΈΠΊΠ»Π°}.
f:=true;
{ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ f ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π°Π³Π°}.
for j:=1 to p-1 do.
{ΠΠ°ΡΠ°Π»ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΈΠΊΠ»Π°}.
if x[j]>x [j+1] then.
{Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°}.
begin.
m:=x[j]; x[j]: =x [j+1]; x [j+1]: =m;
f:=false;
end;
{ΠΠΎΠ½Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΈΠΊΠ»Π°}.
p:=p-1;
until f;
{ΠΠΎΠ½Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠΈΠΊΠ»Π°}.
writeln ('ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²');
for j:=1 to n do write (x[j]: 2:2,' ');
{ΠΡΠ²ΠΎΠ΄ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΡΠΎΠΊΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»}.
readln;
end.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Haskell. ΠΠΎΠΎΠ±ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Haskell ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΡΡΠ°ΡΡΠ΅ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ «ΠΏΡΠ·ΡΡΡΠΊΠ°» ΠΈ ΠΏΡΠΈΡΠ΅ΠΌ ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Π‘++ ΠΈ Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°Π²ΡΠΎΡ ΡΡΠ°Π²ΠΈΡ Π·Π°Π΄Π°ΡΡ, ΡΡΠΎΠ±Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Haskell ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡ ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘ ΡΡΠΎΠΉ ΡΠ΅Π»ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎ ΡΡΡΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ svap ΠΈ m_sort. Π’ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ priznak ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎΠ±Ρ ΡΠΏΡΡΡΠ°ΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
svap [m] f a= (f, a++[m]).
svap (x:y:m) f a= if x>y then svap (x:m) False (a++[y]) else svap (y:m) f (a++[x]).
priznak m = svap m True [].
Π€ΡΠ½ΠΊΡΠΈΡ svap Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π°, Π° Π½Π° Π²ΡΠΎΡΠΎΠΌ — ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π€Π»Π°Π³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±ΡΠ»Π° Π»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Π° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ°.
Svap ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ, Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠΎΡΡΠΈΠΉ Π»Π΅Π²Π΅Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΡΠΉ, ΡΠΎ ΠΏΡΠ°Π²ΡΠΉ ΠΈ Π»Π΅Π²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ»Π°Π³ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «False». ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΌΠ΅ΡΡΠΎ. ΠΡΠ»ΠΈ ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΠ°Π²ΡΠΉ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΌΠ΅ΡΡΠΎ. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ svap ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (True, ΡΠΏΠΈΡΠΎΠΊ).
m_sort m= if (fst (priznak m)==False) then m_sort (snd (priznak m)).
else snd (priznak m).
Π€ΡΠ½ΠΊΡΠΈΡ m_sort Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ priznak Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ° Π½Π΅ Π²Π΅ΡΠ½Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠΈΠΏΠ° (True, ΡΠΏΠΈΡΠΎΠΊ).
ΠΡΠ²ΠΎΠ΄. Π ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π² ΡΠΊΠΎΠ»Π°Ρ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Haskell.
ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ².
- 1. ΠΠΈΡΡ Π. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ . — Π.: ΠΠΈΡ, 1989. — 406 Ρ.
- 2. ΠΡΠ°Π΄ΠΈ ΠΡΡ. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ / ΠΠ΅Ρ. c Π°Π½Π³Π». — Π.: ΠΠΎΠ½ΠΊΠΎΡΠ΄, 1992. — 519 c.
- 3. Π₯Π΅Π½Π΄Π΅ΡΡΠΎΠ½ Π. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π.: ΠΠΈΡ, 2003. 371 Ρ.
- 4. Π₯ΡΡΠ°ΠΈΠ½ΠΎΠ², Π. Π. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ Π½Π° ΠΠΠ. Π‘ΡΡΡΠΊΡΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ / Π‘ΡΠ΅ΡΠ»ΠΈΡΠ°ΠΌΠ°ΠΊ: Π‘ΡΠ΅ΡΠ»ΠΈΡΠ°ΠΌΠ°ΠΊΡΠΊΠΈΠΉ ΡΠΈΠ»ΠΈΠ°Π» ΠΠ°ΡΠΠ£, 2014. 110 Ρ.