78208

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

Лекция

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

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

Русский

2015-02-07

57.5 KB

1 чел.

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


 

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

20907. Бизнес-план ЗАО «Пивзавод «Архар» 256 KB
  ЗАО «Пивзавод «Архар», производство пива по традиционно русским рецептам. В состав используемых помещений входят: цех для основного производства, кухня, пивбар. Также к основным фондам относится земельный участок, занимаемый данным предприятием
20908. Фінансовий облік, конспект лекцій 289.5 KB
  Фінансовий облік - це комплексний синтетичний облік усіх засобів та грошових коштів і всієї економічної діяльності підприємства, фірми, організації, установи. До його складу входять аналітичний облік розрахунків з постачальниками і покупцями, іншими організаціями та особами
20910. Исследование вращающихся трансформаторов 619 KB
  Основные теоретические сведения Вращающиеся поворотные трансформаторы ВТ – электрические информационные микромашины переменного тока предназначенные для преобразования угла поворота в напряжение пропорциональное некоторым функциям угла например синусу или косинусу или самому углу поворота ротора. Вращающиеся трансформаторы используются в системах дистанционной передачи ДП угла повышенной точности; в качестве датчиков угла; счетнорешающих элементов аналоговых и аналоговоцифровых вычислительных устройств для решения геометрических...
20911. Исследование однофазных сельсинов 417.5 KB
  Систему синхронной связи передающую электрическим путем на расстояние угловые перемещения называют системой передачи угла или синхронного поворота. В системах электрического вала применяют трехфазные сельсины а в системах передачи угла – однофазные сельсины. В зависимости от величины погрешности в индикаторной системе передачи угла сельсины делятся на четыре класса точности см. Параметр точности Класс точности 1 2 3 4 Погрешность следования в дистанционной передаче угла в индикаторном режиме угл.
20912. Исследование феррозондов 179 KB
  Это изменение достигается магнитным воздействием на сердечник с помощью обмоток возбуждения подключенных к источнику переменного тока. Здесь w1в и w2в – обмотки возбуждения включенные встречно wвых – выходная сигнальная обмотка. Встречное включение обмоток возбуждения расположенных симметрично относительно середины сердечника обеспечивает развязку цепей возбуждения и выхода и позволяет свести к минимуму величину выходного напряжения в отсутствие внешнего поля. При подаче в обмотки возбуждения переменного напряжения uв=uвмsint магнитная...
20913. Исследование статических тяговых характеристик силового электромагнита 265.5 KB
  При протекании тока по обмотке 3 электромагнита создается магнитный поток который проходит по магнитопроводу паразитному и рабочему воздушному зазорам. В последнем создается электромагнитная сила стремящаяся притянуть якорь электромагнита к стопу. Электромагнитное усилие определяется зависимостью 1 где коэффициент зависящий от конструктивных особенностей электромагнита; ток в обмотке; количество витков обмотки; зазор.
20914. Ознакомление с конструкциями и схемами включения электромагнитных реле 327.5 KB
  Основные теоретические сведения Реле – это устройство в котором при достижении входной величиной определенного значения скачкообразно изменяется выходная величина. В зависимости от того на какое физическое явление реагирует воспринимающая система реле подразделяют на электромагнитные оптические химические механические пневматические и др. Реле используются для управления режимами работы аппаратуры или отдельных ее блоков систем устройств приборов и элементов а также для усиления преобразования контроля запоминания кодирования и...
20915. Исследование двигателей постоянного тока 578.5 KB
  Оборудование измерительные приборы и инструменты: лабораторная установка источники постоянного тока вольтметр амперметр тахометр магазин сопротивлений. В настоящее время в качестве исполнительных двигателей наиболее часто используются: двухфазные асинхронные двигатели с повышенным сопротивлением ротора; двигатели постоянного тока с независимым возбуждением или постоянными магнитами; 3 синхронные – шаговые двигатели. В настоящей работе исследуется двигатель постоянного тока ДПТ.