ΠΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π°
ΠΠΎΠ΄Ρ Π₯ΡΠΌΠΈΠΈΠ½Π³Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ» ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ ΡΠ΅ΠΆΠ΅, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ . Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π΅ΡΠ°/Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π’Π΅ΠΎΡΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ²Π΅Π΄Π΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΠ΅ΠΊΠΎΠ΄Π΅ΡΠ° Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π°.
- 1) ΠΠ° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΏΡΠΈΠ½ΡΡΠΎΠ΅ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π±Π΅Π·
- 2) ΠΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½
- 3) ΠΡΠ»ΠΈ ΠΎΡΡΠ°ΡΠΊΠ° Π½Π΅Ρ, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ — ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
- 4) ΠΡΠ»ΠΈ ΠΎΡΡΠ°ΡΠΎΠΊ Π΅ΡΡΡ, ΡΠΎ ΠΎΡΡΠ°ΡΠΎΠΊ Π΅ΡΡΡ ΡΠΈΠ½Π΄ΡΠΎΠΌ
- 5) Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ½Π΄ΡΠΎΠΌΠ° Π±Π»ΠΎΠΊ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π½ΠΎΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°
- 6) ΠΡΠΈΠ±ΠΎΡΠ½ΡΠΉ Π±ΠΈΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ mod 2 Ρ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ
- 7) ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½
- 8) Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ΄Ρ Π₯ΡΠΌΠΈΠΈΠ½Π³Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ» ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ ΡΠ΅ΠΆΠ΅, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ .
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π΅ΡΠ°/Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
- 1. ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΡΠ°ΠΉΡΠ° https://ru.wikipedia.org.
- 2. Π£ΡΠ΅Π±. ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ² / Π. Π. ΠΠ°ΡΠ°Π½ΠΈΠ½, Π. Π. ΠΡΡΠ°Π²Π»Π΅Π², Π‘. Π. ΠΡΠ½Π΅Π³ΠΈΠ½. -Π.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·Ρ, 2001. — ISBN: 5−256−1 475−7.
- 3. Π€Π΅Π΅Ρ Π. ΠΠ΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Ρ ΡΠ²ΡΠ·Ρ. ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΡΠΈΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΏΠ΅ΠΊΡΡΠ°. ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·Ρ, 2000. ISBN 5−256−1 444−7.
- 4. ΠΠ»Π°ΡΠΊ ΠΠΆ., ΠΌΠ»., ΠΠ΅ΠΉΠ½ ΠΠΆ. ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·Ρ, 1987. — 392 Ρ.
- 5. Π’Π΅ΠΎΡΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: Π£ΡΠ΅Π±. Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²/ Π. Π. ΠΡΠΊΠΎ, Π. Π. ΠΠ»ΠΎΠ²ΡΠΊΠΈΠΉ, Π. Π. ΠΠΎΡΠΆΠΈΠΊ, Π. Π. ΠΠ°Π·Π°ΡΠΎΠ²; ΠΠΎΠ΄ ΡΠ΅Π΄. Π. Π. ΠΠ»ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ. — Π: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·Ρ, 1999.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ. Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ DevC++, ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++.
#include.
using namespace std;
//ΠΠΎΠ΄Π΅Ρ Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ.
//Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π°.
int main ().
{.
bool Ks [1] [7]= {0, 0, 0, 0, 0, 0, 0};
bool Pm [4] [7]=.
{.
{1, 1, 0, 1, 0, 0, 0},.
{0, 1, 1, 0, 1, 0, 0},.
{0, 0, 1, 1, 0, 1, 0},.
{0, 0, 0, 1, 1, 0, 1}.
};
bool Is [1] [4]= {0, 1, 1, 0};
cout ««Informacionnoe slovo: «;
for (int i = 0; i< 1; i++).
for (int j = 0; j< 4; j++).
cout «Is [i] [j];
cout «endl;
for (int i = 0; i< 1; i++).
for (int j = 0; j< 7; j++).
{.
bool x = 0;
for (int k = 0; k< 4; k++) // ΠΠ»ΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ.
x ^= Is [i] [k]* Pm [k] [j]; // Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½.
Ks [i] [j]= x;
}.
cout ««Kodovoe slovo «;
for (int i = 0; i< 1; i++).
for (int j = 0; j< 7; j++).
cout «Ks [i] [j];
return 0;
}.
// ΠΠ΅ΠΊΠΎΠ΄Π΅Ρ Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π°.
// ΠΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΎΠ΄Π½Ρ ΠΎΡΠΈΠ±ΠΊΡ.
using namespace std;
int main ().
{.
bool Ks [7]= { 0, 1, 0, 1, 1, 1, 1 };
bool Pm [7]= { 1, 1, 0, 1, 0, 0, 0 };
bool Is [4]= { 0, 0, 0, 0 };
bool Del [7]= { 0, 0, 0, 0, 0, 0, 0 };
bool Sind [7]= { 0, 0, 0, 0, 0, 0, 0 };
bool Err [7]= { 0, 0, 0, 0, 0, 0, 0 };
int k = 0;
int l = 0;
int m = 0;
int n = 0;
cout ««Kodovoe slovo, prinyatoe s oshibkoj «;
for (int i = 0; i < 7; i++).
cout «Ks [i];
cout «endl;
// ΠΠ°ΡΠ°Π»ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ½Π΄ΡΠΎΠΌΠ°.
for (int i = 0; i < 7; i++).
{.
if (Ks [i]== 1).
k = i;
}.
swap (Pm [0], Pm [k]);
if (k == 4).
{ swap (Pm [2], Pm [3]); }.
if (k == 5).
{ swap (Pm [1], Pm [2]); }.
if (k == 6).
{.
swap (Pm [3], Pm [4]);
swap (Pm [1], Pm [3]);
}.
for (int i = 0; i < 7; i++).
{.
Del [i]= Ks [i]- Pm [i];
}.
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
if (Del≠ Pm).
{.
for (int i = 0; i < 7; i++).
{.
if (Del [i]== 1).
l = i;
}.
if (l == 4).
{.
swap (Pm [0], Pm [4]);
swap (Pm [2], Pm [3]);
}.
if (l == 5).
{.
swap (Pm [0], Pm [5]);
swap (Pm [1], Pm [2]);
}.
if (l == 3).
{.
for (int j = 0; j < 7; j++).
{.
Del [j]= Del [j]- Pm [j];
if (Del [j]== 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1;
}.
}.
}.
if (l < 3).
{.
Sind [0]= Del [0]; Sind [1]= Sind [1]; Sind [2]= Sind [2];
}.
if (l == 0).
{.
Is [k — 3]= 1;
}.
}.
for (int i = 0; i < 7; i++).
Del [i]= Del [i]- Pm [i];
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
if (Del≠ Pm).
{.
for (int i = 0; i < 7; i++).
{.
if (Del [i]== 1).
m = i;
}.
if (m == 4).
{.
swap (Pm [0], Pm [4]);
swap (Pm [2], Pm [3]);
}.
if (m == 3).
{.
for (int j = 0; j < 7; j++).
{.
Del [j]= Del [j]- Pm [j];
if (Del [j]== 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1; Is [m — 3]= 1;
}.
else.
{.
Sind [0]= Del [0]; Sind [1]= Del [1]; Sind [2]= Del [2];
}.
}.
}.
if (m < 3).
{.
Sind [0]= Del [0]; Sind [1]= Del [1]; Sind [2]= Del [2];
}.
if (m == 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1;
}.
}.
for (int i = 0; i < 7; i++).
Del [i]= Del [i]- Pm [i];
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
if (Del≠ Pm).
{.
for (int i = 0; i < 7; i++).
{.
if (Del [i]== 1).
n = i;
}.
if (n == 3).
{.
for (int j = 0; j < 7; j++).
{.
Del [j]= Del [j]- Pm [j];
if (Del [j]== 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1; Is [m — 3]= 1; Is [n — 3];
}.
else.
{.
Sind [0]= Del [0]; Sind [1]= Del [1]; Sind [2]= Del [2];
}.
}.
}.
if (n < 3).
{.
Sind [0]= Del [0]; Sind [1]= Del [1]; Sind [2]= Del [2];
}.
}.
// ΠΠΎΠ½Π΅Ρ Π±Π»ΠΎΠΊΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠ½Π΄ΡΠΎΠΌΠ°.
cout ««Sindrom: «;
for (int i = 0; i < 3; i++).
cout «Sind [i];
cout «endl;
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
// ΠΠ°ΡΠ°Π»ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ.
if (Sind [0]== 1, Sind [1]== 0, Sind [2]== 0).
{ Err [0]= 1; }.
else if (Sind [0]== 0, Sind [1]== 1, Sind [2]== 0).
{ Err [1]= 1; }.
//if (Sind [0]== 0, Sind [1]== 0, Sind [2]== 1).
//{Err [2]= 1;}.
if (Sind≠ 0).
{.
swap (Sind [2], Sind [3]);
swap (Sind [1], Sind [2]);
swap (Sind [0], Sind [1]);
for (int i = 0; i < 7; i++).
{.
Sind [i]= Sind [i]- Pm [i];
}.
for (int i = 0; i < 7; i++).
{.
int count = 0;
if (Sind [i]== 1).
count++;
if (count <= 1).
{ Err [7−1]= 1; }.
else.
{.
Pm [0]= 0; Pm [1]= 1; Pm [2]= 1; Pm [3]= 0; Pm [4]= 1; Pm [5]= 0; Pm [6]= 0;
swap (Sind [2], Sind [4]);
swap (Sind [1], Sind [3]);
swap (Sind [0], Sind [2]);
for (int i = 0; i < 7; i++).
{.
Sind [i]= Sind [i]- Pm [i];
}.
for (int i = 0; i < 7; i++).
{.
int count = 0;
if (Sind [i]== 1).
count++;
if (count <= 1).
{ Err [7−2]= 1; }.
else.
{.
Pm [0]= 0; Pm [1]= 0; Pm [2]= 1; Pm [3]= 1; Pm [4]= 0; Pm [5]= 1; Pm [6]= 0;
swap (Sind [2], Sind [5]);
swap (Sind [1], Sind [4]);
swap (Sind [0], Sind [3]);
for (int i = 0; i < 7; i++).
{.
Sind [i]= Sind [i]- Pm [i];
}.
for (int i = 0; i < 7; i++).
{.
int count = 0;
if (Sind [i]== 1).
count++;
if (count <= 1).
{ Err [7−3]= 1; }.
else.
{.
Pm [0]= 0; Pm [1]= 0; Pm [2]= 0; Pm [3]= 1; Pm [4]= 1; Pm [5]= 0; Pm [6]= 1;
swap (Sind [2], Sind [5]);
swap (Sind [1], Sind [4]);
swap (Sind [0], Sind [3]);
for (int i = 0; i < 7; i++).
{.
Sind [i]= Sind [i]- Pm [i];
}.
for (int i = 0; i < 7; i++).
{.
int count = 0;
if (Sind [i]== 1).
count++;
if (count <= 1).
{ Err [7−4]= 1; }.
}.
}.
}.
}.
}.
}.
}.
}.
// ΠΠΎΠ½Π΅Ρ Π±Π»ΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
for (int i = 0; i < 7; i++).
Ks [i]= Ks [i]^ Err [i]; // ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ.
cout ««Ispravlennoe kodovoe slovo: «;
for (int i = 0; i < 7; i++).
cout «Ks [i];
cout «endl;
k = 0;
l = 0;
m = 0;
n = 0;
Del [0]= 0; Del [1]= 0; Del [2]= 0; Del [3]= 0; Del [4]= 0; Del [5]= 0; Del [6]= 0;
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
Is [0]= 0; Is [1]= 0; Is [2]= 0; Is [3]= 0;
// ΠΡΠΎΡΠΎΠΉ Π±Π»ΠΎΠΊ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½.
// ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°.
for (int i = 0; i < 7; i++).
{.
if (Ks [i]== 1).
k = i;
}.
swap (Pm [0], Pm [k]);
if (k == 4).
{ swap (Pm [2], Pm [3]); }.
if (k == 5).
{ swap (Pm [1], Pm [2]); }.
if (k == 6).
{.
swap (Pm [3], Pm [4]);
swap (Pm [1], Pm [3]);
}.
for (int i = 0; i < 7; i++).
{.
Del [i]= Ks [i]- Pm [i];
}.
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
if (Del≠ Pm).
{.
for (int i = 0; i < 7; i++).
{.
if (Del [i]== 1).
l = i;
}.
if (l == 4).
{.
swap (Pm [0], Pm [4]);
swap (Pm [2], Pm [3]);
}.
if (l == 5).
{.
swap (Pm [0], Pm [5]);
swap (Pm [1], Pm [2]);
}.
if (l == 3).
{.
for (int j = 0; j < 7; j++).
{.
Del [j]= Del [j]- Pm [j];
if (Del [j]== 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1;
}.
}.
}.
}.
for (int i = 0; i < 7; i++).
Del [i]= Del [i]- Pm [i];
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
if (Del≠ Pm).
{.
for (int i = 0; i < 7; i++).
{.
if (Del [i]== 1).
m = i;
}.
if (m == 4).
{.
swap (Pm [0], Pm [4]);
swap (Pm [2], Pm [3]);
}.
if (m == 3).
{.
for (int j = 0; j < 7; j++).
{.
Del [j]= Del [j]- Pm [j];
if (Del [j]== 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1; Is [m — 3]= 1;
}.
}.
}.
}.
for (int i = 0; i < 7; i++).
Del [i]= Del [i]- Pm [i];
Pm [0]= 1; Pm [1]= 1; Pm [2]= 0; Pm [3]= 1; Pm [4]= 0; Pm [5]= 0; Pm [6]= 0;
if (Del≠ Pm).
{.
for (int i = 0; i < 7; i++).
{.
if (Del [i]== 1).
n = i;
}.
if (n == 3).
{.
for (int j = 0; j < 7; j++).
{.
Del [j]= Del [j]- Pm [j];
if (Del [j]== 0).
{.
Is [k — 3]= 1; Is [l — 3]= 1; Is [m — 3]= 1; Is [n — 3];
}.
}.
}.
}.
// ΠΠΎΠ½Π΅Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»Π΅Π½ΠΎΠ².
// ΠΡΠ²ΠΎΠ΄ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°.
cout ««Informacionnoe slovo: «;
for (int i = 0; i < 4; i++).
cout «Is [i];
}.