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


 

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

3921. Дослідження критеріїв прийняття рішення при вирішенні двухальтернативної задачі 206 KB
  Дослідження критерії прийняття рішення при вирішенні двухальтернативної задачі Мета роботи: дослідити критерій максимума правдоподібності, максимума апостеріорної ймовірності, критерій Котельнікова та критерій Неймана-Пірсона ХІД ВИКОНАННЯ ПРАКТИЧНО...
3922. Ручное регулирование параметров объекта управления 151.5 KB
  Ручное регулирование параметров объекта управления Цель: приобретение навыков ручного ведения процессов регулирования, вызываемых возмущениями по нагрузке и по заданию. Опыт 1: Стабилизация регулируемой величины Таблица 1. Процесс регулировани...
3923. Экспериментальное определение частотных характеристик объекта 54.94 KB
  Экспериментальное определение частотных характеристик объекта Цель: изучение методики экспериментального определения частотных характеристик объекта управления, а также практическое освоение приемов обработки результатов 'эксперимента при внесении объекту прямоугольных входных колебаний.
3924. Сучасна ситуація в області інформаційної безпеки 51.5 KB
  Сучасна ситуація в області інформаційної безпеки Поняття інформаційної безпеки Перш ніж говорити про інформаційну безпеку необхідно з’ясувати, що таке інформація. Поняття «інформація» сьогодні вживається дуже широко і різнобічно. Важко знайти т...
3925. Мотивація та моделі поведінки в організації 224 KB
  Мотивація та моделі поведінки в організації Вступ Актуальність. Процеси трансформації економічно-економічної системи в Україні вимагають нових рішень з організації ділової активності суспільства у багатьох сферах. Зокрема, ефективна організація прац...
3926. Передаточные функции объектов управления 99 KB
  Передаточные функции объектов управления. Цель: изучить формы представления передаточных функций объектов управления в среде программирования «MatLab» или других (напр. SCILAB, GAP). Определение нулей и полюсов передаточной функции >> G=tf([0...
3927. Работа агрегата Центробежный насос ЭЦНГ-10С76 89 KB
  Основными характеристиками надежности объектов эксплуатации являются функция плотности распределения наработок изделий до отказа f(t), функция распределения наработок изделий до отказа (Вероятность отказа есть функция распределения време...
3928. Общая статистика. Значение группировок и интервалов 276.5 KB
  Сводка и группировка. На основе собранных данных нельзя произвести расчет и сделать выводы, для начала их нужно обобщить и свести в единую таблицу. Для этих целей служат сводка и группировка. Сводка – комплекс последовательных операций по обобщ...
3929. Сутність поняття соціальна технологія 749 KB
  Сутність поняття «соціальна технологія» полягає в наступних пунктах: Соціальна технологія — це певний спосіб здійснення людської діяльності по досягненню суспільно значимих цілей Сутність даного способу полягає в поопераційному з...