Основы программирования на языке Turbo Pascal. Беляева И.В. - 115 стр.

UptoLike

Составители: 

115
В строке {*} в процедуру pp1 будет передана копия массива A. Внутри
процедуры с этой копией можно делать что угодно. После возвращения в
основную программу массив A останется неизменным.
В строке {**} в процедуру pp2 будет передан адрес массива B. Внутри
процедуры через этот адрес будет вестись работа с исходным массивом B.
Внутри процедуры с массивом можно делать все что угодно, все
изменения массива производятся непосредственно в исходном массиве B.
Следовательно, после возврата в основную программу в массиве B все
внесенные изменения останутся.
В строке {***} в процедуру pp3 будет передан адрес массива C.
Внутри процедуры через этот адрес будет вестись работа с исходным
массивом C. Внутри процедуры с массивом допустимо выполнять только
те действия, которые не изменяют значения элементов массива. В случае
попытки изменить значение элемента массива компилятор не пропустит
программу на выполнениевыдаст ошибку.
Теперь рассмотрим, какой объем данных передается в процедуры pp1,
pp2 и pp3. В процедуру pp1 передается копия массива A. Это 200 байт.
В процедуры pp2 и pp3 передаются адреса массивов B и C соответственно.
Адрес в языке Turbo Pascal всегда занимает 4 байта. Таким образом, в
процедуры pp2 и pp3 передаются по 4 байта, что ровно в 50 раз меньше,
чем передается в pp1.
Заметим, что параметрыконстанты, как правило, используются для
передачи в подпрограммы переменных, имеющих большой размер,
изменение которых необходимо запретить.
Задача с поиском цепочек в массиве
Для закрепления пройденного материала разберем весьма интересную
реальную задачузадачу с поиском цепочек в массиве. Даны значения
дневных температур за июнь: 23 22 20 17 17 21 23 25 … Нужно
определить, сколько больше всего дней подряд держалась температура