Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Получение матриц в PascalABC.NET

Определение 1

Матрица — это совокупность чисел, записанных в виде прямоугольной таблицы.

Введение

Язык программирования PascalABC.NET является мощным современным языком, который включает в себя стандартный Паскаль, очень много возможностей языка Object Pascal среды Delphi и большое количество собственных расширений. Программа компиляции и библиотечный набор языка PascalABC.NET подлежат свободному распространению по лицензии LGPL v3.

На основе языка PascalABC.NET реализована одноименная интегрированная среда разработки и отладки программ, которая поддерживает технологию IntelliSence. Она создана на базе платформы Microsoft .NET Framework и использует также её библиотеки. В операционных системах Linux и MacOS необходима среда проекта Mono, под которой возможен запуск консольного компилятора.

PascalABC.NET является мультипарадигменным языком. Он предоставляет возможность программирования в структурном, объектно-программированном и функциональном стиле, а также допускает смешение этих стилей в одной программе. Насколько это было возможно, PascalABC.NET вобрал в себя наилучшие идеи, которые были реализованы в языках C#, Python и Haskell. Значительное число, так называемого, «синтаксического сахара» сделало процесс программирования на PascalABC.NET простым и удобным как для начинающих программистов, так и для опытных специалистов.

Получение матриц в PascalABC.NET

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

«Получение матриц в PascalABC.NET» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

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

Массивы способны обладать различным числом измерений. Причём термин «массив» необходимо понимать, как одномерный массив, а термин «матрица» подразумевает именно двухмерный массив.

Динамический массив в программе считается объектом, поэтому его можно использовать по методикам объектно-ориентированного программирования. Задать динамический массив можно следующим образом:

var ИмяМассива : array of Тип;

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

Самым простым методом выделения памяти под динамический массив может считаться использование операции new. Эта операция призвана создать объект требуемой структуры и выделить под него память, как показано ниже:

ИмяМассива := new Тип[КоличествоКомпонентов]

Допускается объединение описания массива с его формированием и, если необходимо, можно воспользоваться автоматическим выведением типа, например, следующим образом:

var a := new integer[15]; // самый компактный способ

var b : array of real;

b := new real[7];

Существует и другой метод распределения (или перераспределения) памяти под массив. Данный метод наиболее часто применяют, когда необходимо добавить или удалить компоненты массива, так как он не изменяет значений уже существующих компонентов. Память может быть перераспределена с помощью следующей процедуры: SetLength(ИмяМассива, ЧислоЭлементов).

Ниже приведён конкретный пример её использования:

begin // p05032 var a: array of integer;

SetLength(a, 5); // теперь в массива 5 элементов

(a[0], a[1], a[2], a[3], a[4]) := (10, 11, 12, 13, 14); a.Println;

SetLength(a, 7); // увеличим число элементов до 7

a[6] := 16;

a.Println

end.

10 11 12 13 14

10 11 12 13 14 0 16

Элементу a[5] значение не присваивалось, поэтому оно является значением по умолчанию, которым были инициализированы все элементы массива при осуществлении выделения памяти под них. При этом, как отмечалось выше, значения уже имеющихся компонентов не изменяются.

Формирование массива может быть совмещено с инициализацией его компонентов. В таком случае тоже имеется возможность использования автоматического выведения типа и размера массива. Так как тип массива уже задан, то возможно при осуществлении инициализации массива вещественного типа указать значения целочисленных типов. Ниже приведён конкретный пример:

begin // p05034

var a: array of integer := (1, 2, 3, 4);

a. Println;

var b: array of real := (1.2, 5, -3.05); // 5 – целочисленная

b. Println;

var c := new real[4](10, 11, 12, 13); // все целочисленные

c. Println

end.

1 2 3 4 1.2 5 -3.05

10 11 12 13

В языке PascalABC.NET существует функция Arr( ), которая считается очень полезной при инициализации массивов (матриц). Она позволяет создать динамический массив из значений, задаваемых в качестве аргументов, то есть всё описание массива может быть сведено только к указанию ключевого слова var. Следует отметить, что все компоненты в списке должны обладать единым типом.

Дата написания статьи: 11.08.2021
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot