Как описывается одномерный массив в pascal
Перейти к содержимому

Как описывается одномерный массив в pascal

  • автор:

3. Массивы в Pascal

Массив — это множество величин, имеющих одно и то же имя и номер по порядку.

В математике подобное называется последовательностью, можно сказать, что последовательность — это одномерный массив. В математической последовательности каждый следующий элемент записывается по определённому правилу (формуле), в одномерном массиве могут быть произвольные числа (либо символы, либо слова).

Размер массива — это количество элементов в массиве.

Размерность массива определяется количеством входящих в него индексов.

Массивы бывают: одномерные, двумерные, многомерные.

Индекс определяет положение элемента в массиве (нумерация начинается с \(1\)).

Скриншот 18-05-2022 231736.jpg

Рис. \(1\). Индекс и значение массива

Примеры массивов

Pascal и одномерные массивы

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

Определение

Массив a – это структура данных, которая хранит в себе набор значений (элементы массива), идентифицируемая по индексу или его наборам, принимающих целые (или приводимые к целым) значения некоторого заданного непрерывного диапазона. Это – своеобразная реализация абстрактного типа данных – вектора. В некоторых языках программирования массивы носят названия:

Массив – это упорядоченный набор (множество) данных. Хранит значения при помощи одного или нескольких индексов. Самый простой вариант рассматриваемого элемента обладает постоянной длиной. Включает в себя единицы информации одного и того же типа. В виде индексов тут выступают целые числа.

Разновидности

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

  1. Одномерный. У него всего один индекс.
  2. Двумерный. Содержит два индекса.
  3. Трехмерный и так далее.

На практике чаще всего дан одномерный массив или двумерный. Вариации с тремя и более индексами встречаются крайне редко.

В некоторых языках разработки есть динамические массивы. В них размер меняется непосредственно при выполнении программного кода. Остальные носят название фиксированных или статистических.

Одномерный массив в Паскале: особенности

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

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

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

Числовой одномерный вид

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

  • перечисление индексов;
  • имеющиеся значения элементов.

Имя задается точно так же, как и в случае с переменными в приложении. Границы index задают непосредственно при описании множества данных. Делается это в квадратных скобках.

Рекомендуется задавать начальный индекс в виде единицы. Конечный определяется условием конкретной поставленной задачи. Численно выражен размеру множества данных – количеству содержащихся компонентов.

Pascal и одномерные массивы

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

Как заполнять

Вносить информацию в одномерный массив, который дан в задаче, можно несколькими способами:

  • вручную;
  • случайными элементами;
  • ввод данных по формуле/правилу;
  • из текстового файла.

Далее каждый вариант будет рассмотрен отдельно. Не важно, из шести или более элементов состоит множество. Главное, что внести в него данные не составит никакого труда.

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

var a: array [1…5] of integer;

Вручную

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

For i: = 1 to 5 do

Здесь – пример использования цикла с параметром. Достаточно быстрый и простой вариант. Вторая строка – это реализация непосредственного ввода с клавиатуры.

Случайное число

Иногда множества информации оказываются объемными. Тут на помощь приходит не ручной ввод, а автоматический. Первый вариант – использование случайных значений:

For i: = 1 to n do

Это – один из самых простых примеров. Интервал значений можно задать согласно условиям поставленной задачи.

По правилу

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

Pascal и одномерные массивы

Выше – пример, который поможет заполнить множество данных квадратами натуральных чисел.

Текст

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

Можно найти туториалы и видео-уроки по чтению информации для массивов одномерного типа из текстовых документов. Вот – пример и основные принципы работы с соответствующими компонентами.

Вывод и шаблон для типовых задач

В Pascal ABC отобразить элементы одномерного множества можно при помощи цикла:

Pascal и одномерные массивы

А вот шаблон, который поможет решать типовые задачи на определение, заполнение и вывод одномерных множеств информации:

var i,n:integer; a: array[1..100] of integer; begin write('Укажите количество элементов'); readln(n); for i:=1 to n do begin a[i]:=random(100)-random(100); print (a[i]); end; end.

А вот – видео-урок, который лучше объяснит рассмотренную тему новичкам.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus !

Pascal-Паскаль

Программирование. Одномерные массивы Pascal-Паскаль

  • Скачено бесплатно: 27363
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Одномерные массивы Pascal-Паскаль

Программирование. Одномерные массивы Pascal-Паскаль

  • Массив как однородная совокупность элементов
  • Индекс массива
  • Вычисление индекса массива Паскаля
  • Основные действия с массивами Паскаля
  • Ввод массива Паскаля
  • Вывод массива Паскаля
  • Пример решения задачи с использованием массивов Паскаля

Понятие структуры

До сих пор мы работали с простыми типами данных – логический ( boolean ), целый ( integer , word , byte , longint ), вещественный ( real ), символьный ( char ). Любой алгоритм можно запрограммировать с помощью этих четырех базовых типов. Но для обработки информации о многообразном реальном мире требуются данные, имеющие более сложное строение. Такие сложные конструкции, основанные на простейших скалярных типах, называются структурами. Структура – некоторый составной тип данных, составленный из базовых скалярных. Если структура не изменяет своего строения на протяжении всего выполнения программы, в которой она описана, то такую структуру называют статической.

Массив – однородная совокупность элементов

Самой распространенной структурой, реализованной практически во всех языках программирования, является массив.

Массивы состоят из ограниченного числа компонент, причем все компоненты массива имеют один и тот же тип, называемый базовым. Структура массива всегда однородна. Массив может состоять из элементов типа integer , real или char , либо других однотипных элементов. Из этого, правда, не следует делать вывод, что компоненты массива могут иметь только скалярный тип.

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

Индекс массива

Номер элемента массива называется индексом. Индекс – это значение порядкового типа, определенного, как тип индекса данного массива. Очень часто это целочисленный тип ( integer , word или byte ), но может быть и логический и символьный.

Описание массива в Паскале. В языке Паскаль тип массива задается с использованием специального слова array (англ. – массив), и его объявление в программе выглядит следующим образом:

Type < имя _ типа >= array [ I ] of T;

где I – тип индекса массива, T – тип его элементов.

Можно описывать сразу переменные типа массив, т.е. в разделе описания переменных:

Var a,b: array [ I ] of T;

Обычно тип индекса характеризуется некоторым диапазоном значений любого порядкового типа : I 1 .. I n . Например, индексы могут изменяться в диапазоне 1..20 или ‘ a ‘..’ n ‘.

При этом длину массива Паскаля характеризует выражение:

ord ( I n )- ord ( I 1 )+1.

Вот, например, объявление двух типов: vector в виде массива Паскаля из 10 целых чисел и stroka в виде массива из 256 символов:

Type
Vector=array [1..10] of integer;
Stroka=array [0..255] of char;

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

Опишем переменные типа vector и stroka :

Var a: vector;
c: stroka;

далее в программе мы можем обращаться к отдельным элементам массива a или c . Например, a [5]:=23; c [1]:=’ w ‘; a [7]:= a [5]*2; writeln ( c [1], c [3]).

Вычисление индекса массива Паскаля

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

Этот механизм – весьма мощное средство программирования. Но он порождает распространенную ошибку: результат вычислений может оказаться за пределами интервала допустимых значений индекса, то есть будет произведена попытка обратиться к элементу, которого не существует. Эта типичная ошибка называется «выход за пределы массива».

Пример программы с ошибкой массива Паскаля

Program primer _ error ;
Type
vector=array [1..80] of word;
var
n: integer;
a: vector;
begin
n:=45;
a[n*2]:=25;
end .

Хотя данная программа полностью соответствует синтаксису языка, и транслятор «пропустит» ее, на стадии выполнения произойдет ошибка выхода за пределы массива Паскаля. При n =45 выражение n *2=90, компьютер сделает попытку обратиться к элементу массива a [90], но такого элемента нет, поскольку описан массив размерностью 80.

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

Из всего этого следует сделать вывод: программисту надо быть очень аккуратным при работе с индексами массива.

Основные действия с массивами Паскаля

Как известно, определение типа данных означает ограничение области допустимых значений, внутреннее представление в ЭВМ, а также набор допустимых операций над данными этого типа. Мы определили тип данных как массив Паскаля. Какие же операции определены над этим типом данных? Единственное действие, которое можно выполнять над массивами целиком, причем только при условии, что массивы однотипны, – это присваивание. Если в программе описаны две переменные одного типа, например,

Var
a , b : array [1..10] of real ;

то можно переменной a присвоить значение переменной b ( a := b ). При этом каждому элементу массива a будет присвоено соответствующее значение из массива b. Все остальные действия над массивами Паскаля производятся поэлементно (это важно!).

Ввод массива Паскаля

Для того чтобы ввести значения элементов массива, необходимо последовательно изменять значение индекса, начиная с первого до последнего, и вводить соответствующий элемент. Для реализации этих действий удобно использовать цикл с заданным числом повторений, т.е. простой арифметический цикл, где параметром цикла будет выступать переменная – индекс массива Паскаля. Значения элементов могут быть введены с клавиатуры или определены с помощью оператора присваивания.

Пример фрагмента программы ввода массива Паскаля

Var
A : array [1..10] of integer ;
I : byte ;
Begin
For i:=1 to 10 do
Readln (a[i]); < ввод i- го элемента производится с клавиатуры >

Рассмотрим теперь случай, когда массив Паскаля заполняется автоматически случайными числами, для этого будем использовать функцию random ( N ).

Пример фрагмента программы заполнения массива Паскаля случайными числами

Var
A: array [1..10] of integer;
I : byte ;
Begin
For i :=1 to 10 do
A [ i ]:= random (10); < i -му элементу массива присваивается «случайное» целое число в диапазоне от 0 до 10>

Вывод массива Паскаля

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

Пример фрагмента программы вывода массива Паскаля

Var
A: array [1..10] of integer;
I : byte ;
Begin
For i :=1 to 10 do
Write ( a [ i ],’ ‘);

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

Пример программы вывода массива Паскаля в столбик

Var
A: array [1..10] of integer;
I : byte ;
Begin
For i:=1 to 10 do
Writeln (‘a[‘, i,’]=’, a[i]); < вывод элементов массива в столбик >

На экране мы увидим, к примеру, следующие значения:

a [1]=2
a [2]=4
a [3]=1 и т.д.

Пример решения задачи с использованием массивов Паскаля

Задача: даны два n -мерных вектора. Найти сумму этих векторов.

Решение задачи:

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

var a , b : array [1..100] of integer ;

Ход решения задачи:

  • определим количество элементов (размерность) массивов, введем значение n ;
  • введем массив a ;
  • введем массив b ;
  • в цикле, перебирая значения индекса i от 1 до n , вычислим последовательно значения элементов массива c по формуле:

c [ i ]= a [ i ]+ b [ i ];

Текст программы :

Пример программы суммирования векторов

Program summa;
Var
a, b, c: array [1..100] of integer;
I, n: byte;
Begin
Write (‘введите размерность массивов:’);
Readln(n);
For i:=1 to n do
Readln (a[i]); < ввод массива a>
For i:=1 to n do
Readln (b[i]); < ввод массива b>
For i:=1 to n do
C[i]:=a[i]+b[i]; < вычисление суммы массивов >
For i:=1 to n do
write (c[i],’ ‘); < вывод массива с >
end.

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Счетчики

2008—2024 © pascal.helpov.net | All Rights Reserved

Одномерные массивы в Паскале

обучение PascalABC

Инфоучка

Работа с одномерными массивами на языке программирования Паскаль

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

В Pascal используются одномерные и двумерные массивы. В школьной программе обычно их изучают в 9-10 классах.

Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).

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

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

одномерный массив в паскале

Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.

Способы заполнения одномерных массивов

В наших примерах будем использовать одномерный массив целых чисел, состоящий из пяти элементов. Для этого выполним его описание в разделе переменных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *