![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
LiptonICE,
1) ВНИМАТЕЛЬНО прочитайте задание. не может быть там так написано! Это же не по русски! Или пропущен глагол (например, "составить программу для сложения n-разрядных чисел" или вообще фраза по другому построена. 2) язык, судя по приведённому коду, у Вас Pascal 3) делайте на основе кода из #6 рабочую программу (там алгоритм примерный набросан, только с ошибками!) DoDge_VipeR прав. Вам нужна длинная арифметика на основе строк. Можете поискать (тут на форуме были примеры реализации). А можете и сами написать.. если делать только сложение (и вычитание) - то это совсем несложно! столбиком складывать умеете? вот, представьте, есть две строчки n1 := '12345' и n2 := '28889999' надо их выровнять по правому краю (начинать сложение справа налево) и складывать по элементно, учитывая возникающий перенос. результаты записывать в третью строку. |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 34
|
![]()
Спасибо, Вы правы наверно пропущен глагол...
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 04.05.2010
Сообщений: 495
|
![]()
Полагаю он имеет в виду написать программу-калькулятор, которая будет производить простейшие арифметические вычисления, как то: сложить, вычесть, умножить с n-мерными числами ( в том числе очень большой разрядности). Причем числа представляются в виде строк.
Приведенный им пример, делает как раз это, хотя он и некорректен по синтаксису : var n,n1,n2:string; i,t1,t2,d:byte; begin n:=0; d:=0; k:=lenght[n1]; for i:=k downto 1 do // перебираем число-строку справа-налево t1:=val(n1[i], code1); // превращаем очередной символ в цифру t2:=val(n2[i], code2); // превращаем очередной символ в цифру t:=d+t1+t2; // Операция сложения. Складываем вышеполученные цифры и прибавляем к ранее полученному остатку d:=t mod 10 p:=t div 10 // Остаток n3:=str(p); // назад цифру в символ n:=n+n3 // конкатенация
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948 |
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 34
|
![]()
А что с синтаксисом?
Парни а как конец ввывести? Код:
Последний раз редактировалось Stilet; 06.05.2010 в 09:07. |
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 305
|
![]()
...............................
Skype: CODERua
Последний раз редактировалось [CODER]; 05.05.2010 в 22:18. |
![]() |
![]() |
![]() |
#16 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
ладно. разбирайтесь! Код:
|
|
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 34
|
![]()
if p<>0 then begin это условие неясно, и что это? Halt(1);
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
когда мы закончили цикл суммирования, у нас может остаться перенос, вот это и учитывается!
ну к примеру для 97 + 21 цикл выполнится два раза получим строку n: 18 (а единичка уйдёт в перенос) потом if p<>0 then .... и n станет 118 безусловное и безогоровочное прерывание работы приложение и выход в операционнку. 1 - это необязательный параметер - формируется код ошибки, с которым приложение завершилось.... Вам это не обязательно знать... ![]() |
![]() |
![]() |
![]() |
#19 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составить программу которая находит индекс числа в массиве случайных чисел | MadNikys | Помощь студентам | 9 | 03.03.2010 20:52 |
ассемблер: "Составить программу умножающую каждый элемент массива из 15 чисел на на 5. | Naruto63 | Помощь студентам | 4 | 19.10.2009 13:37 |
Сложение двух 64-х разрядных чисел в Ассемблере | Fataller | Помощь студентам | 1 | 14.10.2009 22:16 |
Составить программу, определяющую количество чисел, делящихся без остатка на три | phoenixSV | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 05.12.2008 15:05 |
умножение 16-разрядных чисел | deeeman | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 12.12.2007 13:26 |