Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2014, 10:47   #21
Скрепостер
Заблокирован
 
Регистрация: 28.10.2014
Сообщений: 2
По умолчанию

Вот для Паскаля
+,-,*
Код:
program A+B;
 
var
s1,s2:string;
a,b:array[1..100] of integer;
len,i,c:integer;
f1,f2:text;
begin
Assign(f1,'INPUT.TXT');  Reset(f1);
Assign(f2,'OUTPUT.TXT'); ReWrite(f2);
c:=0;
ReadLn(f1,s1);
ReadLn(f1,s2);
close(f1);
len:=length(s1);                      {разбиение строк в елементы массивов}
for i:=1 to len do
a[len-i+1]:=Ord(s1[i])-48;
len:=length(s2);
for i:=1 to len do
b[len-i+1]:=Ord(s2[i])-48;
 
if length(s1)>length(s2) then len:=length(s1)
else len:=length(s2);
for i:=1 to len do
begin
c:=c+a[i]+b[i];         {переменная c будет в дальнейшем использоваться для переноса числа в следующия ряд}
a[i]:=c mod 10;         {результат сложения запишем в массив а}
c:=c div 10;
end;
if c>0 then begin
len:=len+1;
a[len]:=c;
end;
for i:=len downto 1 do     {вывод результата в файл}
Write(f2,a[i]);
close(f2);
end.


program A-B;
 
 
Function CompLong(s1,s2:string):integer; {функция CompLong сравнивает две строки как большие числа}
var
a,len1,len2,i:integer;
b:boolean;
begin
a:=0;
b:=true;
len1:=length(s1);
len2:=length(s2);
if len1>len2 then begin a:= 1; b:=false; end;
if len1<len2 then begin a:=-1; b:=false; end;
if b then
for i:=1 to len1 do
begin
if Ord(s1[i])-48>Ord(s2[i])-48 then begin a:= 1; break; end;
if s1[i]<s2[i] then begin a:=-1; break; end;
end;
CompLong:=a;
end;
 
var
s1,s2:string;
i,len,c,x:integer;
a,b:array[1..1000] of integer;
f1,f2:text;
begin
Assign(f1,'INPUT.TXT'); Reset(f1);
Assign(f2,'OUTPUT.TXT'); ReWrite(f2);
ReadLn(f1,s1); c:=0;
ReadLn(f1,s2);
close(f1);
len:=length(s2);
for i:=1 to len do
b[len-i+1]:=Ord(s2[i])-48;
len:=length(s1);
 
for i:=1 to len do
a[len-i+1]:=Ord(s1[i])-48;
if Complong(s1,s2)<0 then begin
Write(f2,'-');
len:=length(s2);
for i:=1 to len do begin
x:=a[i];
a[i]:=b[i];
b[i]:=x;
end;
end;
for i:=1 to len do
begin
c:=c+a[i]-b[i]+10;
a[i]:= c mod 10;                       {результат будет храниться в массиве a}
if c < 10 then c:=-1 else c:=0;
end;
while (a[len]=0) and (len>1) do len:=len-1;
for i:=len downto 1 do {вывод результата в файл}
Write(f2,a[i]);

program A*B;
 
var
f1,f2:text;
s1:string;
b,i,c:integer;
a:array[0..105] of integer;
begin
Assign(f1,'INPUT.TXT');  Reset(f1);
Assign(f2,'OUTPUT.TXT'); ReWrite(f2);
c:=0;
ReadLn(f1,s1);
ReadLn(f1,b);
close(f1);
a[0]:=length(s1);
for i:=1 to a[0] do
a[a[0]-i+1]:=Ord(s1[i])-48;
 
for i:=1 to a[0] do
begin
a[i]:=c+a[i]*b;
c:=a[i] div 10;
a[i]:=a[i] mod 10;
end;
While c>0 do
begin
a[0]:=a[0]+1;
a[a[0]]:=c mod 10;
c:=c div 10;
end;
if a[a[0]]=0 then Write(f2,0)
else
for i:=a[0] downto 1 do
Write(f2,a[i]);
close(f2);
end.
Скрепостер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу для Паскаль 9 класс: составить программу которая печатает таблицу умножения и сложения натуральных чисел goodula Помощь студентам 0 23.01.2014 17:39
Какую программу написать на Delphi? Tadochi Помощь студентам 12 14.12.2013 23:21
Написать программу которая поможет определить в какой подъезд, на какой этаж, и в какую квартиру нужно идти почтальону qpuTuJlb Помощь студентам 7 25.04.2012 22:29
Какую программу можно написать на делфи чтобы она пользовалась большим спросом Xander Свободное общение 8 03.07.2008 16:11