Тема: Потрібно створити програму *На Паскалі, 100грн.
Написання програми множення двох великих чисел методом "в стовпчик" Pascal
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Робота → Пропоную роботу → Потрібно створити програму *На Паскалі, 100грн.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Написання програми множення двох великих чисел методом "в стовпчик" Pascal
Або пропонуйте ціну або забаню, ах да, ще можете напрацювання показати.
Пункт 3.5.
Або пропонуйте ціну або забаню, ах да, ще можете напрацювання показати.
Пункт 3.5.
100 гривень влаштовуэ?
Переніс тему сюди. Когось, може, і влаштує.
Тільки допишіть в заголовок "Паскаль".
за 10 000 копійок влаштує?
це ж класика, код можна перевірити тут: https://rextester.com/l/pascal_online_compiler
Program MnozStovpchykom;
Const NMax = 2000;
Type Digit = 0..9; DovChyslo = Array[1..Nmax] Of Digit;
Var S : String;
M, N, R : DovChyslo;
Logic : Boolean;
{Занулення довгого числа}
Procedure Zero(Var A : DovChyslo);
Var I : Integer;
Begin
For I := 1 To NMax Do A[i] := 0;
End;
{Визначення к-ті цифр в записі довгого числа}
Function Dovzyna(C : DovChyslo) : Integer;
Var I : Integer;
Begin
I := NMax;
While (I > 1) And (C[i] = 0) Do I := I - 1;
Dovzyna := I
End;
{Друк довгого числа}
Procedure Print(A : DovChyslo);
Var I : Integer;
Begin
For I := Dovzyna(A) DownTo 1 Do Write(A[i] : 1);
WriteLn
End;
{Перетворення довгого числа у масив цифр}
Procedure Translate(S : String; Var A : DovChyslo;
Var OK : Boolean);
Var I : Word;
Begin
Zero(A); I := Length(S); OK := True;
While (I >= 1) And OK Do
Begin
If S[i] In ['0'..'9']
Then A[Length(S) - I+ 1] := Ord(S[i]) - 48
Else OK := False;
I := I - 1
End
End;
{Наш мульті-стовбчик}
Procedure Multiplication(A, B : DovChyslo; Var C : DovChyslo);
Var I, J : Integer; P : Digit; VspRez : 0..99;
Begin
Zero(C);
For I := 1 To Dovzyna(A) Do
Begin P := 0;
For J := 1 To Dovzyna(B) Do
Begin
VspRez := A[i] * B[J] + P + C[I + J - 1];
C[I + J - 1] := VspRez Mod 10;
P := VspRez Div 10
End;
C[I + J] := P
End
End;
{Основна програма}
Begin
{Задайте перший множник}
S:='1111111111111111111'; Translate(S, M, Logic);
{Задайте другий множник}
S:='2222222222222222222'; Translate(S, N, Logic);
Multiplication(M, N, R); Print(R)
End.
адаптовано на українську з коду Шестакова А.П. https://bit.ly/2z8mPZZ
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися