Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Botticelli
0 / 0 / 1
Регистрация: 20.12.2015
Сообщений: 15
#1

Сложить два целых числа

29.01.2016, 16:48. Просмотров 839. Ответов 4
Метки нет (Все метки)

Ребят, помогите решить задачу, а. Не понимаю, в чем проблема.. Вроде должно работать, а все равно не идет.

Условие
Снова A+B

(Время: 1 сек. Память: 16 Мб)
Требуется сложить два целых числа А и В.

Входные данные

Во входном файле INPUT.TXT записано два неотрицательных целых числа, не превышающих 10 в 100 степени, по одному в каждой строке.

Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В, без лидирующих нулей.

Мой код

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program ab;
Var
b,i,j,r,low,l,le,c,gg: integer; s,d,a: array[1..99999] of integer;    k,p,st,sr,st1,sr1: string[255];
Begin
Readln(k);
Readln(p);
if length(k) > length(p) then le := length(k) else le := length(p);
for i:=length(k) downto 1 do
st:=st+k[i];
for i:=length(p) downto 1 do 
sr:=sr+p[i]; 
if length(st) > length(sr) then begin
l := length(st) - length(sr); for i:=1 to l do 
sr:=sr+'0'; end;
for i:=length(st) downto 1 do
st1:=st1+st[i];
Writeln;
for i:=length(sr) downto 1 do
sr1:=sr1+sr[i];
for i:=1 to length(st1) do begin
Val(st1[i],s[i],j);  end;
for i:=1 to length(sr1) do begin
Val(sr1[i],d[i],j);   end;
for i:=1 to le do begin
a[i]:=s[i]+d[i]; Write(a[i]); end;
end.
Заранее благодарен)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2016, 16:48
Ответы с готовыми решениями:

Сложить два комплексных числа
Комплексное число представить ввиде структурированных типов данных(Delphi7)

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно
Желательно сделать в Pascal или Delphi

Вводится два целых числа A и B. Выведите их сумму
Ввод осуществляется из файла input.txt. Вывод на консоль. Вводится два целых...

Даны два целых числа a и b, определить их общие делители.
Даны два целых числа a и b, определить их общие делители. Заранее благодарен

Написать функцию, которая сравнивает два целых числа
Всем привет, прошу помочь, совсем скоро нужно сдавать эту задачу, но мне эта...

4
capricornus CF
315 / 205 / 162
Регистрация: 08.12.2015
Сообщений: 853
29.01.2016, 17:27 #2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Читать не возможно

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program ab;
Var
b,i,j,r,low,l,le,c,gg: integer;
s,d,a: array[1..99999] of integer;
k,p,st,sr,st1,sr1: string;
 
Begin
  Readln(k);
  Readln(p);
  if length(k) > length(p) then le := length(k)
     else le := length(p);
  for i:=length(k) downto 1 do
    st:=st+k[i];
  for i:=length(p) downto 1 do
    sr:=sr+p[i];
  if length(st) > length(sr) then
    begin
      l:= length(st) - length(sr);
      for i:=1 to l do
        sr:=sr+'0';
    end;
  for i:=length(st) downto 1 do
    st1:=st1+st[i];
  Writeln;
  for i:=length(sr) downto 1 do
    sr1:=sr1+sr[i];
  for i:=1 to length(st1) do
    Val(st1[i],s[i],j);
  for i:=1 to length(sr1) do
    Val(sr1[i],d[i],j);
  for i:=1 to le do
    begin
      a[i]:=s[i]+d[i];
      Write(a[i]);
  end;
end.
Убрал лишние операторные скобки, а теперь , что именно не работает? Какие есть претензии?

Добавлено через 5 минут
Помимо того, что вы из файла не читаете, что не так?
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,797
29.01.2016, 17:58 #3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Что-то Вы наворотили там, не проще так?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var a,b,c,xs:string;
    i,x,y,k,p:integer;
begin
readln(a);
readln(b);
if length(a)>length(b) then
while length(b)<length(a) do b:='0'+b
else if length(a) < length(b) then
while length(a)<length(b) do a:='0'+a;
{будем складывать столбиком с конца}
c:='';{сумма}
p:=0;{перенос в старший разряд 0 или 1}
for i:=length(a) downto 1 do
 begin
  val(a[i],x,k); {преобразуем символы в цифры}
  val(b[i],y,k);
  x:=x+y+p; {складываем с учетом переноса}
  p:=x div 10;{перенос}
  x:=x mod 10;{остаток}
  str(x,xs); {преобразуем в символ}
  c:=xs+c;{и пишем в начало строки}
 end;
if p=1 then insert('1',c,1);{если есть переенос=1}
writeln(c);
end.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3797 / 2482 / 2051
Регистрация: 22.11.2013
Сообщений: 6,909
30.01.2016, 22:56 #4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Puporev,
вместо строк 6-9 достаточно ("if условие1 then while условие1 do" эквивалентно "while условие1 do"):
Pascal
6
7
while Length(a)<Length(b) do a:='0'+a;
while Length(b)<Length(a) do b:='0'+b;
Возможно, Val и Str для преобразования цифры в число и обратно как из пушки по воробьям.

В сухом остатке:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  a, b, c: String;
  i, p: Integer;
begin
  ReadLn(a);
  ReadLn(b);
  {c:=''; p:=0;}
  while Length(a)<Length(b) do a:='0'+a;
  while Length(b)<Length(a) do b:='0'+b;
  for i:=Length(a) downto 1 do begin
    p:=p+Ord(a[i])+Ord(b[i])-2*Ord('0');
    c:=Chr(Ord('0')+p mod 10)+c;
    p:=p div 10;
  end;
  if p>0 then c:='1'+c;
  WriteLn(c);
end.
0
Botticelli
0 / 0 / 1
Регистрация: 20.12.2015
Сообщений: 15
01.02.2016, 15:07  [ТС] #5
Блин, ребят, а так реально проще)
Спасибо за помощь, серьезно
0
01.02.2016, 15:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2016, 15:07

Ввести два целых числа N1 и N2. Если N1>n2 найти сумму. С циклом While
Ввести два целых числа N1 и N2. Если N1&gt;n2 найти сумму. используя While или...

Даны два целых числа А и В. Найти наименьшее общее кратное этих чисел
Даны два целых числа А и В. Найти наименьшее общее кратное этих чисел. решить...

Найдите два целых трехзначных числа, частное которых приближает число «пи» с наибольшей точностью
Найдите два целых трехзначных числа, частное которых приближает число «пи» с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru