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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2010, 22:05   #1
dyonysos
Пользователь
 
Регистрация: 24.08.2009
Сообщений: 45
Вопрос сравнить 2 integer переменные БЕЗ IF или CASE (Pascal)

нужно сравнить в паскале 2 переменные типа integer без использования
IF или CASE...только + ,-, * ,mod, div и другие.

нужно сравнить эти переменные както и показать какая из них больше.
возможно ли это вообще?
dyonysos вне форума Ответить с цитированием
Старый 01.02.2010, 22:38   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
label l1;

var
  n, m : integer;
begin
  n := 1;
  m := 2;
  while n > m do
    begin
      writeln('n > m');
      goto l1;
    end;
  writeln('n < m');
  l1:
  readln;
end.
profi вне форума Ответить с цитированием
Старый 01.02.2010, 22:38   #3
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

сделай массив из двух строк - "равны" и "не равны"
x = y - булевское выражение, возвращает TRUE или FALSE
ord(TRUE) = 1
ord(FALSE) = 0
Namolem вне форума Ответить с цитированием
Старый 01.02.2010, 22:57   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

(a+b+(a-b)*(((a-b)or 1)mod 2)) div 2
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 01.02.2010, 23:00   #5
stefan0202
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 11
По умолчанию )

спaсибо всем кто откликнулся , вот формула : M(максимальная переменное a или b ) M:=(a+b+abs(a-b))/2

удачи !!
stefan0202 вне форума Ответить с цитированием
Старый 01.02.2010, 23:00   #6
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

не правильно понял условие, думал что равно не равно.
С учетом трех состояний: создаешь 3 целых переменных, записываешь в них результаты сравнений <, =, >
(1*less+2*eq+3*more) будет равно соответственно 1,2,3
подставляешь в индекс массива с ответом и выводишь
Namolem вне форума Ответить с цитированием
Старый 01.02.2010, 23:10   #7
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Вот еще вариант:
Код:
var
  a, b, x, y : integer;
begin
  a := 13;
  b := 22;
  x := round((a+b+abs(a-b))/2);
  y := round((a+b-abs(a-b))/2);
  writeln('MAX: ',x);
  writeln('MIN: ',y);
  readln;
end.
profi вне форума Ответить с цитированием
Старый 02.02.2010, 17:37   #8
stefan0202
Пользователь
 
Регистрация: 01.02.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от profi Посмотреть сообщение
Вот еще вариант:
Код:
var
  a, b, x, y : integer;
begin
  a := 13;
  b := 22;
  x := round((a+b+abs(a-b))/2);
  y := round((a+b-abs(a-b))/2);
  writeln('MAX: ',x);
  writeln('MIN: ',y);
  readln;
end.

ты гений !!
stefan0202 вне форума Ответить с цитированием
Старый 02.02.2010, 17:51   #9
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
Сообщение от stefan0202 Посмотреть сообщение
спaсибо всем кто откликнулся , вот формула : M(максимальная переменное a или b ) M:=(a+b+abs(a-b))/2
Ты, кстати, тоже!
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как опредилить real или integer записан в строку?? V.OX Общие вопросы Delphi 4 24.12.2009 22:11
Подскажите как можно сравнить 2 таблицы или колонки andrew_v_k Microsoft Office Excel 2 10.08.2009 11:56
задача с оператором case (Pascal) kena Помощь студентам 4 17.05.2009 12:54
Сравнить два множества. Pascal MaxMelnikov Помощь студентам 3 16.03.2009 09:35
integer, for, if в Pascal boom99 Помощь студентам 3 12.11.2007 16:25