Раздел: Как стать программистом / Секреты программирования /

Как передать массив в функцию

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее...

Если вы начинающий программист, но уже не совсем новичок, и знаете, что такое подпрограммы, то вы также знаете, что в эти подпрограммы можно передавать параметры.

И, продолжая изучать программирование, вы неизбежно столкнётесь с необходимостью передавать в подпрограммы параметры, которые представляют собой сложные типы данных, такие как массивы.

И очень часто, пытаясь передать массив в процедуру или функцию, новички сталкиваются с очень неприятным для них случаем - они просто не могут это сделать. Потому что вот такая попытка:

function TestFunc(M : array[1..8] of Byte) : boolean;

окажется неудачной - программа не будет создана, а компилятор выдаст ошибку:

Ошибка при передаче массива

В чём же дело?

А дело в том, что передавать массивы в подпрограммы таким образом нельзя!

Как же быть? Не отказываться же от этого? Ведь передавать массивы в подпрограммы приходится довольно часто!

Но как это сделать?

Есть два способа:

Первый способ рассматривать не будем, потому что для новичка он может оказаться малопонятным. Если кому любопытно, то у меня есть книга, посвящённая указателям.

Рассмотрим второй способ. Он очень прост - надо создать пользовательский тип данных, и передавать в функцию уже параметр, имеющий этот тип. И таким образом передать массив в функцию в Паскале, Delphi, Lazarus (да и в большинстве других языков программирования) можно очень даже легко:

program test;

type TMas = array[1..8] of Byte;  //Создаём новый тип

var GM : TMas;                    //Переменная нового типа

//Теперь мы можем передать массив в функцию
function TestFunc(M : TMas) : boolean;
begin
  Result := TRUE;
end;

begin
  TestFunc(GM);
  ReadLn;
end.


Первые шаги в программирование Первые шаги в программирование

Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, что такое программирование. И вы даже напишите свою первую программу. Для тех, кто интересуется программированием, но ещё не знает, что это такое, и не пробовал создавать программы (или пробовал, но не получилось). Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика