Несколько затруднений про массивы (Pascal)
Вопрос номер один:
Пишу функцию, она должна принимать двумерный текстовый массив. Как это описать в скобочках? Вопрос номер 2 Как определить размеры двумерного массива? Один параметр знаю: Length(mass),а как второй? Вопрос номер 3: Как создать двумерный массив на основе уже имеющегося? Типа дублера, либо как вариант одинаковый по второму параметру. Прошу прощения за нубские вопросы, но паскаль был в школе. Сейчас пишу в Lazarus. ___ |
|
Busla,
1. Так? Код:
function DelRow(A,B: array of string):array of string; Так? Код:
"Высота" = Length(ms); Может не так выразился. Создать новый массив имеющий такую же размерность как у другого массива? Тогда это будет так? Код:
new_mass:array[0..Length(old_mass),0..Length(old_mass[0])] of string; |
blackeangel, массивы в Pascal (в Lasarus в том числе) определяются на этапе компиляции
Код:
program Код:
var |
Busla, ему любое подойдёт, лишь бы работало. Суть в том, что определение размера массива должно происходить динамически, в процессе исполнения приложения.
P.S. Я уже несколько раз предлагал коллеге blackeangel перейти к словарям/коллекциям, но он не видит в этом нужды. |
Iska, как оказалось на паскале невозможно динамически создавать массивы по ходу кода.
И я рад Вас видеть ;) На счёт словарей/коллекций/эрей листов. Если вы мне обьясните как это работает простым деревенским языком, то пойму и буду их использовать. Если массивы окружают нас в жизни, то словарь только толковый или орфографический. Массивы это тетрадь в клетку, таблица экселя, 9 стаканов на столе(3х3), графический ключ на телефоне(3х3) и т.д. |
Цитата:
Dynamic arrays Dynamic array - Free Pascal wiki |
Цитата:
Простейший вариант реализован в WSH, в VB и в VBA. Пример демонстрации свойств и методов словаря на WSH, исполнять под консольным cscript.exe: Скрытый текст
Код:
Option Explicit Пример практической реализации — подсчёт количества одинаковых символов в произвольном тексте (дабы не усложнять кодировками, чтением из файла — используем банальную строковую переменную): Скрытый текст
Код:
Option Explicit В более серьёзных языках, особенно в .Net, добавлены классы, которые не только полностью покрывают такой тип данных как Словарь, но и заметным образом расширяют его возможности, например прямое обращение к паре по индексу (поскольку класс сделан перечислимым), проверка существования значения, сортировка пар и прочее. Что-то похожее есть и во Free Pascal. |
Определите полностью тип передаваемых в функцию данных.
Так что бы в заголовке функции было что-то типа Код:
function FunctionName(var Name:TypeName):ReturnTypeName |
Время: 12:11. |
Время: 12:11.
© OSzone.net 2001-