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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 13:52   #1
fastdeath
Новичок
Джуниор
 
Регистрация: 20.10.2011
Сообщений: 8
По умолчанию Сравнить два числа без условий и стандартными операциями

Необходимо сравнить два натуральных числа , используя только +-*/ div mod .
Разветвления (условия , циклы ) использовать нельзя
Голова сломана )

Последний раз редактировалось fastdeath; 20.10.2011 в 14:51.
fastdeath вне форума Ответить с цитированием
Старый 20.10.2011, 14:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

расскажите, что означает - сравнить?
Выдать что "первое число больше", или "второе число больше"?
циклы использовать можно?


может устроит вариант решения с выдачей ответа вида: "Число XXXX больше!" (вместо XXXX - значение большего из чисел...) ?
/если ответ положительный - то поиском найдетё решение/
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2011, 14:50   #3
fastdeath
Новичок
Джуниор
 
Регистрация: 20.10.2011
Сообщений: 8
По умолчанию

Циклы - нельзя, так как это ветвление.
Выдать надо , как вы сказали , "Число x больше"
fastdeath вне форума Ответить с цитированием
Старый 20.10.2011, 15:23   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я же говорю - поиском можно найти!

например,
ТЫРК

или
Код:
{найти наибольшее наименьше значение без оператора сравнения}

var a,b : longint;
   MinVal, MaxVal : integer;
begin
   WriteLn('Введите два целых числа: ');
   Readln(a, b );
   MinVal := (a+b-abs(a-b)) div 2 ;
   MaxVal := (a+b+abs(a-b)) div 2 ;
   WriteLn('Число ',MaxVal,' не меньше, чем число ',MinVal);
   Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2011, 15:30   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Сообщение от fastdeath Посмотреть сообщение
Необходимо сравнить два натуральных числа , используя только +-*/ div mod .
Разветвления (условия , циклы ) использовать нельзя
Голова сломана )
а это задание из олимпиады школьного тура по программированию
Poma][a вне форума Ответить с цитированием
Старый 20.10.2011, 16:03   #6
fastdeath
Новичок
Джуниор
 
Регистрация: 20.10.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я же говорю - поиском можно найти!

например,
ТЫРК

или
Код:
{найти наибольшее наименьше значение без оператора сравнения}

var a,b : longint;
   MinVal, MaxVal : integer;
begin
   WriteLn('Введите два целых числа: ');
   Readln(a, b );
   MinVal := (a+b-abs(a-b)) div 2 ;
   MaxVal := (a+b+abs(a-b)) div 2 ;
   WriteLn('Число ',MaxVal,' не меньше, чем число ',MinVal);
   Readln
end.
abs тоже нельзя использовать
fastdeath вне форума Ответить с цитированием
Старый 20.10.2011, 16:06   #7
fastdeath
Новичок
Джуниор
 
Регистрация: 20.10.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
а это задание из олимпиады школьного тура по программированию
Угу , только не вижу его практической подоплёки.
fastdeath вне форума Ответить с цитированием
Старый 20.10.2011, 16:15   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
abs тоже нельзя использовать
функцию извлечения корня квадратного (функция SQRT) - то же нельзя использовать?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2011, 16:38   #9
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

используя только +-*/ div mod
--------
хахаха . задача жесть
Код:
WriteLn('Value ',a-(a-b)*byte(a>b),' < ',b-(b-a)*byte(a>b));
а если оптимизировать код то:
Код:
WriteLn('Value ',a-(a-b),' > ',b-(b-a));
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 20.10.2011 в 16:47.
JUDAS вне форума Ответить с цитированием
Старый 20.10.2011, 16:53   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
WriteLn('Value ',a-(a-b)*byte(a>b),' < ',b-(b-a)*byte(a>b));
Нельзя же < или > использовать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 20.10.2011 в 17:22.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить два файла demiancz Общие вопросы Delphi 22 16.02.2011 15:29
Ввод с клавиатуры два целых числа без знака и вывод на экран их сумму. gelya_17 Помощь студентам 5 18.10.2010 10:31
Сравнить два файла Aleksandr Microsoft Office Excel 6 07.10.2008 00:22
Два и более условий финкции If MAKEDON Общие вопросы Delphi 7 20.01.2008 09:39