Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2012, 13:02   #1
nimfa1
Новичок
Джуниор
 
Регистрация: 28.06.2012
Сообщений: 2
По умолчанию Длинная арифметика

Здравствуйте,столкнулась с такой проблемкой,задали выполнить длинную арифметику по сложению,вычитанию,умножению. сложение и вычитание выполнила правильно,а вот при умножении десятка на десяток (к примеру 15*15,16*16) выполняя перенос на единицу влево и складывая выдает неверный ответ 15*15= 225(а выдает 115), 16*16 =256(а выдает 156) в чем может быть причина?

http://pastebin.com/bkmAxAZC тело программы

подскажите,пожалуйста...голова уже пухнит
nimfa1 вне форума Ответить с цитированием
Старый 28.06.2012, 13:21   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Прежде чем искать конкретно Ваш затык необходимо:
а) снабдить код комментариями по коду
б) разбить имеющийся код на независимые процедуры и функции
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 28.06.2012, 13:22   #3
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Проще по шагам смотреть что да как.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 28.06.2012, 15:06   #4
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Да проще к результату сотку накидывать да и все.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 28.06.2012, 15:16   #5
nimfa1
Новичок
Джуниор
 
Регистрация: 28.06.2012
Сообщений: 2
По умолчанию

один из пользователей(programm1r) подсказал ошибку,всё гениально просто,и почему в голову не пришло такое:
Строчку
zi:=(strtoint(m[i])+strtoint(n[i])) div 10;
замените на эту:
zi := ( strtoint(ress[q]) + strtoint(m[i])*strtoint(n[j]) ) div 10;
nimfa1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Длинная арифметика _Varyag_ Помощь студентам 23 21.02.2012 19:33
Длинная арифметика morgan97 Паскаль, Turbo Pascal, PascalABC.NET 0 04.12.2011 20:03
Длинная арифметика nervniy Общие вопросы Delphi 4 19.04.2011 23:18
Длинная арифметика Indira Общие вопросы C/C++ 2 24.01.2010 10:28
Длинная арифметика DmT Помощь студентам 2 06.10.2007 22:43