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

AlexandraBobkova AlexandraBobkova    3   09.08.2019 06:20    0

Ответы
Амишка51 Амишка51  04.10.2020 06:50
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
ПОКАЗАТЬ ОТВЕТЫ
dashkin678 dashkin678  04.10.2020 06:50
Существуют различные алгоритмы обмена значениями между двумя ячейками 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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика