Существуют различные алгоритмы обмена значениями между двумя ячейками 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.
Elshel8694
05.10.2020
Смотря какая быстрозавариваемой лапша))) Допустим это ролтон, тогда алгоритм такой. 1) Раскрываем пакетик 2) Вываливаем лапшу в тарелку 3) Добавляем специи 4) Завариваем лапшу
Если не следовать алгоритму, то нет смысла его использовать. Например, вначале выполним пункт 2 и 3, а затем 1 и 4. Что у нас получится? Нарушая пункт 1 мы переходим к пункту 2, но тут проблема, мы не можем вывалить лапшу, ведь мы не открыли пакетик. Здесь идет явное нарушение алгоритма и дальнейшее его использование не валидно.