Номер §1.2 № 6

ГДЗ по информатике 9 класс, Босова 2023, страница 29

§. № Обмен значений переменных

Напишите программу обмена значений переменных a, b, c в порядке возрастания, т. е. так, чтобы a < b < c. Используйте процедуру swap.

procedure swap(var x, y: integer);
var m: integer;
begin
  m := x;
  x := y;
  y := m
end;

Исходные данные вводятся с клавиатуры.

Пример входных данных Пример выходных данных
1 2 3 1 2 3
2 1 3 1 2 3
3 1 2 1 2 3
2 3 1 1 2 3
Решение

Процедура swap меняет значения двух переменных через вспомогательную m. Параметры x и y помечены var, поэтому меняются именно переданные переменные основной программы. Сравним сначала a и b, затем b и c, затем ещё раз a и b: после каждого обмена устраняется нарушение порядка в соответствующей паре.

var a, b, c: integer;

procedure swap(var x, y: integer);
var m: integer;
begin
  m := x;
  x := y;
  y := m
end;

begin
  readln(a, b, c);
  if a > b then swap(a, b);
  if b > c then swap(b, c);
  if a > b then swap(a, b);
  writeln(a, ' ', b, ' ', c)
end.

Для входа трассировка такова:

Шаг a b c Причина
Ввод Исходные значения
swap(a, b)
swap(b, c)
Последняя проверка ложно

После второй проверки c — наибольшее из трёх чисел; последняя проверка расставляет a и b. При разных входных числах получается строгое . При повторяющихся значениях достижим только неубывающий порядок .

Ответ

Для всех четырёх примеров на выходе . Программа приведена в решении.

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото