Задача 8 Урок 9

Задача 8 Урок 9

Пользователь вводит три числа, найдите из них максимальное.

Решите тремя способами:

1 способ: С использованием логической операции and.

var
  a, b, c: integer;

begin
  write('Введите число a: ');
  read(a);
  write('Введите число b: ');
  read(b);
  write('Введите число c: ');
  read(c);

  write('Максимальное число: ');

   if (a > b) and (a > c) then
   writeln(a);
   if (b > a) and (b > c) then
   writeln(b);
   if (c > b) and (c > b) then
   writeln(c);

  readln();
end.
2 способ: С вложенными блоками (без and, все опараторы if должны быть в полной форме).
var
  a, b, c: integer;

begin
  write('Введите число a: ');
  read(a);
  write('Введите число b: ');
  read(b);
  write('Введите число c: ');
  read(c);

  write('Максимальное число: ');

   if (a > b) then
      if (a > c) then
         writeln(a)
      else
         writeln(c)
   else
      if (b > c) then
         writeln(b)
      else
         writeln(c);

   readln();

end.    
3 способ: Без вложенных блоков (без and) -- запомнив максимум из первых двух чисел в специальной переменной.
var
  a, b, c, max: integer;

begin
  write('Введите число a: ');
  read(a);
  write('Введите число b: ');
  read(b);
  write('Введите число c: ');
  read(c);

   if (a > b) then
     max := a
   else
     max := b;

   if (max < c) then
     max := c;

   write('Максимальное число: ', max);
   readln();

end.  
vedro-compota's picture

   if (a > b) and (a > c) then
   writeln(a);
   if (b > a) and (b > c) then
   writeln(b);
   if (c > b) and (c > b) then
   writeln(c);

1) Проверить случай равенства всех или некоторых элементов
2) Лишние проверки - если максимум уже найден, то далее сравнения делать не нужно

_____________
матфак вгу и остальная классика =)

cпособ 1 исправлен

var
  a, b, c: integer;

begin
  write('Введите число a: ');
  read(a);
  write('Введите число b: ');
  read(b);
  write('Введите число c: ');
  read(c);

  if (a >= b) and (a >= c) then
    writeln('Максимальное число: ', a)
  else
    if (b >= a) and (b >= c) then
      writeln('Максимальное число: ', b)
        else
          (c >= a) and (c >= b) then
            writeln('Максимальное число: ', b);

  readln();
end.

способ 2 исправлен

var
  a, b, c: integer;

begin
  write('Введите число a: ');
  read(a);
  write('Введите число b: ');
  read(b);
  write('Введите число c: ');
  read(c);

  if (a >= b) then
    if (a >= c) then
      writeln('Max= ', a)
    else
      writeln('Max= ', c)
  else
    if (b >= c) then
      writeln('Max= ', b)
    else
      writeln('Max= ', c);

  readln();
end.              

cпособ 3 исправлен

var
  a, b, c, d: integer;

begin
  write('Введите число a: ');
  read(a);
  write('Введите число b: ');
  read(b);
  write('Введите число c: ');
  read(c);
  d := a;

  if (b >= d) then
    d := b
  if (c >= d) then
    d := c;

  writeln('Max= ', d);

  readln();
end. 
vedro-compota's picture

  if (a >= b) and (a >= c) then
    writeln('Максимальное число: ', a)
  else
    if (b >= a) and (b >= c) then
      writeln('Максимальное число: ', b)
        else
          (c >= a) and (c >= b) then
            writeln('Максимальное число: ', b);

-- исправить форматирование + есть подозрение, Что код не запустится вообще

_____________
матфак вгу и остальная классика =)