Решение задач блока If 11-20
Решение задач из задачника по программированию М. Э. Абрамяна. Задачи из блока If: «Условный оператор».
Задача If11
Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

uses PT4;
var
a, b: integer;
begin
Task('If11');
Read(a, b);
if a <> b then
if a > b then b := a
else a := b
else begin
a := 0; b := 0;
end;
Write(a, b);
end.
Pascaluses PT4;
var
a, b, res: integer;
begin
Task('If11');
Read(a, b);
if a <> b then
if a > b then res := a
else res := b
else begin
res := 0;
end;
Write(res, res);
end.
PascalЗадача If12
Даны три числа. Найти наименьшее из них.

uses PT4;
var
a, b, c: real;
begin
Task('If12');
Read(a, b, c);
if (a < b) and (a < c) then Write(a);
if (b < a) and (b < c) then Write(b);
if (c < a) and (c < b) then Write(c);
end.
PascalЗадача If13
Даны три числа. Найти среднее из них (т. е. число, расположенное между наименьшим и наибольшим).

uses PT4;
var
a, b, c: real;
begin
Task('If13');
Read(a, b, c);
if ((a > b) and (a < c)) or ((a < b) and (a > c)) then Write(a);
if ((b > a) and (b < c)) or ((b < a) and (b > c)) then Write(b);
if ((c > a) and (c < b)) or ((c < a) and (c > b)) then Write(c);
end.
Pascaluses PT4;
var
a, b, c: real;
begin
Task('If13');
Read(a, b, c);
if (a > b) and (a > c) then
if b > c then Write(b)
else Write(c);
if (b > a) and (b > c) then
if a > c then Write(a)
else Write(c);
if (c > a) and (c > b) then
if a > b then Write(a)
else Write(b);
end.
PascalЗадача If14
Даны три числа. Вывести вначале наименьшее, а затем наибольшее из данных чисел.

uses PT4;
var
a, b, c: real;
begin
Task('If14');
Read(a, b, c);
if (a < b) and (a < c) then write(a);
if (b < a) and (b < c) then write(b);
if (c < a) and (c < b) then write(c);
if (a > b) and (a > c) then write(a);
if (b > a) and (b > c) then write(b);
if (c > a) and (c > b) then write(c);
end.
PascalЗадача If15
Даны три числа. Найти сумму двух наибольших из них.

uses PT4;
var
a, b, c: real;
begin
Task('If15');
Read(a, b, c);
if (a > b) and (a > c) then
if b > c then Write(a + b)
else Write(a + c);
if (b > a) and (b > c) then
if a > c then Write(b + a)
else Write(b + c);
if (c > a) and (c > b) then
if a > b then Write(c + a)
else Write(c + b);
end.
PascalЗадача If16
Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.

uses PT4;
var
a, b, c: real;
begin
Task('If16');
Read(a, b, c);
if (a < b) and (b < c) then
begin
a := 2 * a;
b := 2 * b;
c := 2 * c;
end else begin
a := -1 * a;
b := -1 * b;
c := -1 * c;
end;
Write(a, b, c);
end.
PascalЗадача If17
Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.

uses PT4;
var
a, b, c: real;
begin
Task('If17');
Read(a, b, c);
if ((a < b) and (b < c)) or ((a > b) and (b > c)) then
begin
a := 2 * a;
b := 2 * b;
c := 2 * c;
end else begin
a := -1 * a;
b := -1 * b;
c := -1 * c;
end;
Write(a, b, c);
end.
PascalЗадача If18
Даны три целых числа, одно из которых отлично от двух других, равных между собой. Определить порядковый номер числа, отличного от остальных.

uses PT4;
var
a, b, c: integer;
begin
Task('If18');
Read(a, b, c);
if a = b then Write(3);
if a = c then Write(2);
if b = c then Write(1);
end.
PascalЗадача If19
Даны четыре целых числа, одно из которых отлично от трех других, равных между собой. Определить порядковый номер числа, отличного от остальных.

uses PT4;
var
a, b, c, d: integer;
begin
Task('If19');
Read(a, b, c, d);
if (a = b) and (b = c) then Write(4);
if (a = b) and (b = d) then Write(3);
if (a = c) and (c = d) then Write(2);
if (b = c) and (c = d) then Write(1);
end.
PascalЗадача If20
На числовой оси расположены три точки: A, B, C. Определить, какая из двух последних точек (B или C) расположена ближе к A, и вывести эту точку и ее расстояние от точки A.

uses PT4;
var
a, b, c: real;
begin
Task('If20');
Read(a, b, c);
if abs(a - b) < abs(a - c) then Write(b, abs(a - b))
else Write(c, abs(a - c));
end.
Pascal