Программирование массивы в паскале

Программирование массивы в паскале

Массивомназывают упорядоченный набор однотипных переменных (элементов). Каждый элемент имеет целочисленный порядковый номер, называемыйиндексом. Число элементов в массиве называют егоразмерностью. Массивы используются там, где нужно обработать сразу несколько переменных одного типа – например, оценки всех 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 элементов’);

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

Описание массива можно представить следующей схемой.

В типах индекса, по одному для каждой размерности массива, указывается число элементов. Допустимыми типами индекса являются все порядковые типы, за исключением Longint и поддиапазонов Longint. Число размерностей является неограниченным.

Массив можно описать двумя способами:

1. В разделе описания переменных

где t1-тип индекса, t2-тип элемента массива, t1- любой простой тип, кроме real и integer.

2. В разделе описания типов.

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

Для ввода массива с клавиатуры и для вывода на экран используются циклы. Можно вводить по другому, с помощью типизированных констант.

Действия, выполняемые над элементами массива:

  1. Все операции допустимые для базового типа массива.
  2. В качестве индекса может быть выражения, переменная или константа.
  3. Элементы массива могут стоять как в левой части выражений, так и в самих выражениях.
  4. Запрещен оператор присваивания типа: a[1]:=b[1]+1 (так нельзя) и разрешены: a[1]:=b[1]; b[1]:=b[1]+1

Если тип компоненты в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив. Например:

Ввод и вывод элементов многомерных массивов осуществляется при помощи вложенных циклов.

Читайте также:  Почему нельзя отформатировать флешку в fat32

Массивы — это совокупности однотипных элементов. Характеризуются они следующим:

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

Для обозначения компонент массива используется имя переменной-массива и так называемые индексы, которые обычно указывают желаемый элемент. Тип индекса может быть только порядковым (кроме longint). Чаще всего используется интервальный тип (диапазон).

Описание типа массива задается следующим образом:

Здесь имя типа — правильный идентификатор; список индексов — список одного или нескольких индексных типов, разделенных запятыми; тип — любой тип данных.

Вводить и выводить массивы можно только поэлементно.

Пример 1. Ввод и вывод одномерного массива.

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

Если массивы a и b описаны как:

то переменные a и b считаются разных типов. Для обеспечения совместимости применяйте описание переменных через предварительное описание типа.

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

Вместе с тем, над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.

Так как тип, идущий за ключевым словом of в описании массива, — любой тип Турбо Паскаль, то он может быть и другим массивом. Например:

Такую запись можно заменить более компактной:

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

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

Для "красивого" вывода матрицы на экран используйте такой цикл:

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

Ссылка на основную публикацию
Программа для отформатировать флешку
Процесс форматирования флешки мало отличается от форматирования HDD или SSD-дисков. Далее мы рассмотрим лучшие программы для форматирования флешек (такие как...
Приложение следить за человеком по номеру телефона
Отслеживание по номеру телефона - это приложение для Android, благодаря которому вы всегда будете знать где находятся ваши родные и...
Приложение чтобы играть андроид игры на компьютер
Самый мощный эмулятор Android из всех Newest ReleaseВерсия 7.1.3 2020.03.04 Играйте бесплатно в любые игры для Android. Наслаждайтесь оптимизированной графикой...
Программа для оцифровки винила
Каталог продаваемых пластинок (49230) Минимальные аппаратные требования, или что надо иметь для оцифровки Компьютер со звуковой картой. Проигрыватель винила Корректор...
Adblock detector