Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Лучи добра
 Аватар для Das Gespenst
173 / 171 / 191
Регистрация: 08.06.2012
Сообщений: 292

Длинная арифметика. ASCII

04.11.2012, 22:48. Показов 1631. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот есть код для нахождения суммы двух "длинных" чисел. Я его разобрал, но один момент все же непонятен...
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 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.
Кто может объяснить до мельчайшей подробности эти рядки?
Pascal
1
2
3
4
5
6
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;
И, самое важное, почему идентификатор массивов ищется по формуле [len-i+1]? Я долго-долго думал и смотрел, но никакой закономерности не увидел, к сожалению...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2012, 22:48
Ответы с готовыми решениями:

Длинная арифметика
Вычислить 2 в степени –200.

Длинная арифметика
Встречаются ли среди цифр числа 2^11213 -1 две подряд идущие девятки?

Длинная арифметика
var m, i: integer; n: int64; begin readln(m); n := 1; for i := 1 to m - 1 do n := n * 2; writeln(n); end.

1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.11.2012, 14:34
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
len:=length(s1);    //длина рервого числа
for i:=1 to len do //все символы первого числа
a[len-i+1]:=Ord(s1[i])-48;//берем с конца и преобразуем в массив йифр
//пример
//ввели число строку  '12345678901223'
//получим массив
//[32210987654321]
//складывать начнем с конца
//len-i+1 это просто, например len=14, i=1, res=14-1+1=14,
// т.е. первым берем прследний символ
len:=length(s2);//то же со вторым числом
for i:=1 to len do
b[len-i+1]:=Ord(s2[i])-48;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2012, 14:34
Помогаю со студенческими работами здесь

Длинная арифметика
Встречаются ли среди цифр числа (2 в степени 11213 – 1) две подряд идущие девятки? помогите пожалуйста как решить эту задачу используя...

Длинная арифметика
Помогите пожалуйста, если не сложно)) Требуется найти сумму чисел в цикле от 10000 до 1000009, используя длинную арифметику))

Длинная арифметика, умножение
Вычислить a*b,где числа a и b содержат до 500 и более разрядов.

Длинная арифметика для Pascal
Ребята, кто-нибудь может дать мне ссылки, указания, рекомендации или еще что-то, что связано с темой "Длинная арифметика (то, что...

Длинная арифметика. Деление. Добывание корня?
Ребят, кто-нибудь приведите алгоритм и фрагмент кода для деления длинных чисел и тоже самое для добывания корня с длинного числа. Заранее...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru