Значения переменных и их порядковые номера
If16. Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.
Если числа упорядочены по возрастанию, то выполняется неравенство A<B<C. На Паскале это можно записать как (A<B)and(B<C)
. Эта программа исключает положительный ответ в случае равныех чисел, поскольку в условии задачи имеется ввиду строгая упорядоченность по возрастанию (A<B и B<C):
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | var
A, B, C: real;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
write('C = ');
readln(C);
writeln('Результат: ');
if (A < B) and (B < C) then begin
A := 2 * A; { <== Удваиваем А, В, С }
B := 2 * B;
C := 2 * C
end
else begin
A := -A; { <== Меняем на противоположные }
B := -B;
C := -C
end;
writeln(' A = ', A, ', B = ', B, ', C = ', C);
readln
end. |
|
If17. Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.
Решение этой задачи аналогично решению предыдущей задачи If16, только здесь надо добавить условие расположенности чисел по убыванию. Если A>B>C, то записать на Паскале это можно как (A>B)and(B>C)
.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | var
A, B, C: real;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
write('C = ');
readln(C);
writeln('Результат: ');
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 := -A;
B := -B;
C := -C
end;
writeln(' A = ', A, ', B = ', B, ', C = ', C);
readln
end. |
|
If18. Даны три целых числа, одно из которых отлично от двух других, равных между собой. Определить порядковый номер числа, отличного от остальных.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | var
a, b, c: integer;
begin
writeln('Введите три числа:');
readln(a, b, c);
{ Условие равенства и не равенства всех чисел: }
if ((a = b)and(b = c)) or { <-- Все три числа равны }
((a <> b)and(b <> c)and(a <> c)) then { <-- Все числа разные }
writeln('Задача не имеет решения')
else begin
write('Порядковый номер неравного числа: ');
{ Находим номер отличного от других числа: }
if b = c then writeln(1){ <-- неравное число: a }
else
if a = c then writeln(2){ <-- неравное число: b }
else writeln(3) { <-- a=b, неравное число: c }
end;
readln
end. |
|
* * *
Второй вариант решения задачи if18 пересматривает все возможные варианты:
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | var
a, b, c: integer;
begin
writeln('Введите три числа:');
readln(a, b, c);
{ Находим номер отличного от других числа: }
if (b = c)and(b <> a) then writeln(1) { неравное: a }
else
if (c = a)and(c <> b) then writeln(2) { неравное: b }
else
if (a = b)and(a <> c) then writeln(3) { неравное: c }
else writeln('Вы ошиблись при вводе чисел');
readln
end. |
|
If19. Даны четыре целых числа, одно из которых отлично от трех других, равных между собой. Определить порядковый номер числа, отличного от остальных.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | var
A, B, C, D: integer;
begin
writeln('Введите четыре целых числа:');
readln(A, B, C, D);
{ Находим номер отличного от других числа: }
if (A = B)and(B = C)and(D <> A) then writeln(4) { число: D }
else
if (A = B)and(B = D)and(C <> B) then writeln(3) { число: C }
else
if (A = C)and(C = D)and(B <> C) then writeln(2) { число: B }
else
if (B = C)and(C = D)and(A <> D) then writeln(1) { число: A }
else writeln'Вы ошиблись при вводе чисел');
readln
end. |
|