![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
decompiler |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Юрий Репутация: ![]() ![]() ![]() |
Здравствуйте, товарищи))))
Предложите, кто может, свои варианты решения: как написать программу, выполняющую умножение двух чисел (для вещественного и целочисленного типов), используя при этом: 1. Оператор сложения. 2. Оператор вычитания. 3. Оператор присваивания. 4. Условный оператор и оператор goto. Заранее спасибо. ЗЫ. прилагаю свой вариант: Код var a,b,z:integer; function umn(x,y:integer):integer; var s,i:integer; label 1; begin s:=-y; i:=x; 1: s:=s+y; if x>0 then begin x:=x-1; goto 1; end; if x<0 then begin x:=x+1; goto 1; end; if i<0 then s:=-s; if x=0 then umn:=s; end; begin readln(a,b); z:=umn(a,b); writeln(z); end. |
![]() ![]() |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Без погрешности-то и встроенное умножение не умеет
![]() Можно циклом выделять все цифры; сначала бинарным поиском узнать порядок каждого из чисел, а потом вычитать постепенно и перемножать всё друг на друга (все разряды первого на все разряды второго) Хотя нет, с бинарным поиском я погорячился. Обычным циклом (т.е. вычисляем руками десятичный логарифм) |
Malice |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Без погрешности-то и встроенное умножение не умеет ![]() У меня уж больно большая - +/- 1. Знаю почему, но как точне сделать только сложениями пока не дошло ![]() Вот такой вариант: function mul2(a,b:real):real; Были и другие, но уж больно на шифровку похожие.. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 3:13 |