ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ большой Β«ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉΒ» Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΎΠΏΠΈΡΠ°Π½Ρ‹ всС частныС случаи дСлСния. Если ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число мСньшС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ — Ρ‚ΠΎ ΡΡ€Π°Π·Ρƒ выводится Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния 0, остаток — ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 0 Π½Π° 0, выводится сообщСниС: «ΠΠ΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π›ΡŽΠ±ΠΎΠ΅ число Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅,» Ρ‚. Π΅. ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» со Π²ΡΠ΅ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ число 2, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ максимальноС Π² Π΄Π°Π½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ноль Ρ‚ΠΎΠ»ΡŒΠΊΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ большой Β«ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉΒ» Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ΡΠΊΠΈΠΉ ГосударствСнный ΠŸΠΎΠ»ΠΈΡ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ УнивСрситСт Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Π’Π΅Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ (ΠΏΡ€ΠΈ ЦНИИ РВК) ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

«ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ большой „ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ“ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ»

Π Π°Π±ΠΎΡ‚Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: ΠŸΠΎΠ΄ΠΎΡ€ΠΎΠ²Π° А. Π―.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»: Востров А.Π’.

Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ 2013

1. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

2. РСализация Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠ°Π»ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ

2.1 РСализация построСния Ρ‚Π°Π±Π»ΠΈΡ† слоТСния ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

2.2 РСализация построСния Ρ‚Π°Π±Π»ΠΈΡ† умноТСния ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ

3. РСализация арифмСтичСских дСйствий

3.1 РСализация слоТСния ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚ания

3.2 РСализация умноТСния

3.3 РСализация дСлСния

3.4 РСализация сравнСния Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ большой «ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ» Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ i;+,*> (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 8 разрядов) для Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… дСйствий (+,-,*,/) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Π»ΠΎΠΉ «ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ» Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, Π³Π΄Π΅ Π·Π°Π΄Π°Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ «+1» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся свойства коммутативности (+,*), ассоциативности (+), дистрибутивности * ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ +, Π·Π°Π΄Π°Π½Ρ‹ аддитивная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° «0» ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ипликативная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° «1», Ρ…*0=0.

По ΠΆΠ΅Π»Π°Π½ΠΈΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ поиск ΠΠžΠ” для Π΄Π²ΡƒΡ… чисСл.

β„–

Zi

+1

Z9

;

1. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

1. Алгоритм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТит Π² ΡΠ΅Π±Π΅ построСниС Ρ‚Π°Π±Π»ΠΈΡ† (Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ «+1») слоТСния, умноТСния, пСрСноса ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ.

2. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт стандартныС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (+, -, *, /). На Π²Ρ…ΠΎΠ΄ бСрСтся Π΄Π²Π° числа ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами.

2. РСализация Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠ°Π»ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ

2.1 РСализация построСния Ρ‚Π°Π±Π»ΠΈΡ† слоТСния ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

void SetPlus (int a, int b)

{

int n=0;

int temp=a;

do

{

temp=Find (temp);

n++;

}

while (temp≠0);

temp=b;

for (int i=0; i

temp=Plus[1][temp];

if (temp==0 && a≠0)

PlusP[a][b]=1;

}

Plus[a][b]=temp;

}

На Π²Ρ…ΠΎΠ΄ функция Π±Π΅Ρ€Π΅Ρ‚ Π΄Π²Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ†ΠΈΡ„Ρ€Π° раскладываСтся Π½Π° ΡΡƒΠΌΠΌΡƒ Π΅Π΄ΠΈΠ½ΠΈΡ†, ΠΈ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΈΡ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ прибавляСтся ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ числу ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ «+1». Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΈΡ… ΡΡƒΠΌΠΌΠ° Π² Π½Π°ΡˆΠ΅ΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅, которая вносится Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ слоТСния ΠΈ Π΅Π³ΠΎ дополнСния ΠΈΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

2.2 РСализация построСния Ρ‚Π°Π±Π»ΠΈΡ† умноТСния ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ

void SetMult (int a, int b)

{

int temp=0, tempB=b;

while (tempB>0)

{

temp=Summ (temp, a, 1);

tempB=Summ (tempB, 1,0);

}

Mult[a][b]=temp%10;

MultP[a][b]=(b==0)?0:temp/10;

}

На Π²Ρ…ΠΎΠ΄ бСрСтся Π΄Π²Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹. ΠŸΡ€ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠΈ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ прибавляСтся пСрвая Ρ†ΠΈΡ„Ρ€Π°, это происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число Π½Π΅ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ся Π½Π° ΡΡƒΠΌΠΌΡƒ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‚. Π΅. ΠΏΠΎΠΊΠ° tempB Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 0. Π’. Π΅. ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ прСдставлСно ΠΊΠ°ΠΊ сумма ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ n Ρ€Π°Π·, Π³Π΄Π΅ n — количСство Π΅Π΄ΠΈΠ½ΠΈΡ†, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Π»ΠΎΠΆΠΈΠ»Π°ΡΡŒ вторая Ρ†ΠΈΡ„Ρ€Π°.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡˆΠ΅ΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вносится Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния ΠΈ Π΅Π³ΠΎ дополнСния ΠΈΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

3. РСализация арифмСтичСских дСйствий

3.1 РСализация слоТСния ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚ания

int Summ (int a, int b, bool p)

{

int rez=0, bp=0;

int ostA=a, ostB=b, tempA, tempB;

int i=1;

for (i; ostA>0 || ostB>0; i*=10)

{

tempA=ostA%10;

tempB=(p)?ostB%10:ObratPlus (ostB%10);

rez+=Plus[Plus[tempA][tempB]][bp]*i;

if (p==true)

bp=PlusP[tempA][tempB]+PlusP[Plus[tempA][tempA]][bp];

else

{

if (Sravn (ostB%10, tempA)||(tempA==ostB%10 && bp≠0))

{

bp=2;

}

else bp=0;

}

ostA/=10;

ostB/=10;

}

rez+=bp*i;

return rez;

На Π²Ρ…ΠΎΠ΄ функция ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄Π²ΡƒΡ… чисСл, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ p, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΡƒΡŽ Π·Π° Ρ‚ΠΎ, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ числа Π½Π°Π΄ΠΎ, ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅: Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ происходит поразрядно, начиная с ΠΌΠ»Π°Π΄ΡˆΠ΅Π³ΠΎ разряда, ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ слоТСния. К Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ прибавляСтся Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ суммы ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ разряда (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½ΠΎΠ΅ 0). Π‘Π°ΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ вычисляСтся ΠΊΠ°ΠΊ сумма Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ чисСл Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ разряда.

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅: ВыполняСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ слоТСнию, Π½ΠΎ ΠΊ Ρ†ΠΈΡ„Ρ€Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа прибавляСтся Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ 0 Ρ†ΠΈΡ„Ρ€Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа. ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ ΠΏΡ€ΠΈ этом, Ρ€Π°Π²Π½Ρ‹ΠΉ «-1» (Ρ‚.Π΅. максимальной Ρ†ΠΈΡ„Ρ€Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅), Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ· ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ Π²Ρ‹Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ (Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях пСрСнос Ρ€Π°Π²Π΅Π½ 0).

3.2 РСализация умноТСния

int Umnog (int a, int b)

{

int REZ=0;

int ostB=b;

for (int j=1; ostB>0; j*=10)

{

int tempB=ostB%10;

int tempREZ=0;

int ostA=a;

int i=1;

int dopU=0;

for (i; ostA>0; i*=10)

{

int tempA=ostA%10;

int tempDop=Summ (Mult[tempA][tempB], dopU, 1);

tempREZ+=tempDop%10*i;

dopU=Summ (tempDop/10, MultP[tempA][tempB], 1);

ostA/=10;

}

tempREZ+=dopU*i;

REZ=Summ (REZ, tempREZ*j, 1);

ostB/=10;

}

return REZ;

}

На Π²Ρ…ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ΄Π΅Ρ‚ Π΄Π²Π° числа. Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ происходит поразрядно, это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 10. КаТдая Ρ†ΠΈΡ„Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа умноТаСтся Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ прибавляСтся пСрСнос ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ разряда. ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ разряда Ρ€Π°Π²Π΅Π½ пСрСносу произвСдСния Π΅Π³ΠΎ Ρ†ΠΈΡ„Ρ€ плюс пСрСнос суммы Π΅Π³ΠΎ произвСдСния ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° с ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ разряда.

3.3 РСализация дСлСния

int Delen (int a, int b, int* mod)

{

if (Sravn (b, a))

{

*mod=a;

return 0;

}

int tempA=a;

int REZ=0;

while (!Sravn (b, tempA))

{

tempA= Summ (tempA, b, 0);

REZ= Summ (REZ, 1, 1);

}

*mod=tempA;

return REZ;

}

ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ° слоТСниС Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ На Π²Ρ…ΠΎΠ΄Π΅ Π΄Π²Π° числа (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ — Π΄Π΅Π»ΠΈΠΌΠΎΠ΅, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ — Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ), ΠΈ ΡΡΡ‹Π»ΠΊΠ°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ остаток ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ.

ΠŸΡ€ΠΎΠΏΠΈΡΠ°Π½Ρ‹ всС частныС случаи дСлСния. Если ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число мСньшС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ — Ρ‚ΠΎ ΡΡ€Π°Π·Ρƒ выводится Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния 0, остаток — ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 0 Π½Π° 0, выводится сообщСниС: «ΠΠ΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π›ΡŽΠ±ΠΎΠ΅ число Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ [-222 222 222;222222222],» Ρ‚. Π΅. ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» со Π²ΡΠ΅ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ число 2, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ максимальноС Π² Π΄Π°Π½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ноль Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ дСлитСля, Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ систСмноС сообщСниС: «ΠΠ° Π½ΠΎΠ»ΡŒ Π΄Π΅Π»ΠΈΡ‚ΡŒ нСльзя! (искл. 0/0)» .

Π‘Π°ΠΌΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅. Пока Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ большС дСлитСля, ΠΌΡ‹ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² Π΄Π΅Π»ΠΈΠΌΠΎΠ΅. К Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ добавляСм Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. ПослС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ мСньшС дСлитСля, Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ записываСтся Π² ΠΎΡΡ‚Π°Ρ‚ΠΎΠΊ. Π“Ρ€ΡƒΠ±ΠΎ говоря, ΠΌΡ‹ ΡΡ‡ΠΈΡ‚Π°Π΅ΠΌ, сколько Ρ€Π°Π· смоТСм Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа Π²Ρ‚ΠΎΡ€ΠΎΠ΅.

3.4 РСализация сравнСния

bool Sravn (int a, int b)

{

if (a==0) return false;

if (b==0) return true;

bool rez=false;

int ostA=a, ostB=b, temp;

int n1, n2;

for (int i=0; ostA>0||ostB>0; i++)

{

n1=0;

n2=0;

temp=ostA%10;

if (temp≠0)

do

{

temp=Find (temp);

n1++;

}

while (temp≠0);

temp=ostB%10;

if (temp≠0)

do

{

temp=Find (temp);

n2++;

}

while (temp≠0);

if (n1≠n2)

if (n2>n1)

rez=false;

else

rez=true;

ostA/=10;

ostB/=10;

}

return rez;

}

На Π²Ρ…ΠΎΠ΄ функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ. Числа ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ разряду, начиная с ΠΌΠ΅Π½ΡŒΡˆΠ΅Π³ΠΎ. Для этого Π΄Π²Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ разряда Ρ€Π°ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΡΡƒΠΌΠΌΡƒ Π΅Π΄ΠΈΠ½ΠΈΡ†, ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся ΠΈΡ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ. Если большС Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа — ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ большим, Ссли Ρƒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ — Π²Ρ‚ΠΎΡ€ΠΎΠ΅. Если Ρ€Π°Π²Π½ΠΎ, Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΎ Ρ‡ΠΈΡΠ»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ большим ΠΏΡ€ΠΈ сравнСнии Ρ†ΠΈΡ„Ρ€ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ разряда.

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ»Π΅Π²Π° пСрСмСнная, true — ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число большС, false — Π²Ρ‚ΠΎΡ€ΠΎΠ΅.

Ѐункция сравнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» сформирован ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ большой «ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ» Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ 8;+,*> для Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… дСйствий (+,-,*,/) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Π»ΠΎΠΉ «ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ» Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ся свойства коммутативности (+,*), ассоциативности (+), дистрибутивности * ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ +, Π·Π°Π΄Π°Π½Ρ‹ аддитивная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° «0» ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ипликативная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° «1», Ρ…*0=0. ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ….

РасполоТСниС чисСл Π΄Π°Π½Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ возрастания: 0<1<3<6<7<5<4<2.

Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒ для любой ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ «+1». Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΏΡ€ΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сам Π²Π²ΠΎΠ΄ΠΈΠ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π΅ΠΌΡƒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для 8 Ρ†ΠΈΡ„Ρ€. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π° рСализованная Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ функция сравнСния. ΠŸΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»Π°ΡΡŒ ΠΈΡ… ΡΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Π£Ρ‡Π΅Π±Π½ΠΈΠΊ Π€. А. Новикова «Π”ΠΈΡΠΊΡ€Π΅Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов».

2. Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π°Π²Ρ‚ΠΎΡ€ Павловская Π’. А.

3. Π£Ρ‡Π΅Π±Π½ΠΈΠΊ «ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹: построСниС ΠΈ Π°Π½Π°Π»ΠΈΠ·», Π°Π²Ρ‚ΠΎΡ€ ΠšΠΎΡ€ΠΌΠ΅Π½, ЛСйзСрсон, РивСст, Π¨Ρ‚Π°ΠΉΠ½.

4. ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

5. ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include

#include

using std: cout;

using std: cin;

using std: endl;

const int razr=8;

int Plus[razr][razr]; //создаСм Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив (ΠΎΡ‚ 0 Π΄ΠΎ 7)

int PlusP[razr][razr];

int Mult[razr][razr];

int MultP[razr][razr];

void Print (int matrix[][razr], int matrix1[][razr])

{

for (int i = 0; i < razr; i++) //Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ† Π½Π° ΡΠΊΡ€Π°Π½

{

for (int j = 0; j < razr; j++)

cout << matrix[i][j] << ««;

cout << ««;

for (int j = 0; j < razr; j++)

cout << matrix1[i][j] << ««;

cout << endl;

}

cout << endl;

}

int Find (int n) //ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ Π΄Π²ΡƒΡ… чисСл ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΡƒ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

{

for (int i=0; i

if (Plus[1][i]==n)

{

return i;

}

return -1;

}

int ObratPlus (int n)

{

int temp;

for (int i=0; i<8; i++)

if (Plus[i][n]==0) temp=i;

return temp;

}

bool Sravn (int a, int b)//сравнСниС. Ссли ΠΈΠ· ΠΌΠ΅Π½ΡŒΡˆΠ΅Π³ΠΎ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ большСС, Ρ‚ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ‚ мСстами числа.

{

if (a==0) return false;

if (b==0) return true;

bool rez=false;

int ostA=a, ostB=b, temp;

int n1, n2;

for (int i=0; ostA>0||ostB>0; i++)

{

n1=0;

n2=0;

temp=ostA%10;

if (temp≠0)

do

{temp=Find (temp);

n1++;

}

while (temp≠0);

temp=ostB%10;

if (temp≠0)

do

{

temp=Find (temp);

n2++;

}

while (temp≠0);

if (n1≠n2)

if (n2>n1)

rez=false;

else

rez=true;

ostA/=10;

ostB/=10;

}

return rez;

}

int Summ (int a, int b, bool p)//слоТСниС

{

int rez=0, bp=0;

int ostA=a, ostB=b, tempA, tempB;

int i=1;

for (i; ostA>0 || ostB>0; i*=10)

{

tempA=ostA%10;

tempB=(p)?ostB%10:ObratPlus (ostB%10);

rez+=Plus[Plus[tempA][tempB]][bp]*i;

if (p==true)

bp=PlusP[tempA][tempB]+PlusP[Plus[tempA][tempA]][bp];

else//Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

{

if (Sravn (ostB%10, tempA)||(tempA==ostB%10 && bp≠0))

{

bp=2;

}

else bp=0;

}

ostA/=10;

ostB/=10;

}

rez+=bp*i;

return rez;

}

int CheckSum (int a, int b, bool p)//ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° a>b, Ссли Π½Π΅Ρ‚, мСняСт мСстами, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ Π½Π° -1

{

bool need=false;

if (p==false)

need=Sravn (b, a);

if (p==false && need==true)

return (-1)*Summ ((need)?b:a, (need)?a:b, p);

return Summ ((need)?b:a, (need)?a:b, p);

}

int Umnog (int a, int b)//ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

{

int REZ=0;

int ostB=b;

for (int j=1; ostB>0; j*=10)

{

int tempB=ostB%10;

int tempREZ=0;

int ostA=a;

int i=1;

int dopU=0;

for (i; ostA>0; i*=10)

{

int tempA=ostA%10;

int tempDop=Summ (Mult[tempA][tempB], dopU, 1);

tempREZ+=tempDop%10*i;

dopU=Summ (tempDop/10, MultP[tempA][tempB], 1);

ostA/=10;

}

tempREZ+=dopU*i;

REZ=Summ (REZ, tempREZ*j, 1);

ostB/=10;

}

return REZ;

}

int Delen (int a, int b, int* mod) //функция дСлСния

{

if (Sravn (b, a))

{

*mod=a;

return 0;

}

int l1=Length (a);

int l2=Length (b);

int REZ=0;

int tempA=a/pow (10,(l1-l2));

for (int k=1; l1>=l2+k-1; k++)

{

int min=0;

for (int i=1; i

{

int z=Umnog (i, b);

if (Sravn (i, min) && !Sravn (z, tempA))

min=i;

}tempA=Summ (tempA, Umnog (min, b), 0);

if (Length (a) >= Length (b)+k)

tempA=tempA*10+(a%int (pow (10,(Length (a)-Length (b)-k+1)))/int (pow (10,Length (a)-Length (b)-k)));

REZ=REZ*10+min;

}

*mod=tempA;

return REZ;

}

void SetMult (int a, int b) //рСализация Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ

{

int temp=0, tempB=b;

while (tempB>0)

{

temp=Summ (temp, a, 1);

tempB=Summ (tempB, 1,0);

}

Mult[a][b]=temp%10;

MultP[a][b]=(b==0)?0:temp/10;

}

void SetPlus (int a, int b) //рСализация Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

{

int n=0;

int temp=a;

do

{

temp=Find (temp);

n++; //ΠΈΠ· ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ† состоит Ρ†ΠΈΡ„Ρ€Π°

}

while (temp≠0);

temp=b;

for (int i=0; i

{

temp=Plus[1][temp];

if (temp==0 && a≠0)

PlusP[a][b]=1;

}

Plus[a][b]=temp;

}

int Work (int a, int b, char z) //Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ интСрфСйс

{

cout<

int Last, mod=0;

int ost, temp;

ost=abs (a);

while (ost>0)

{

temp=ost%10;

if (temp>7)

{

cout<<" НСвСрный Π²Π²ΠΎΠ΄, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова! n" <

goto n0;

}

ost/=10;

}

ost=abs (b);

while (ost>0)

{

temp=ost%10;

if (temp>7)

{

cout<<" НСвСрный Π²Π²ΠΎΠ΄, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова! n" <

goto n0;

}

ost/=10;

}

switch (z) //свич для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дСйствий

{

case '+':

if (a>=0 && b>=0)

Last=CheckSum (a, b,1);

else

if (a<0 && b<0)

Last=-1*CheckSum (abs (a), abs (b), 1);

else

Last=-1*CheckSum (abs (a), abs (b), 0);

break;

case '-':

if (a>=0 && b<0)

Last=CheckSum (a, abs (b), 1);

else

if (a<0 && b>=0)

Last=-1*CheckSum (abs (a), b,1);

else

if (a>=0 && b>=0)

Last=CheckSum (a, b,0);

else

Last=-1*CheckSum (abs (a), abs (b), 0);

break;

case '*':

if (a<0 && b>=0 || a>=0 && b<0)

Last=(-1)*Umnog (abs (a), abs (b));

else

Last=Umnog (abs (a), abs (b));

break;

case '/':

if (b==0)

{

if (a==0)

{

cout<<" ΠΠ΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π›ΡŽΠ±ΠΎΠ΅ число Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ [-222 222 222;222222222]n" <

goto n0;

}

else

{

cout<<" На Π½ΠΎΠ»ΡŒ Π΄Π΅Π»ΠΈΡ‚ΡŒ нСльзя! (искл. 0/0)n" <

n0:char ans='2';

cout<< «Π”ля продолТСния Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π»ΡŽΠ±ΡƒΡŽ ЦИЀРУ (ΠΊΡ€ΠΎΠΌΠ΅ 1) ΠΈΠ»ΠΈ Π‘Π£ΠšΠ’Π£, для Π²Ρ‹Ρ…ΠΎΠ΄Π° 1n» ;

cin>>ans;

if (ans=='1')

exit (0);

else

return 1;

}

}

if (a<0 && b>0 || a>=0 && b<0)

Last=(-1)*Delen (abs (a), abs (b), &mod);

else

Last=Delen (abs (a), abs (b), &mod);

break;

}

cout<<" «<<» «<<» = «<

if (z=='/')

cout<<" mod «<

else

cout<

return 0;

}

int main () //Π² случаС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

{

setlocale (LC_ALL, «Russian»);

for (int i=0; i

Plus[0][i]=i;

Plus[1][0]=1;

Plus[1][1]=3;

Plus[1][2]=0;

Plus[1][3]=6;

Plus[1][4]=2;

Plus[1][5]=4;

Plus[1][6]=7;

Plus[1][7]=5;

for (int i=0; i

{

for (int j=0; j

{

PlusP[i][j]=0;

SetPlus (i, j);

}

}

for (int i=0; i

{

for (int j=0; j

SetMult (i, j);

}

cout<<" ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ большой <οΏ½ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ> Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈnn" ;

cout << «Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ: Π’Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ: n» ;

Print (Plus, PlusP);

cout << «Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ: Π’Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ: n» ;

Print (Mult, MultP);

cout<<" + - ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ n- - Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ n* - ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ n/ - Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒn" ;

cout<<" ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: Число ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ (+,-,*,/) Число (Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²!) ΠΈΠ»ΠΈn Числоn ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ (+,-,*,/)n Числоn" ;

char ans='2';

while (ans≠'1')

{

int a1, b2;

char Z;

cin>>a1>>Z>>b2;

while (Z≠'+' && Z≠'-' && Z≠'*' && Z≠'/')

{

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ:" ;

cin>>Z;

}

int w=Work (a1, b2, Z);

if (w==0)

{

cout<<" Для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π²Π²Π΅Π΄ΠΈΡ‚Π΅ — 1, для продолТСния Π»ΡŽΠ±ΡƒΡŽ Π‘Π£ΠšΠ’Π£ ΠΈΠ»ΠΈ ЦИЀРУ (ΠΊΡ€ΠΎΠΌΠ΅ 1) n" ;

cin>>ans;

}

}

return 0;

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. Π’Π°Π±Π»ΠΈΡ†Ρ‹ слоТСния ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, пСрСносов ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ

Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

Π’Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

+s

Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ.

*

Π’Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ.

*s

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ