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

Пользователь вводит четыре числа, найдите из них максимальное -- решите через вложенные блоки if в полной форме (без использования логических операций).
Примечание: решение с помощью AND более удобно на практике, но для тренировки понимания тут мы решаем через вложенные блоки.

var
  a,b,c,d: integer;

begin
    writeln('Vvedite chisla A, B, C, D: ');
    writeln('Vvedite A: ');
    readln (a);
    writeln('Vvedite B: ');
    readln (b);
    writeln('Vvedite C: ');
    readln (c);
    writeln('Vvedite D: ');
    readln (d);

    write('Max:');

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


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

       else //  a b c
         writeln (c);

-- начиная с этого места неверно, остально правильно

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

var
  a,b,c,d: integer;

begin
    writeln('Vvedite chisla A, B, C, D: ');
    writeln('Vvedite A: ');
    readln (a);
    writeln('Vvedite B: ');
    readln (b);
    writeln('Vvedite C: ');
    readln (c);
    writeln('Vvedite D: ');
    readln (d);

    write('Max:');

    if ( a > b ) then // b a
       if ( a > c ) then  // b c a
         if (a > d) then // b c d a
          writeln (a)
         else   // b c a d
          writeln (d)
       else  // b a c
         if ( c > d )then  // b a d c
          writeln (c)
         else  // b a c d
          writeln (d)
     else // a b
       if ( b > c ) then  // a c b
         if ( b > d ) then // a c d b
           writeln (b)
         else // a c b d
           writeln (d)
       else  // a c
         if ( c > d )then  // a b d c
          writeln (c)
         else
       if ( d > c ) then  // c d
           writeln (d)
       else
           writeln (c);
    readln ();
  end.
        
vedro-compota's picture

по-идее, не сработает кобинация:

1 2 4 4 

-- все нормально

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

vedro-compota's picture

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

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