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. Дайте определение понятию «открытый массив».


 

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

83460. Міжнародна правосубєктність Євросоюзу 38.14 KB
  До підписання Лісабонських договорів про Євросоюз і функціонування Євросоюзу питання міжнародної правосубєктності ЄС не були врегульовані. Міжнародну правосубєктність мали тільки європейські співтовариства. Відповідні повноваження Європейського співтовариства були визначені в установчих документах та розвинуті практикою Суду
83461. Міжнародна правосубєктність державоподібних утворень 37.76 KB
  Ватикан це містодержава яка є резиденцією центра католицької церкви Святого Престолу. Святий Престол слід розуміти як сукупність центральних органів з Папою Римським на чолі в свою чергу містодержава Ватикан є геополітичним формуванням створеним на підставі договору між Святим Престолом та Італією від 11 лютого 1929 р. Згідно з цим договором Ватиканська держава є власністю Святого Престолу який здійснює над нею виключну та необмеженою владу та суверенну юрисдикцію. Показово що як член Міжнародної агенції з атомної енергії Ватикан...
83462. Проблема міжнародної правосуб’єктності фізичної особи 37.01 KB
  В міжнародному праві почали формуватися норми з яких витікають права та обовязки адресовані безпосередньо фізичним особам. Крім того прибічники визнання міжнародної правосубєктності фізичної особи підкреслюють що проявом міжнародної субєктності останньої є не тільки володіння правами та обовязками що витікають безпосередньо з міжнародного права але також судовий захист цих правяк і можливість виконання зобовязань причому через міжнародні органи. Проте у вітчизняній доктрині міжнародного права заперечується визнання статусу...
83463. Поняття визнання в міжнародному праві 35.51 KB
  Таке визначення визнання вказує поперше на те що це є акт політичний який залежить від політичних інтересів держави що визнає та подруге це є акт правовий тобто такий що тягне за собою правові наслідки встановлення дипломатичних консульських відносинукладення договорів та ін. Інститут визнання відноситься відповідно дестинаторами визнання є до визнання державиуряду повсталої сторони нації що бореться за свою незалежність. В ширшому розумінні визнання відноситься до будьякої правової ситуації наприклад визнання...
83464. Теорії визнання 36.65 KB
  Згідно з конститутивною теорією визнання лише визнання породжує відповідні правові наслідки та надає відповідні правові консти туюючі правовстановлюючі якості дестинатору визнання: державі міжнародну правосубєктністьуряду здатність представляти державу у міжнародних відносинах. Відповідно без визнання держава не може вважатися субєктом міжнародного права. Серед недоліків конститутивної теорії визнання потрібно зазначити поперше відсутність визначеної кількості актів визнання необхідних для надання дестинатору зазначених...
83465. Види визнання 36.34 KB
  Визнання держави має місце у випадках появи нової незалежної держави революційних та інших соціальних перетворень територіальних змін обєднання та розділу держав і т. Основним критерієм визнання держави є її незалежність та самостійність у реалізації ефективної та легітимної державної влади що означає законність її встановлення та підтримку з боку населення встановленого режиму. Визнання уряду означає визнання його здатності здійснювати ефективну державну владу в країні та представляти її на міжнародній арені.
83466. Визнання держав 34.95 KB
  В міжнародному праві існують дві теорії визнання держав конститутивна і декларативна. Конститутивна теорія: політичний акт визнання є попередньою умовою існування юридичних прав нової держави. Саме акт визнання іншими державами створює нову державу породжує і забезпечує її міжнародну правосубєктність. Визнання нової держави яка додержує умов державності має бути правовим обовязком.
83467. Форми визнання 36.2 KB
  Найбільш поширеним є визнання dejure яке є офіційним повним та остаточним. Воно передбачає встановлення між субєктами міжнародного права міжнародних відносин у повному обсязі та супроводжується як правило заявою про офіційне визнання та встановленням дипломатичних відносин. Визнання деюре носить безумовний характер та як правило не може буди відкликане.
83468. Визнання урядів 35.44 KB
  Значення і правові наслідки визнання нового уряду відрізняються від визнання нової держави. Визнання уряду надає йому можливість репрезентувати державу в міжнародних відносинах. Питання визнання уряду виникає лише в тому випадку коли уряд здобуває владу іншим аніж визначено в національному законодавстві шляхом. В міжнародному праві існують такі доктрини щодо визнання урядів: 1.