• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Оператор if Pascal

Alexey123

Новые
Регистрация
11 Дек 2016
Сообщения
26
Реакции
0
Баллы
0
Оператор if Pascal

Даны четыре числа. Вывод чисел должен проходить в таком порядке - Б1, М1, Б2, М2.
Примечание:
Б1 - самое большое из всех четырех чисел;
М1 - самое маленькое из всех четырех чисел;
Б2 - второе самое большое число из четырех;
М2 - второе самое маленькое число из четырех.

То есть если например у нас есть числа 1, 2, 3, 4 то программа должна вывести их в таком порядке : 4, 1, 3, 2.

P.S. Времени совсем мало, поэтому мне бы очень пригодился код, если можно с объяснениями. Спасибо всем тем, кто поможет!:preved:
 
Не обещаю, может ночью под водочку нарисую. С утра пораньше загляни в тему.
 
Да ладно, делов-то куча...
Просто советом помочь - посмотри пузырьковую сортировку.
Андрей, я всё-таки предпочёл бы, чтобы в таких случаях ссылка давалась не на Вики, а на мой труд:
http://www.tehnari.ru/f41/t72821/
Всё ж таки старался, сочинял...
Ну да ладно.
Можно, конечно, и пузырьком. Тогда так:
Код:
Var
 A:Array[1..4] of Integer;
 i,j:Byte;
 D:Integer;

Begin
 Writeln('Enter 4 numbers');
 for i:=1 to 3 do read(A[i]);
 Readln(A[4]);

 for i:=1 to 3 do
  for j:=1 to 4-i do
   if A[j]<A[j+1] then
    begin
     D:=A[j];
     A[j]:=A[j+1];
     A[j+1]:=D;
    end;

 writeln(A[1],' ',A[4],' ',A[2],' ',A[3]);

 Readln
End.
Но можно и без пузырька, через это самое "if". Тут так:
Код:
Var
 a1,a2,a3,a4,n1,n2,n3,n4:Integer;

Begin
 Writeln('Enter 4 numbers');
 Read(a1,a2,a3);
 Readln(a4);

 n1:=a1;
 if a2>n1 then n1:=a2;
 if a3>n1 then n1:=a3;
 if a4>n1 then n1:=a4;

 n2:=a1;
 if a2<n2 then n2:=a2;
 if a3<n2 then n2:=a3;
 if a4<n2 then n2:=a4;

 n3:=n2;
 if (a1>n3) and (a1<n1) then n3:=a1;
 if (a2>n3) and (a2<n1) then n3:=a2;
 if (a3>n3) and (a3<n1) then n3:=a3;
 if (a4>n3) and (a4<n1) then n3:=a4;

 n4:=n1;
 if (a1<n4) and (a1>n2) then n4:=a1;
 if (a2<n4) and (a2>n2) then n4:=a2;
 if (a3<n4) and (a3>n2) then n4:=a3;
 if (a4<n4) and (a4>n2) then n4:=a4;

 writeln(n1,' ',n2,' ',n3,' ',n4);

 Readln
End.
 
Назад
Сверху