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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2010, 14:33   #1
Evgen90
Новичок
Джуниор
 
Регистрация: 01.12.2010
Сообщений: 3
По умолчанию Ветвления (Pascal)

Добрый день ! Уважаемые программисты помогите пожалуйста решить задачу :

Если произведение различных чисел x,y,z больше 20, то заменить меньшее из x,z разностью двух других, в противном случае увеличить меньшее из y,z на два.

Заранее очень Благодарен !
Evgen90 вне форума Ответить с цитированием
Старый 01.12.2010, 15:54   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
program z_1;

var
  x, y, z: integer;

begin
  write('введите Х, Y, Z: ');
  readln(x, y, z);
  if (x * y * z > 20) and (x > z) then z := x - y;
  if (x * y * z > 20) and (x < z) then x := y - z;
  if (x * y * z < 20) and (y > z) then z := z + 2;
  if (x * y * z < 20) and (y < z) then y := y + 2;
  writeln('X=', x, ' Y=', y, ' Z=', z);
end.
можно так... не совсем рационально, зато просто и понятно

или так:
Код:
program z_1;

var
  x, y, z: integer;

begin
  write('введите Х, Y, Z: ');
  readln(x, y, z);
  if (x * y * z > 20) then
    if (x > z) then z := x - y
    else x := y - z
  else if (y > z) then z := z + 2
        else y := y + 2;
  writeln('X=', x, ' Y=', y, ' Z=', z);
end.

Последний раз редактировалось unbanned; 01.12.2010 в 16:12.
unbanned вне форума Ответить с цитированием
Старый 01.12.2010, 16:01   #3
Evgen90
Новичок
Джуниор
 
Регистрация: 01.12.2010
Сообщений: 3
По умолчанию

Спасибо большое )
Evgen90 вне форума Ответить с цитированием
Старый 01.12.2010, 16:52   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в первом варианте решения есть досадный прокол...
Цитата:
Если произведение ... больше 20, то ... , в противном случае ...
если произведение будет равно 20 - то вообще никаких действий не будет.
надо добавить равно (меньше или равно 20) :
Код:
  if (x * y * z <= 20) and (y > z) then z := z + 2;
  if (x * y * z <= 20) and (y < z) then y := y + 2;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу . Ветвления Evgen90 Паскаль, Turbo Pascal, PascalABC.NET 1 01.12.2010 14:15
ветвления, с++ нужны помошь phones Общие вопросы C/C++ 1 25.03.2010 17:55
С++,циклы и операторы ветвления -ushёl- Помощь студентам 1 12.12.2009 22:25
Ветвления. glupayastudentka Помощь студентам 1 23.06.2009 22:38
Вопрос относительно ветвления if/else ROD Помощь студентам 2 03.12.2008 18:12