Поменять местами ячейки. пример а=3,b=5=>a=5,b=3.паскаль

0 голосов
65 просмотров

Поменять местами ячейки. пример а=3,b=5=>a=5,b=3.паскаль


Информатика (132 баллов) | 65 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Существуют различные алгоритмы обмена значениями между двумя ячейками a и b.
1. Самый простой - с использованием промежуточной ячейки

var
  a,b,t:integer;
begin
  a:=10; b:=20; Writeln(a,' ',b);
  t:=a; a:=b; b:=t; Writeln(a,' ',b)
end.

2. Обмен без использования дополнительной памяти при помощи сложения и вычитания

var
  a,b:integer;
begin
  a:=10; b:=20; Writeln(a,' ',b);
  b:=a+b; a:=b-a; b:=b-a; Writeln(a,' ',b)
end.

3. Обмен без использования дополнительной памяти при помощи логической операции "исключающее ИЛИ"

var
  a,b:integer;
begin
  a:=10; b:=20; Writeln(a,' ',b);
  a:=a xor b; b:=a xor b; a:=a xor b; Writeln(a,' ',b)
end.

Язык PascalABC.NET дополнительно предлагает простые способы обмена.

4. Обмен при помощи процедуры Swap

var
  a,b:integer;
begin
  a:=10; b:=20; Writeln(a,' ',b);
  Swap(a,b); Writeln(a,' ',b)
end.

5. Обмен на основе кортежного присваивания

var
  a,b:integer;
begin
  a:=10; b:=20; Writeln(a,' ',b);
  (a,b):=(b,a); Writeln(a,' ',b)
end.

(150k баллов)
0 голосов

1.
var a,b,c:integer;
begin
a:=3; b:=5;
writeln('a = ',a,' b = ',b);
c:=a;
a:=b;
b:=c;
writeln('a = ',a,' b = ',b);
end.

Результат:
a = 3 b = 5
a = 5 b = 3

2.
var a,b:integer;
begin
a:=3; b:=5;
writeln('a = ',a,' b = ',b);
a:=a+b;
b:=a-b;
a:=a-b;
writeln('a = ',a,' b = ',b);
end.

Результат:
a = 3 b = 5
a = 5 b = 3

(194k баллов)