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


 

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

56428. Внедрение информационных технологий в начальной школе - важный фактор развития способностей ребенка 32.5 KB
  Ведь с помощью компьютера можно получить увидеть или услышать определённую информацию: текст кроссворд картинку звук аудиозапись текстовый материал видеозапись просмотр любого развивающего...
56429. НАЙРОЗУМНІШИЙ 109 KB
  Питання охоплюють мовознавчий матеріал з тем Словосполучення та просте речення та Складносурядні та складнопідрядні речення оскільки бажано гру проводити під час тижня української мови...
56430. ПІДГОТОВКА ВЧИТЕЛЯ ДО РЕАЛІЗАЦІЇ ОЗДОРОВЧОЇ ФУНКЦІЇ ОСВІТИ 114 KB
  Актуальність статті передбачає пропаганду здорового способу життя дітей та молоді через проведення батьківських лекторіїв конференцій тренінгів круглих столів лекцій практичних занять для батьків та учнівської молоді.
56431. КРЕВСЬКА УНІЯ ТА СПРОБИ ЇЇ РЕАЛІЗАЦІЇ НА УКРАЇНСЬКИХ ЗЕМЛЯХ 311.5 KB
  Колишня київська Русь могла сплачувати щедру данину, мала розгалужені торговельні шляхи була спроможна надати Литві матеріальні ресурси і поповнення до війська. Не останню роль відігравав і династичний чинник - правляча литовська династія мала численних нащадків, що потребували власних уділів.
56432. Hörtexte und Aufgaben 138.5 KB
  Diese von mir gebildeten Aufgaben werden nach dem Hören des Textes gemacht. Sie haben nur eine Kontrollfunktion: Was haben die Schüler verstanden? Solche Aufgaben helfen dem Deutschlehrer bei der Arbeit an der Entwicklung der Sprechfertigkeit Hören.
56433. London. Known and Unknown 644.5 KB
  Objectives: to revise vocabulary and grammar of the topic; to summarize knowledge on the topic; to develop listening, reading, writing and speaking skills; to practice pair and group work.
56434. Перспективні напрямки розвитку санаторно-курортної діяльності 902 KB
  Система санаторно-курортних закладів розвивалась в межах державної системи охорони здоров`я, її послуги були соціально орієнтованими і достатньо дешевими для громадян (за рахунок фонду соціального страхування та інших джерел фінансування)