Способ задания массива паскаль

Массивы в Pascal

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Способ задания массива паскаль

Презентация «Основы Турбо Паскаль»

Презентация «Сортировка одномерного массива»

В некоторых случаях приходится сталкиваться с ситуацией, когда нужно использовать относительно много данных одного типа. Представим себе программу, которая позволяет вычислить определенные метеорологические данные и в которой всегда будет не менее 365 переменных. Таким способом можно присваивать отдельным переменным метеоданные по отдельным дням всего года. Можно объявить тип real у 365 переменных, используя запись

Var day1, day2, day3. day365:real;

Чтобы только записать все данные, понадобится страница, а чтобы выполнить над введенными данные какие-либо арифметические операции, например, найти среднее арифметическое, понадобится еще страница записи программы. Согласитесь, не совсем удобно в плане расхода времени, бумаги и т.д. Для таких случаев Pascal предоставляет возможность введения большого числа переменных одного и того же типа, используя простые выражения. Вспомогательное средство, которые имеется в виду, известно под именем array , (в переводе с английского – массив).

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

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

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

Читайте также:  Бесшовный способ укладки керамической плитки

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

Массивы могут быть описаны несколькими способами:

1. ARRAY – указывает на ряд переменных одного и того же типа, например, integer или real , имеющих один идентификатор. Определенная переменная из массива представлена именем массива, например, day , после которого в квадратных скобках записано число (номер). Или говорят ИМЯ [индекс]. Отдельные переменные массива называются элементами массива.

Var имя массива: ARR или AY [ n 1.. n 10] of ;

Var а: ARRAY [100] of integer ;

Если задается несколько одинаковых массивов, то они описываются следующим способом:

а ,b,c: ARRAY [1..50] of; const:=5;

Сначала в разделе описания типов TYPE указывается тип массива, затем в разделе описаний переменных Var перечисляются массивы, относящиеся к указанному типу.

Введение типа массива увеличивает раздел описаний, но упрощает отладку программ. Указание типов в разделе описаний является хорошим стилем программирования.

Type massiv:=array[n1..n2] of тип элементов >;

Type mass:=array[1..30] of integer;

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

Пример: числовая последовательность четных натуральных чисел 2, 4, 6, . N представляет собой линейный массив, элементы которого можно обозначить А[1]=2, А[2]=4, А[3]=6, . А[К]=2*(К+1), где К — номер элемента, а 2, 4, 6, . N — значения. Индекс (порядковый номер элемента) записывается в квадратных скобках после имени массива.

Например, A[7] — седьмой элемент массива А; D[6] — шестой элемент массива D.

Для размещения массива в памяти ЭВМ отводится поле памяти, размер которого определяется типом, длиной и количеством компонент массива. В языке Pascal эта информация задается в разделе описаний. Массив описывается так:

имя массива : Array [начальное значение индекса..конечное значение индекса] Of базовый тип;

Var B : Array [1..5] Of Real, R : Array [1..34] Of Char;

— описывается массив В, состоящий из 5 элементов и символьный массив R, состоящий из 34 элементов. Для массива В будет выделено 5*6=30 байт памяти, для массива R — 1*34=34 байта памяти.

Задача 1. Заполнить одномерный массив элементами, отвечающими следующему соотношению:

FOR I := 3 TO N DO

A[I] := A[I — 1] + A[I — 2];

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

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

Type Mas = Array[1..100] Of Integer;

Var A : Mas; I, J, N : Byte; Log : Boolean;

randomize; A[1] := -32768 + random(65535);

For I := 2 To N Do

A[i] := -32768 + random(65535); J := 1;

While Log and (j

begin Log := a[i] <> a[j]; j := j + 1 End

For i := 1 to N Do Write(a[i]:7); writeln

2) ввод значений элементов массива с клавиатуры используется обычно тогда, когда между элементами не наблюдается никакой зависимости. Например, последовательность чисел 1, 2, -5, 6, -111, 0 может быть введена в память следующим образом:

Var N, I : Integer;

A : Array [1..20] Of Integer;

Write(‘ Введите количество элементов массива ‘); ReadLn(N);

FOR I := 1 TO N DO

Write(‘ Введите A[‘, I, ‘] ‘); ReadLn(A[I])

Над элементами массивами чаще всего выполняются такие действия, как

Читайте также:  Способы обработки текстовых данных

а) поиск значений;

б) сортировка элементов в порядке возрастания или убывания;

в) подсчет элементов в массиве, удовлетворяющих заданному условию.

Заполнить массив можно следующим образом:

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

Источник

Pascal-Паскаль

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Power query укажите способ подключения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Справочник

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

Источник

Оцените статью
Разные способы