Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 17:14   #1
Anserone
Новичок
Джуниор
 
Регистрация: 19.04.2010
Сообщений: 2
По умолчанию модуль, процедура, переменные

доброго времени суток, создаю модуль для сортировки массивов, и запнулся фактически в самом начале. а именно
в модуль будет передаваться массив и количество элементов массива
примерно так:

interface
type massiv=array[1..n] of real;
procedure bubls(var: a:massiv;n:integer);

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

Последний раз редактировалось Anserone; 19.04.2010 в 17:17. Причина: в текст влез смайлик
Anserone вне форума Ответить с цитированием
Старый 20.04.2010, 14:43   #2
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Объявляй процедуры своего модуля по следующему образцу:
Код:
procedure bubls(var: a:array of real;n:integer);
тогда сможеш передавать массивы различной длины. только учти, что индексация таких массивов в процедуре начинается с 0
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 20.04.2010, 15:17   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Можно это решить несколько проще... ТурПас поддерживает открытые массивы. Этот массив представляет собой формальный параметр подпрограммы, описывающий базовый тип элементов массива, но не определяющий его размерности и границы.

Procedure Sort(OpenArray:array of integer);

В подпрограмме этот параметр будет трактоваться как одномерный массив с нулевой нижней границей, а верхняя граница массива может быть определена с использованием функции HIGH.

Пример выглядит так

Код:
Procedure Sort(Arr:array of integer)
var
  i:integer;
begin 
  for i:=0 to HIGH(Arr) do
    begin
      .......
      .......
    end;
  ............
  ............
end;
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 20.04.2010, 22:36   #4
Anserone
Новичок
Джуниор
 
Регистрация: 19.04.2010
Сообщений: 2
По умолчанию

огромное спасибо=)
Anserone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
like, переменные radik-com Microsoft Office Excel 2 07.02.2010 22:23
Переменные Hehe Общие вопросы Delphi 4 11.12.2009 13:40
переменные Артэс Общие вопросы C/C++ 11 23.06.2009 12:12
Процедура в процедура в C++ Builder Ecosasha C++ Builder 2 06.06.2009 17:17