Как сформировать массив в паскале

Как сформировать массив в паскале

Массив в программировании является набором элементов одного типа (однотипных).

Различают несколько видов массивов – одномерный (векторный) и многомерный.

Элементы в массиве характеризуются своими именами и порядковыми номерами — индексами.

Индекс – это порядковый номер элемента в массиве.

В Паскале каждому элементу присваивается один или несколько индексов, которые описывают положение элемента в массиве.

Одномерный массив

Синтаксис массива в Pascal таков :

Где :
1 – нижний индекс
10 – верхний индекс
A – имя переменной массива
[ ] – диапазон значений
Integer – тип данных
A[ i ] – обращение к элементу массива в Pascal

Тип элементов массива может быть любым допустимым типом в Pascal, кроме файлов (даже массивом).

Пример массива : A =

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

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

Ограничения по количеству индексов в массиве Pascal не ограничивается. Однако сам массив не должен быть больше чем 65537 байт.

Массив также можно объявлять в разделе описания типов:

Доступ к элементам массива осуществляется в цикле.

Наиболее рациональным способом обработки элементов массива в Паскаль является оператор цикла с параметром.

Алгоритмы заполнения массива в Pascal

  1. Ввод элементов массива с помощью компьютера осуществляется с помощью такой конструкции :

Задание массива случайным образом.

Массив можно задать случайным образом с помощью датчика случайных величин.

Для запуска датчика случайных величин в Паскаль нужно прописать специальную конструкцию — Randomize;

Новое значение генерируется с помощью функции Random(n) ,где n – целое число. В таком случае генерируется любое число с диапазоном от 0 до n.

Если функция Random используется без параметра, то она генерирует вещественное число (тип real) в диапазоне 0 Автор: Unknown на 1/27/2012

Массивомназывают упорядоченный набор однотипных переменных (элементов). Каждый элемент имеет целочисленный порядковый номер, называемыйиндексом. Число элементов в массиве называют егоразмерностью. Массивы используются там, где нужно обработать сразу несколько переменных одного типа – например, оценки всех 20 студентов группы или координаты 10 точек на плоскости. Строку текста можно рассматривать как массив символов, а текст на странице – как массив строк.

Массив описывается в разделе varоператором следующего вида:

Var ИмяМассива: array [НижнийИндекс .. ВерхнийИндекс] of Тип;

НижнийИндекс– целочисленный номер 1-го элемента массива,

Читайте также:  Вай фай плюс что это

..– оператор диапазона Паскаля (именнодветочки!);

ВерхнийИндекс– целочисленный номер последнего элемента,

Тип – любой из известных типов Паскаля; каждый элемент массива будет рассматриваться как переменная соответствующего типа.

Var a: array [1..20] of integer;

Здесь мы описали массив с именем A, состоящий из 20 целочисленных элементов;

Var x,y : array [1..10] of real;

Описаны 2 массива с именами xиy, содержащие по 10 вещественных элементов;

Var t : array [0..9] of String;

Массив tсостоит из 10 строк, которые занумерованы с нуля.

Таким образом, размерность(число элементов) массива вычисляется как

ВерхнийИндекс – НижнийИндекс + 1

Для обращения к отдельному элементу массиваиспользуется оператор вида

Здесь Индекс– целочисленный номер элемента (может быть целочисленным выражением или константой). Индекс не должен быть меньше значения нижнего или больше верхнего индекса массива, иначе возникнет ошибка "Constantoutofrange". Отдельный элемент массива можно использовать так же, как переменную соответствующего типа.

Пока мы изучаем одномерныемассивы, в которых каждый элемент имеет один номер (индекс), характеризующий его положение в массиве. В математике понятию одномерного массива изnэлементов соответствует понятиевектора изnкомпонент:

Как правило, ввод, обработка и вывод массива осуществляются поэлементно, с использованием цикла for

Ввод массива с клавиатуры:

Var a: array [1..n] of real;

Writeln (‘Введите элементы массива’);

For i:=1 to n do read (A[i]);

Размерность массива определена константой n, элементы вводятся по одному в циклеfor– при запуске этой программы пользователю придется ввести 10 числовых значений. При решении учебных задач вводить массивы "вручную", особенно если их размерность велика, не всегда удобно. Существуют, как минимум, два альтернативных решения:

Описание массива константудобно, если элементы массива не должны изменяться в процессе выполнения программы. Как и другие константы, массивы констант описываются в разделеconst, приведем пример такого описания:

const a:array [1..5] of real=(

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

Формирование массива из случайных значенийуместно, если при решении задачи массив служит лишь для иллюстрации того или иного алгоритма, а конкретные значения элементов несущественны. Для того, чтобы получить очередное случайное значение, используется стандартная функцияRandom(N), где параметромNпередается целое или вещественное число. Она вернет случайное число того же типа, что тип аргумента и лежащее в диапазоне от0доN-1включительно. Например, оператор видаa[1]:=Random(100);запишет вa[1]случайное число из диапазона [0,99].

Читайте также:  Игра мир кораблей официальный сайт

Для того, чтобы при каждом запуске программы цепочка случайных чисел была новой, перед первым вызовом Randomследует вызвать стандартную процедуруRandomize;,запускающую генератор случайных чисел. Приведем пример заполнения массива из 20 элементов случайными числами, лежащими в диапазоне от -10 до 10:

var a:array [1..20] of integer;

for i:=1 to 20 do begin

Еще более удобный путь – чтение элементов массива из текстового или двоичного файла. Об этом рассказывается в главах 21 и 22.

Обработка массива(в данном случае, вычисляется суммаsего положительных элементов)

Var b:array [1..5] of real;

Writeln (‘Введите 5 элементов массива’);

for i:=1 to 5 do read (b[i]);

for i:=1 to 5 do if b[i]>0 then s:=s+b[i];

Как видно из этого примера, к массивам применимы все типовые алгоритмы, изученные в теме "Циклы".

For i:=1 to 5 do write (b[i]:6:2);

Здесь 5 элементов массива bнапечатаны в одну строку. Для вывода одного элемента на одной строке можно было бы использовать операторwritelnвместоwrite

Если обработка массива осуществляется последовательно, по 1 элементу, циклы ввода и обработки зачастую можно объединить.

Пр. Найти арифметическое среднее элементов вещественного массиваtразмерностью 6 и значение его минимального элемента.

Var b:array [1..6] of real;

writeln (‘Ввод B[6]’);

for i:=1 to 6 do begin

if b[i] 0 then begin

For i:=-5 to 5 do begin

if abs(t[i]-s) max then begin

Writeln (‘Номер точки=’,num, ‘ расстояние=’,dist:8:2);

For i:=1 to 9 do begin

Writeln (‘Длина ломаной=’,len:8:2);

Пр. Задача формирования массива по правилу:

Задан массив Xиз 8 элементов. Сформировать массивYпо правилу

Y[i]= 4X[i], еслиI– четное

Cos2X[i], еслиI– нечетное

и найти количество его положительных элементов.

Var x,y: array [1..8] of real;

Writeln (‘Введите массив X из 8 элементов’);

Предположим, что программа работает с большим количеством однотипных данных. Скажем около ста разных целых чисел нужно обработать, выполнив над ними те или иные вычисления. Как вы себе представляете 100 переменных в программе? И для каждой переменной нужно написать одно и тоже выражение вычисления значения? Это очень неэффективно.

Есть более простое решение. Это использование такой структуры (типа) данных как массив. Массив представляет собой последовательность ячеек памяти, в которых хранятся однотипные данные. При этом существует всего одно имя переменной связанной с массивом, а обращение к конкретной ячейке происходит по ее индексу (номеру) в массиве.

Читайте также:  Как сжать картинку jpg

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

Итак, массив – это именованная группа однотипных данных, хранящихся в последовательных ячейках памяти. Каждая ячейка содержит элемент массива. Элементы нумеруются по порядку, но необязательно начиная с единицы (хотя в языке программирования Pascal чаще всего именно с нее). Порядковый номер элемента массива называется индексом этого элемента.

Помним, все элементы определенного массива имеют один и тот же тип . У разных массивов типы данных могут различаться. Например, один массив может состоять из чисел типа integer , а другой – из чисел типа real .

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

Если индекс массива может приобретать все допустимые значения определенного перечислимого типа, то при описании массива возможно задание имени типа вместо границ изменения индекса. При этом границами индекса будут первое и последнее значения в описании типа индекса. Границы изменения индексов могут задаваться с помощью ранее объявленных констант. Рекомендуется предварительно объявлять тип массива в разделе описания типов.

Массив можно создать несколькими способами.

Обращение к определенному элементу массива осуществляется путем указания имени переменной массива и в квадратных скобках индекса элемента.

Простой массив является одномерным . Он представляет собой линейную структуру.

В примере выделяется область памяти под массив из 11 символов. Их индексы от 1 до 11. В процессе выполнения программы пользователь вводит 11 любых символов (например, ‘q’, ’w’, ’e’, ’2’, ’t’, ’9’, ’u’, ’I’, ’I’, ’o’, ’p’), которые записываются в ячейки массива. Текущее значение переменной i в цикле for используется в качестве индекса массива. Второй цикл for отвечает за вывод элементов массива на экран.

Функция sizeof , примененная к имени массива или имени массивного типа, возвращает количество байтов, отводимое под массив.

Ссылка на основную публикацию
Как соединить ноутбук с ноутбуком
Блог о модемах, роутерах и gpon ont терминалах. Чем прекрасен ноутбук, так это своей мобильностью. Эта черта в первую очередь...
Как сделать чтобы контакт не запоминал пароль
Если вас интересует, как в ВК удалить сохраненный пароль, значит вы попали к нам на страничку очень кстати. Мы как...
Как сделать чтобы металлоискатель не обнаружил телефон
Использование арочных и ручных металлоискателей – это один из самых распространенных способов досмотра в любом общественном месте, начиная от обычного...
Как соединить обрезанные песни в одну
Соединяйте любимую музыку в один трек Быстрое объединение песен С помощью этого инструмента можно добавить несколько файлов одновременно, поэтому вам...
Adblock detector