Охрана труда:
нормативно-правовые основы и особенности организации
Обучение по оказанию первой помощи пострадавшим
Аккредитация Минтруда (№ 10348)
Подготовьтесь к внеочередной проверке знаний по охране труда и оказанию первой помощи.
Допуск сотрудника к работе без обучения или нарушение порядка его проведения
грозит организации штрафом до 130 000 ₽ (ч. 3 статьи 5.27.1 КоАП РФ).
Повышение квалификации

Свидетельство о регистрации
СМИ: ЭЛ № ФС 77-58841
от 28.07.2014

Почему стоит размещать разработки у нас?
  • Бесплатное свидетельство – подтверждайте авторство без лишних затрат.
  • Доверие профессионалов – нас выбирают тысячи педагогов и экспертов.
  • Подходит для аттестации – дополнительные баллы и документальное подтверждение вашей работы.
Свидетельство о публикации
в СМИ
свидетельство о публикации в СМИ
Дождитесь публикации материала и скачайте свидетельство о публикации в СМИ бесплатно.
Диплом за инновационную
профессиональную
деятельность
Диплом за инновационную профессиональную деятельность
Опубликует не менее 15 материалов в методической библиотеке портала и скачайте документ бесплатно.
08.09.2015

Процедура Swap в FreePascal

Трофимов Виктор Геннадьевич
учитель информатики
Описание процедуры, позволяющей обменивать в программе любые значения переменных.

Содержимое разработки

ФИО автора: Трофимов Виктор Геннадьевич

Место работы: ГКООУ санаторная школа-интернат №28 г. Ростова-на-Дону

Должность: учитель информатики и ИКТ

ПРОЦЕДУРА SWAP В FREE PASCAL

Часто в процессе выполнения программы требуется поменять значения переменных. Это случается не только при сортировке массивов, но и во множестве «бытовых» ситуаций, к примеру, замена длин массивов при длиноисчисленных вычислениях.

Классическая программа выглядит так:

tmp := a;

a := b;

b := tmp;

Здесь и сейчас не будет рассматриваться механизм обмена данных без применения третьей.

Попытаемся оптимизировать процесс. Это легко сделать с помощью процедуры, которая будет обменивать значения любых двух однотипных переменных с помощью передачи ссылок.

Ниже представлен текст процедуры для обмена переменных типа integer:

procedure swap(var x1, x2: integer);

var tmp: integer;

begin

tmp := x1;

x1 := x2;

x2 := tmp;

end;

Обратите внимание на использование словаvar в параметрах процедуры:

procedure swap(var x1, x2: integer);

Оно означает, что в процедуру будут переданы не значения переменных, ассылки на переменные. Все операции замены будут выполнены с ссылками. После выполнения любые две переменные типаinteger (или любой другой, но указанной в параметрах) обменяют свои значения.

Пример программы:

program swp;

uses crt;

var a, b, c, d: integer;

procedure swap(var x1, x2: integer);

var tmp: integer;

begin

tmp := x1;

x1 := x2;

x2 := tmp;

end;

begin

clrscr;

a := 1;

b := 2;

c := 5;

d := 6;

writeln(a, ' ', b, ' ', c, ' ', d);

swap(a, b);

swap(c, d);

writeln(a, ' ', b, ' ', c, ' ', d);

readkey;

end.

Результат работы программы:

1 2 5 6

2 1 6 5

Вывод осуществлялся в порядке a, b, c, d. То есть когда мы вызывали процедуру swap с именами переменных, менялись именно переменные. Дополнительные действия при таком подходе совершать не надо и одна процедура является универсальной для любого количества вызовов с любыми параметрами.

ПРИМЕЧАНИЕ: В языке PascalABC процедура swap является встроенной.

Спасибо за внимание!

Адрес публикации: https://www.prodlenka.org/metodicheskie-razrabotki/145648-procedura-swap-v-freepascal

Свидетельство участника экспертной комиссии
Рецензия на методическую разработку
Опубликуйте материал и закажите рецензию на методическую разработку.
Также вас может заинтересовать
Свидетельство участника экспертной комиссии
Свидетельство участника экспертной комиссии
Оставляйте комментарии к работам коллег и получите документ
БЕСПЛАТНО!
У вас недостаточно прав для добавления комментариев.

Чтобы оставлять комментарии, вам необходимо авторизоваться на сайте. Если у вас еще нет учетной записи на нашем сайте, предлагаем зарегистрироваться. Это займет не более 5 минут.

 

Для скачивания материалов с сайта необходимо авторизоваться на сайте (войти под своим логином и паролем)

Если Вы не регистрировались ранее, Вы можете зарегистрироваться.
После авторизации/регистрации на сайте Вы сможете скачивать необходимый в работе материал.

Рекомендуем Вам курсы повышения квалификации и переподготовки