yurkovam-037
?>

Вводятся 4 числа. нужно вывести их в порядке возрастания. при любых входных данных алгоритм должен выполнять не более пяти операций сравнения. решения с большим количеством сравнений не оцениваются. оператор вывода во всём тексте алгоритма должен быть единственный.

Информатика

Ответы

АлександровнаВладимирович1424
Описание алгоритма:
Пусть даны числа a, b, c, d. Сравниваем a и b, c и d. Затем сравниваем максимальные числа в своих парах (наибольшее из них - максимальное среди всех чисел) и минимальные числа в своих парах (наименьшее из них - минимальное среди всех чисел). Сравниваем оставшиеся два числа и получаем информацию о порядке всех чисел, которую выводим на экран.

Реализация (python 3)
a, b, c, d = map(int, input().split())
if a > b:
    a, b = b, a
if c > d:
    c, d = d, c
if a > c:
    a, c = c, a
if b > d:
    b, d = d, b
if b > c:
    b, c = c, b
print(a, b, c, d)

Пример ввода:
1 4 2 3
Пример вывода:
1 2 3 4
versalmoda2971
Используем формулу Герона для нахождения площади треугольника по трем сторонам: S=√(p·(p-a)·(p-b)·(p-c)), где p - полупериметр, равный
p=(a+b+c)/2

Программа:

program z;
var a1,b1,c1,a2,b2,c2,p1,p2,s1,s2:real;
begin
readln(a1,b1,c1);   {ввод длин сторон первого треугольника}
p1:=(a1+b1+c1)/2; {полупериметр первого треугольника}
s1:=sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1)); {площадь первого треугольника}

readln(a2,b2,c2);  {ввод длин сторон второго треугольника}
p2:=(a2+b2+c2)/2; {полупериметр второго треугольника}
s2:=sqrt(p2*(p2-a2)*(p2-b2)*(p2-c2)); {площадь второго треугольника}
if s1=s2                   {если площади треугольников равны}
then writeln('Yes')   {то вывести положительный ответ}
else writeln('No');    {иначе вывести отрицательный ответ}
end.
dimoni86
Const
  n = 11;

var
  x: array[1..n] of integer;
  i, k, d, s: integer;

begin
  Randomize;
  Writeln('Элементы массива');
  k := 0; s := 0;
  for i := 1 to n do
  begin
    d := Random(11) - 5;
    Write(d:3);
    if (i mod 2) = 0 then begin { четное место }
      if d = 1 then Inc(k);
      x[i] := d
    end
    else begin
      if d < 0 then s := s + d;
      x[i] := sqr(d)
    end
  end;
  Writeln;
  Writeln('Результирующий массив');
  for i := 1 to n do Write(x[i]:3);
  Writeln;
  Writeln('Количество единиц на четных местах равно ', k);
  Writeln('Сумма отрицательных элементов на нечетных местах равна ', s)
end.

Тестовое решение:
Элементы массива
 -3  0 -5  1  5  1 -3 -4  5 -3 -2
Результирующий массив
  9  0 25  1 25  1  9 -4 25 -3  4
Количество единиц на четных местах равно 2
Сумма отрицательных элементов на нечетных местах равна -13

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Вводятся 4 числа. нужно вывести их в порядке возрастания. при любых входных данных алгоритм должен выполнять не более пяти операций сравнения. решения с большим количеством сравнений не оцениваются. оператор вывода во всём тексте алгоритма должен быть единственный.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

maksmi
Dms161964937
Pautova1119
stalker2201
Shcherbakov_Artur1781
Нозадзе_Новиков392
ramco1972
Alekseevich_Viktorovna
marinamarinazmeeva2444
janetp
elenak26038778
LYuBOV
stasyan
dm1trviktor585
grekova5