78208

Особенности использования массивов в качестве параметров

Лекция

Информатика, кибернетика и программирование

Открытый массив представляет собой формальный параметр подпрограммы описывающий базовый тип элементов массива но не определяющий его размерности и границы: Procedure MyProcOpenrry: rry of Integer; Внутри подпрограммы такой параметр трактуется как одномерный массив с нулевой нижней границей. Используя минимальный индекс как ноль и значение возвращаемое функцией HIGH как максимальный индекс подпрограмма может обрабатывать...

Русский

2015-02-07

57.5 KB

4 чел.

екция: Особенности использования массивов в качестве параметров      Страница  2 из 2

Оглавление

[1] Оглавление

[2] Параметры-массивы и параметры-строки

[2.1] Контрольные вопросы

Комбинированный урок №10

Тема: Метод пошаговой детализации. Особенности использования массивов в качестве параметров.

Цель: изучить приемы составления программ с использованием массивов в качестве параметров на примерах.

Параметры-массивы и параметры-строки 

Может сложиться впечатление, что объявление переменных в списке формальных параметров подпрограммы ничем не отличается от объявления их в разделе описания переменных. Действительно, в обоих случаях много общего, но есть одно существенное различие: типом любого параметра в списке формальных параметров может быть только стандартный или ранее объявленный тип. Поэтому нельзя, например, объявить следующую процедуру:

Procedure S (a: array [1..10] of Real);

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

Если необходимо передать какой-то элемент массива, то проблем, как правило, не возникает, но если в подпрограмму передается весь массив, то следует первоначально описать его тип. Например:

type atype = array [1..10]of Real; 

Procedure S(a: atype);

....... 

Поскольку строка является фактически своеобразным массивом, ее передача в подпрограмму осуществляется аналогичным образом:

type  intype = String [15] ;

outype = String [30] ; 

Function St (s : intype): outype;

.......

Открытый массив представляет собой формальный параметр подпрограммы, описывающий базовый тип элементов массива, но не определяющий его размерности и границы:

Procedure MyProc(OpenArray: array of Integer);

Внутри подпрограммы такой параметр трактуется как одномерный массив с нулевой нижней границей. Верхняя граница открытого массива возвращается функцией HIGH. Используя минимальный индекс как «ноль», и значение, возвращаемое функцией HIGH, как максимальный индекс, подпрограмма может обрабатывать одномерные массивы произвольной длины:

Пример 1: Иллюстрация использования открытых массивов: программа выводит на экран содержимое двух одномерных массивов разной длины с помощью одной процедуры ArrayPrint .

Procedure  ArrayPrint(aArray: array of Integer); 

var  k: Integer; 

begin

for k := 0 to High(aArray) do  Write(aArray[k]:8);

WriteLn 

end;

const A:array [-1..2] of Integer = (0,1,2,3); 

B: array [5..7] of Integer = (4,5,6); 

begin

 ArrayPrint(A);

 ArrayPrint(B) 

end.

Как видно из этого примера, фактические границы массивов А и В, передаваемых в качестве параметров вызова процедуре ArrayPrint, не имеют значения. Однако размерность открытых массивов (количество индексов) всегда равна 1. За этим следит компилятор. Если бы, например, добавить в программу двумерный массив С

var

С: array [1..3,1..5] of Integer;

то обращение

ArrayPrint(С);

вызывало бы сообщение об ошибке

Error26: Type mismatch. 

(Ошибка 26: Несоответствие типов.)

Пример 2: Программа вводит фамилию и выводит на экран фамилию с прописной буквы

uses crt;

type intype =string[15];

    outype = string[25];

var s : intype;

   i : integer;

function st(w: intype):outype;

begin

    w[1]:=upcase(s[1]); { изменение первого символа со строчного на прописной }

    st:=w+' TBiP''2009';{ склеивание символов }

end;

begin

    write('Vvedite famely: ');

    readln(s);

    writeln(st(s));

    readkey;

end.

Контрольные вопросы

1. Как оформляются параметры-массивы и параметры-строки? Приведите примеры.

2. Дайте определение понятию «открытый массив».


 

А также другие работы, которые могут Вас заинтересовать

55115. Почвозащитная способность сельскохозяйственных культур и севооборотов. Проектирование севооборотов с учетом уклонов на пашне. Методические указания 318.5 KB
  Озимые зерновые пропашные культуры зернобобовые яровая пшеница гречиха Просо Пласт многолетних трав пропашные культуры озимые зерновые залежь Гречиха Пропашные яровые зерновые зернобобовые культуры Зернобобовые...
55116. Основы молекулярной генетики, моделирование процессов кодирования наследственной информации 38 KB
  Определить антикодоны транспортных РНК, которые осуществляют доставку к рибосомам следующих аминокислот: фенилаланин, серин, тирозин, цистеин, лейцин, треонин, лизин, глутамин.
55117. Рекультивация почв, засоленных и осолонцованных при загрязнении нефтепромысловыми сточными водами (НСВ). Методические указания 309 KB
  Цель занятия: научиться разрабатывать системы мероприятий по рекультивации засоленных и загрязненных НСВ земель; дать студентам знания: по известкованию почвы; изучить методы и расчеты норм известкования почвы; по гипсованию почвы; изучить методы и расчеты норм гипсования почвы; по засолению почв промывке почв; изучить методы и расчеты промывной нормы при засолении почвы....
55118. Единый социальный налог (взнос) 171 KB
  При однократном использовании данной льготы доходы за исключением оплаты труда наемных работников получаемые членами зарегистрированных в установленном порядке родовых семейных общин малочисленных народов Севера от реализации продукции полученной в результате...
55119. Рекультивация земель, загрязненных нефтью и нефтепродуктами. Методические указания 313 KB
  Ликвидация последствий разливов нефти проводится часто таким способом что происходит необратимое уничтожение плодородного слоя почвы например при сжигании нефти засыпке загрязненных участков грунтом вывозе загрязненной почвы в отвалы. 1988 смешивание загрязненных почв с чистой почвой для уменьшения содержания нефти и нефтепродуктов...
55121. Налог на прибыль организаций 188 KB
  Иностранные организации осуществляющие свою деятельность в Российской Федерации через постоянные представительства и или получающие доходы от источников в Российской Федерации. Не признаются налогоплательщиками организации являющиеся иностранными организаторами Олимпийских игр и...
55122. Закономерности наследования признаков 70.5 KB
  Цели: сформировать умения определять генотип и фенотип детей по генотипу родителей, а также генотип родителей по фенотипу детей, прогнозировать проявление признаков в потомстве.
55123. Рекультивация загрязненных почв. Методические рекомендации 370.5 KB
  Цель занятия: изучить методику исчисления размера вреда причиненного почвам как объекту охраны окружающей среды; научиться разрабатывать системы мероприятий по рекультивации загрязненных земель.