Нужна программа ** pascal Современные компьютеры могут выполнять арифметические действия...

0 голосов
30 просмотров

Нужна программа на pascal
Современные компьютеры могут выполнять арифметические действия с достаточно большими целыми числами (максимальное число целого типа 18446744073709551615), а всего 20 лет назад диапазон был ограничен 65536, что меньше в несколько сотен триллионов раз (10 в 14 степени раз).

Но как быть, если нужно выполнить арифметические операции над числами, разрядность которых больше 20 (т.е. число будет больше, чем 18446744073709551615)? Один из способов, это представить число в виде массива, элементы которого цифры данного числа.
Напишите программу для поиска максимального из трех чисел, состоящих из 20 разрядов.
Входные данные:
Три числа, перечисленные через пробел. Разрядность каждого не более 25. Числа не равны.

Выходные данные:
Наибольшее из трех заданных чисел.

ПРИМЕР:
Входные данные:
1234 12345678901234567890 123123123123123
Выходные данные:
12345678901234567890

Входные данные:
32345678901234567890 12345678901234561111 12345678901234567890
Выходные данные:
32345678901234567890


Информатика (12 баллов) | 30 просмотров
Дан 1 ответ
0 голосов

Решение, использующее указанный способ, находится во вложенном файле. Хочу предупредить: программа была написана в среде PascalABC.NET, и в каких-то других средах массивы могут вести себя не совсем правильно, т.е. выдавать ошибку. В этом случае попробуйте изменить строку с объявлением n на "n:array[1..3] of array[0..24] of byte;", убрать строку "setlength(n[i],len[i]);" и все выражения  вида n[a][b] заменить на n[a,b].


Скачать вложение Текст (TXT)
(3.2k баллов)