78208

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

Лекция

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

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

Русский

2015-02-07

57.5 KB

5 чел.

екция: Особенности использования массивов в качестве параметров      Страница  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. Дайте определение понятию «открытый массив».


 

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

40738. Планування робочого часу 214.18 KB
  Охарактеризувати принципи і правила планування робочого часу визначити складові системи планування робочого часу. Назвати основні методи планування робочого часу. Основи планування робочого часу .
40739. Реалізація та організація діяльності менеджера 107.55 KB
  Графік працездатності . Графік працездатності Працездатність кожної людини піддається визначеним коливанням що відбуваються в рамках природного ритму. Пік працездатності як правило припадає на першу половину дня коли шлунок підшлункова залоза селезінка і серце функціонують найбільш активно.
40740. Контроль як функція самоменеджменту 106.78 KB
  Контроль процесу . Контроль результатів . Самоконтроль .Контроль за результатами праці з погляду досягнення кінцевої мети (цільовий контроль) слід проводити після виконання задачі (підсумковий контроль).
40741. Інформація і комунікація 217.58 KB
  Час: 80 хв. Метод : Лекція Місце: Навчальна аудиторія ПЛАН Навчальні питання: Час викладуВступ .Заключна частина . Прийоми раціонального читання Приблизно 30 свого часу менеджери витрачають на читання.
40742. Організація роботи менеджера 244.83 KB
  Джерело світла повинно розташовуватися так щоб світло не сліпило очі. Найкраще щоб джерело світла знаходилося ліворуч. Джерело світла повинно розташовуватися так щоб світло не сліпило очі відбиваючись від блискучої поверхні стола. Раціональне розміщення робочих місць стосовно джерела світла.
40743. Налично-денежный оборот и денежное обращение 62.13 KB
  Наличный денежный оборот непрерывный процесс движения наличных денег в форме банкнот банковских билетов казначейских билетов металлических монет. Наличный оборот начинается с указания ЦБ о переводе наличных денег которое передается РКЦ из резервных фондов в оборотные кассы из которых наличные деньги направляются в операционные кассы кредитных организаций банков. Эмиссию наличных денег осуществляет ЦБ РФ. Часть этих денег обслуживает межбанковские расчеты часть направляется в качестве кредитов другим банкам но большая часть...
40744. Диагностирование и лечение кожных заболеваний 122.02 KB
  Гигантская крапивница похожа на обычную лихорадку отличие в том что при первой опухлость появляется под кожей а не на поверхности кожи. Гистамин химическое вещество выделяемое определенными клетками которые расположены вдоль кровяных сосудов кожи. Дермографизм: сыпь возникающая после механического повреждения кожи удар царапание. Дерматиты Дерматиты воспалительные реакции кожи в ответ на воздействие раздражителей...
40745. Информация об интеллектуальной собственности 32.3 KB
  Патентные исследования патентные исследования это исследования технического уровня и тенденций развития объектов техники их патентоспособности патентной чистоты конкурентоспособности на основе патентной и другой информации. Патентные исследования проводят при: разработке научнотехнических прогнозов; разработке планов развития науки и техники; создании объектов техники; освоении и производстве продукции; определении целесообразности экспорта промышленной продукции и экспонировании ее образцов на международных выставках и...
40746. Наука як сфера людської діяльності 59.51 KB
  Поняття зміст і функції науки Курс: 1 Факультет: 4й медичний Поняття зміст і функції науки Актуальність теми. Необхідність надання загальних відомостей про завдання курсу а також про науку як систему знань і уявлень про сутність науки аналіз змісту та функцій науки диктується вимогами розвитку та становлення сучасної науки і є необхідною передумовою формування наукового світогляду необхідного майбутнім спеціалістам. Цілі лекції мета Навчальні: ознайомитись з...