Вопрос № 87629: Здравствуйте, господа программисты. Пишу в Линуксе лабу по вводу двух чисел, их преобразованию, сложению и выводу на экран. В процедуре Reconstruction пытаюсь собрать из введенных цифр число посредством схемы Горнера.
Формула Горнера: (...(A * p...
Вопрос № 87.629
Здравствуйте, господа программисты. Пишу в Линуксе лабу по вводу двух чисел, их преобразованию, сложению и выводу на экран. В процедуре Reconstruction пытаюсь собрать из введенных цифр число посредством схемы Горнера.
Формула Горнера: (...(A * p + A )*p+...)*p+A )*p+A
n n-1 1 0
То есть при каждой итерации вычисляемая частичная сумма(Аn) умножается на основание системы счисления(р - в данном случае 10) и прибавляется к предыдущему введенному значению(А[n-1]).
Ошибку не вижу, а программа выводит странный результат: при введенных одноразрядных числах выдает 6068. Помогите вывести правильный результат сложения!
Очень большая просьба: помогите разобраться!
Приложение:
Отправлен: 19.05.2007, 16:01
Вопрос задал: Lazar (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Lazar!
Посмотрите на реализацию в приложении.
непонятны строки:
mov al,byte[ebx+1] ;беру из буфера первый байт
. . .
add eax,dword[next_symbol] ;добавляю к eax переменную с последующим числом
Зачем в eax собирать число и затем затирать младший байт в al
Удачи!
Приложение:
--------- И только наступив на грабли мы преобретаем драгоценный опыт!