1 / 1 / 2
Регистрация: 10.04.2011
Сообщений: 40

Найти сумму двух многозначных чисел (числа хранятся в файле)

12.10.2014, 12:19. Показов 6567. Ответов 12

Студворк — интернет-сервис помощи студентам
Найти сумму двух многозначных чисел (числа хранятся в файле).
Примерное решение есть. Я вот не знаю, правильно или нет. По сути нет.
Т.к. если записать очень большое число, то оно выходит за рамки LongInt.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  f: Text;
  i, sum: LongInt;
 
begin
  assign(f, 'z1.txt');
  reset(f);
  repeat
    sum := 0;
    while not eoln(f) do 
    begin
      read(f, i);
      sum := sum + i;
    end;
    readln(f);
    WriteLn(sum);
  until eof(f);
  close(f);
end.
И подскажите пожалуйста, как переделать данное решение для разности двух чисел?
Заранее спасибо!
P.S. в программировании не силен!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2014, 12:19
Ответы с готовыми решениями:

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

С клавиатуры вводится N целых чисел a1, a2,….,aN. Найти сумму этих чисел. Найти номер первого четного числа последовательности чисел.
Решить задачу 3 способами: 1. Используя метки и оператор goto (не используя никакой цикл) 2. Используя цикл (repeat или while) 3....

Найти сумму двух наименьших чисел среди элементов двух файлов
Доброго времени суток, помогите с программой: есть два файла в них находятся числа нужно найти сумму наименьших из них. Я нашёл количество...

12
 Аватар для Антон1985
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
12.10.2014, 12:38
Тема в помощь:
Найти сумму чисел строки

Добавлено через 3 минуты
Code
1
2
3
Из файла загружаешь цифры в память в массив. 
Складываешь. 
Результат сохраняешь в файл.
0
1 / 1 / 2
Регистрация: 10.04.2011
Сообщений: 40
12.10.2014, 12:45  [ТС]
Простите, Антон1985, но мои знания не настолько сильны!
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.10.2014, 13:48
Ссылка на ту тему вряд ли нужна. Задача на длинную арифметику. Если числа и результат не превысят 255 разрядов, то можно работать со строками, если больше, то только массивы.
Пример сложения можно посмотреть здесь.
Сложение длинных чисел

Добавлено через 3 минуты
Вот вычитание более длинных чисел с файлами
Вычитание двух длинных чисел

Добавлено через 27 секунд
Вообще используйте поиск по форуму.
1
1 / 1 / 2
Регистрация: 10.04.2011
Сообщений: 40
12.10.2014, 14:01  [ТС]
Puporev, я не могу этот код
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
uses crt;
var   s1,s2,s3: string;
      mem,i,l,c: integer;
begin
  writeln('Enter first numb '); readln(s1);
  writeln('Enter second numb '); readln(s2);
  mem:=0;
  s3:='';
  if length(s1)>length(s2) then l:=length(s1)
  else                          l:=length(s2);
  if length(s1)>length(s2) then
    for i:=length(s2) to l-1 do
      Insert('0',s2,1);
  if length(s1)<length(s2) then
    for i:=length(s1) to l-1 do
  Insert('0',s1,1);
  for i:=l downto 1 do
   begin
    c:=strtoint(s1[i])+strtoint(s2[i])+mem;
    mem:=c div 10;
    insert(inttostr(c mod 10),s3,1);
   end;
  if mem>0 then insert('1',s3,1);
  write(s3);
  readln;
end.
подогнать под работу с файлами.
Тем более вдруг 2 числа в одной строке?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.10.2014, 14:08
Цитата Сообщение от LoL_KO Посмотреть сообщение
Тем более вдруг 2 числа в одной строке?
А это еще нафига? Тогда еще нужно знать разделитель чисел.
Pascal
1
2
3
4
5
6
7
8
9
10
var   f:text;
      s1,s2,s3: string;
      mem,i,l,c: integer;
begin
  assign(f,'input.txt');//файл в папке с программой
  reset(f);
  readln(f,s1);
  readln(f,s2);
  close(f);
  s3:='';
Добавлено через 2 минуты
Цитата Сообщение от LoL_KO Посмотреть сообщение
я не могу этот код подогнать под работу с файлами
Ну если ни хрена не знаете, то читайте, учите или просите написать программы за деньги, или бросайте учебу нафиг если тупой и ленивый.
0
1 / 1 / 2
Регистрация: 10.04.2011
Сообщений: 40
12.10.2014, 14:36  [ТС]
Puporev, числа хранятся в файле, а запись может быть в одну строку, либо в две.
т.е.
 
31231241413414124124124 312414124124134124

либо

 
31231241413414124124124
312414124124134124

Добавлено через 24 минуты
спасибо, остановился на этом варианте.
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
var
  f: text;
  s1, s2, s3: string;
  mem, i, l, c: integer;
 
begin
  assign(f, 'z1.txt');
  reset(f);
  readln(f, s1);
  readln(f, s2);
  close(f);
  s3 := '';
  if length(s1) > length(s2) then l := length(s1)
  else l := length(s2);
  if length(s1) > length(s2) then
    for i := length(s2) to l - 1 do
      insert('0', s2, 1);
  if length(s1) < length(s2) then
    for i := length(s1) to l - 1 do
      insert('0', s1, 1);
  for i := l downto 1 do
  begin
    c := strtoint(s1[i]) + strtoint(s2[i]) + mem;
    mem := c div 10;
    insert(inttostr(c mod 10), s3, 1);
  end;
  if mem > 0 then insert('1', s3, 1);
  write(s3);
  readln;
end.
Цитата Сообщение от Puporev Посмотреть сообщение
Ну если ни хрена не знаете, то читайте, учите или просите написать программы за деньги, или бросайте учебу нафиг если тупой и ленивый.
а это тут причем? я чуть не так написал, а вы меня уже приравняли к тупым и ленивым.
Цитата Сообщение от Puporev Посмотреть сообщение
Сообщение от LoL_KO
я не могу этот код подогнать под работу с файлами
потому что в ходе компиляции была ошибка! я не заметил символа табуляции после 1-го числа в строке файла!
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.10.2014, 14:46
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если записаны в 1 строку через пробел или в 2 строки
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var   f:text;
      s1,s2: string;
      ch:char;
begin
  assign(f,'input.txt');//ôàéë â ïàïêå ñ ïðîãðàììîé
  reset(f);
  s1:='';
  s2:='';
  ch:=#0;
  while not eoln(f) and(ch<>' ') do
   begin
    read(f,ch);
    s1:=s1+ch;
   end;
  while not seekeof(f) do
   begin
    read(f,ch);
    s2:=s2+ch
   end;
  close(f);
Добавлено через 5 минут
Вернее так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
s1:='';
  s2:='';
  ch:=#0;
  while not eoln(f) and(ch<>' ') do
   begin
    read(f,ch);
    if not(ch in [' ',#10,#13])then  s1:=s1+ch;
   end;
  while not seekeof(f) do
   begin
    read(f,ch);
    if not(ch in [' ',#10,#13])then  s2:=s2+ch
   end;
1
1 / 1 / 2
Регистрация: 10.04.2011
Сообщений: 40
12.10.2014, 14:57  [ТС]
Puporev, спасибо огромное! Всё работает на ура!
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
  f: text;
  s1, s2: string;
  ch: char;
  sum: integer;
 
begin
  assign(f, 'z1.txt');//файл в папке с программой
  reset(f);
  s1 := '';
  s2 := '';
  ch := #0;
  while not eoln(f) and (ch <> ' ') do
  begin
    read(f, ch);
    if not (ch in [' ', #10, #13]) then  s1 := s1 + ch;
  end;
  while not seekeof(f) do
  begin
    read(f, ch);
    if not (ch in [' ', #10, #13]) then  s2 := s2 + ch
  end;
  sum := strtoint(s1) + strtoint(s2);
  writeln(sum);
end.
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.10.2014, 15:06
Но только тут нужно добавить самую малость, длинную арифметику...
1
1 / 1 / 2
Регистрация: 10.04.2011
Сообщений: 40
12.10.2014, 15:22  [ТС]
не тот вариант скопировал)
вот.
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
37
38
39
40
41
42
var
  f: text;
  s1, s2, s3: string;
  ch: char;
  mem, i, l, c: integer;
 
begin
  assign(f, 'z1.txt');//файл в папке с программой
  reset(f);
  s1 := '';
  s2 := '';
  ch := #0;
  while not eoln(f) and (ch <> ' ') do
  begin
    read(f, ch);
    if not (ch in [' ', #10, #13]) then  s1 := s1 + ch;
  end;
  while not seekeof(f) do
  begin
    read(f, ch);
    if not (ch in [' ', #10, #13]) then  s2 := s2 + ch
  end;
  s3 := '';
  if length(s1) > length(s2) then l := length(s1)
  else l := length(s2);
  if length(s1) > length(s2) then
    for i := length(s2) to l - 1 do
      insert('0', s2, 1);
  if length(s1) < length(s2) then
    for i := length(s1) to l - 1 do
      insert('0', s1, 1);
  for i := l downto 1 do
  begin
    c := strtoint(s1[i]) + strtoint(s2[i]) + mem;
    mem := c div 10;
    insert(inttostr(c mod 10), s3, 1);
  end;
  if mem > 0 then insert('1', s3, 1);
  write(s3);
  readln;
  close(f);
end.
1
0 / 0 / 1
Регистрация: 24.11.2010
Сообщений: 55
08.01.2016, 20:39
Как подогнать данное решение под разность двух чисел?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.01.2016, 21:29
В посте номер 4 есть ссылка
Вычитание двух длинных чисел
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.01.2016, 21:29
Помогаю со студенческими работами здесь

Найти сумму десятков двух чисел и сумму их единиц
1.)Даны два числа. Найти сумму их десятков и сумму их единиц. 2.)Дано число. Проверить, делится ли оно на 2, на 3 или на 5. ...

Задача с использованием структуры «текстовый файл» (в файле хранятся целые числа)
Дан файл, содержащий положительные целые числа. Напишите программу, которая находит в этом файле количество локальных минимумов. Локальным...

Найти сумму нечётных чисел и количество чётных чисел в двух массивах
Пусть дано 2 массива. Составить программу для нахождения суммы нечетных чисел и количества четных чисел в обоих массивах. Заполнение, вывод...

Найти сумму чисел в файле и вывести на экран числа и полученную сумму
11.записать в файл любые 10 чисел,найти сумму этих чисел и вывести на экран числа и полученную сумму

Вводятся четыре числа. И требуется найти сумму двух больших чисел и произведение двух меньших
Помогите сделать программу. Вроде, не такая сложная, но не могу понять, как делать Вводятся четыре числа. Требуется найти сумму двух...


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

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

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru