ВВЕРХ
ВНИЗ

Значения переменных и их порядковые номера

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.



Яндекс.Метрика