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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2009, 13:01   #1
strateg66
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 23
Печаль Задача на вычитание без знака минус

С клавиатуры вводится два четырехразрядных десятичных целых числа N и М выполнить операцию N-M без использования операции "-"

если у кого нибудь есть соображения по поводу такой задачи напишите пожалуйста. Пока что не знаю даже с какой стороны подступиться.
strateg66 вне форума Ответить с цитированием
Старый 07.10.2009, 13:07   #2
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 534
По умолчанию

нельзя вообще использовать минус во всей программе или просто нельзя напрямую писать n-m?
m0nax вне форума Ответить с цитированием
Старый 07.10.2009, 13:11   #3
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

как вариант можно сделать так
Код:
i:=0;
if n<m then
 begin
 while n+i<m do i:=i+1;
 writeln('Разность равна ',-i);
 end;
else
 begin
 while m+i<n do i:=i+1;
writeln('Разность равна ',i);
 end;
Consol вне форума Ответить с цитированием
Старый 07.10.2009, 13:48   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Перевести десятичные числа в двоичные, выполнить логически вычитание (по-битово), результат опять перевести в десятичное число. Вроде и ответ получим и арифметическую операцию вычитания обойдем.
Вот только скажите зачем этот гемморой нужен? Какой смысл в таких извращениях? Неужели нельзя учить на нормальных задачах?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 07.10.2009, 13:55   #5
strateg66
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 23
По умолчанию

Цитата:
Сообщение от DeKot Посмотреть сообщение
Перевести десятичные числа в двоичные, выполнить логически вычитание (по-битово), результат опять перевести в десятичное число. Вроде и ответ получим и арифметическую операцию вычитания обойдем.
Вот только скажите зачем этот гемморой нужен? Какой смысл в таких извращениях? Неужели нельзя учить на нормальных задачах?
а поподробнее об этом методе нельзя ли?
думаю именно такое решение и необходимо.
А вопрос этот не ко мне , а к преподу. Самое ужасное, что даже близкого ничего не рассматривали, а лабораторку решайте кто как может. извращайтесь.
strateg66 вне форума Ответить с цитированием
Старый 07.10.2009, 14:21   #6
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Или еще один программный способ:
Код:
var N,M,_Result: integer;
  i: integer;
begin
  for i:= 1 to M do
  begin
    Dec(N);
  end;
  _Result:= N; 
end;
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новый блок питания для бытовой техники: минус провод Levsha100 Компьютерное железо 6 06.10.2009 00:42
Вычитание avnsanto Microsoft Office Excel 0 24.07.2009 02:33
поиск максимума.(16 бит,uns – число без знака) JNN Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 04.06.2009 23:24
Задание на типовой расчет: Какое наибольшее целое число без знака может быть записано в N двоич.разрядах? Бубликова Фриланс 10 06.12.2008 10:35
вычитание даты zetrix Microsoft Office Excel 3 10.11.2006 06:30