ВВЕРХ
ВНИЗ

Перераспределение значений переменных

На этой странице дано решение примеров If9 - If11 из задачника Абрамяна, в которых рассматриваем работу с двумя числами (целыми или вещественными).

If9. Даны две переменные вещественного типа: A, B. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
var
  A, B, p: real;

begin
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  writeln('Перезапись чисел в порядке возрастания:');
  if A > B then
  begin
    p := A; { <-- переменной p присваиваем значение A }
    A := B; { <-- переменной A присваиваем значение B }
    B := p  { <-- переменной B присваиваем A (p = A) }
  end;
  writeln('A = ', A, ' B = ', B);
  readln
end.

If10. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

Здесь используется дополнительная переменная p:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A, B, p: integer;

begin
  writeln('Введите два целых числа A и B: ');
  readln(A, B);
  if A = B then p := 0
  else p := A + B;
  A := p;
  B := p;
  writeln('A = ', p, ', B = ', p);
  readln
end.

Во втором решении задачи if10 не используется дополнительная переменная:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
var
  A, B: integer;

begin
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  readln(A, B);
  { Сначала находим A в зависимости от условия: }
  if A <> B then A := A + B
  else A := 0;
  B := A; { <== находим В }
  writeln('A = ', A, ', B = ', B);
  readln
end.

If11. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
var
  A, B: integer;

begin
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  readln(A, B);
  if A <> B then
  begin
    if A < B then A := B { <-- находим большее число }
  end
  else A := 0;
  B := A;
  writeln('A = ', A, ', B = ', B);
  readln
end.

Другое решение задачи if11 возможно в PascalABC.Net, и здесь мы используем встроенную функцию maх(A, B) для нахождения максимального из двух чисел.

Код PascalABC.Net
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
var
  A, B: integer;

begin
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  readln(A, B);
  if A <> B then A := max(A, B)
  else A := 0;
  writeln('A = ', A, ', B = ', A);
  readln
end.



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