Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Типы данных в языке ПАСКАЛЬ делятся на простые и сложные. К простым типам относятся стандартные, перечислимые и ограниченные; к сложным типам — массивы, множества, записи, файлы. Элементами сложных типов могут быть простые типы, а также, в свою! очередь, сложные типы. Введение сложных типов делает язык программирования более мощным и позволяет составлять эффективные программы широкого класса задач. Рассмотрим подробнее сложные типы данных.
В математике, экономике, информатике часто используются упорядоченные наборы данных, например последовательности чисел, таблицы, списки фамилий. Для обработки наборов данных одного типа вводится понятие массива.
Под массивом понимается совокупность конечного числа данных одного типа. Массив обозначается одним именем. Так, всю совокупность действительных чисел
1.6, 14.9, -5.0, 8.5, 0.46
можно считать массивом и обозначить одним именем, например А. Каждый элемент массива обозначается именем массива с индексом. Элементы массива упорядочены по значениям индекса.
В математике, как правило, индекс либо заключается в круглые скобки, либо указывается несколько ниже имени массива, например: А(1), А(2), А(3), A(4), А(5) или А1, A2, A3, A4, А5, или в общем виде) {АI}, где i= 1,2,3,..., n.
В языке ПАСКАЛЬ индекс заключается в квадратные скобки. Для рассмотренного примера элементами массива А являются: | А[1] = 1.6, А[2] = 14.9, А[3] = - 5.0, А[4] =8.5, А[5] =0.46.
Если в программе используется массив, то он должен быть описан либо в разделе переменных VAR, либо в разделе типов TYPE. Pacсмотрим сначала описание массива в разделе переменных VAR. Форма) описания имеет вид
VAR_имя массива: ARRAY [t1] OF_t2;
Здесь ARRAY (массив); OF (из) — служебные слова; t1 — тип индекса, в качестве которого может быть любой простой тип, кроме стандартных типов REAL и INTEGER; (2 - тип элементов массива,) допустимый на языке ПАСКАЛЬ.
Для предыдущего примера описание массива имеет вид
VAR A: ARRAY [1..5] OF REAL;
Здесь А — имя массива, элементы которого имеют базовый тип REAL; тип индекса -ограниченный от 1 до 5.
Следует отметить, что поскольку тип индекса не может быть стандартным целым или действительным типом, то нельзя делать следующее описание массива (часто встречающаяся ошибка)
VAR A: ARRAY [5] OF REAL;
или
VAR A: ARRAY [INTEGER] OF REAL;
Примеры правильного описания массивов:
VAR
MASSIV:ARRAY[1..N]OF REAL;
ГОД:ARRAY[ЯНВАРЬ.. ДЕКАБРЬ]OF INTEGER;
L:ARRAY[СТРОКА]OF BOOLEAN;
M1:ARRAY[CHAR]OF КРУГ;
Если несколько массивов имеют одинаковый тип индексов и одинаковый базовый тип, то допускается в описании объединять массивы в список, например:
VAR А, В, С: ARRAY [1..50] OF REAL
Здесь объявлено списком три массива А, В, С действительных чисел, каждый из которых содержит по 50 элементов (от 1 до 50):
A[1],A[2],..,A[50],
B[1],B[2],..,B[50],
C[1],C[2],..,C[50].
Нельзя путать понятия «индекс» и «тип индекса». Тип индекса используется только в разделе описания массива, а индекс указывается в разделе операторов для обозначения конкретных элементов массива. При этом индекс должен быть того же типа, что и описание типа индекса.
В качестве индекса может быть выражение, частным случаем которого является константа или переменная. Элемент массива иначе называется переменной с индексом. В отличие от нее переменная без индекса называется простой переменной.
Элементы массива могут стоять как в левой части оператора присваивания, так и в выражениях. Над элементами массива можно производить те же операции, которые допустимы для данных его базового типа. Если базовый тип есть INTEGER, то допустимы все операции над данными целого типа, включая и стандартные функции. Примеры использования элементов массива в разделе операторов:
В[5]: = В[З] +1;
SUM: = SUM + С[K];
Р1: = А[2*I+1];
Для ввода и вывода числовых значений массива используются циклы. Например, цикл:
FOR l:=1 ТО 9 DO
READ(A[I]);
организует ввод девяти значений элементов массива А:
А[1], А[2],..,А[9],
а цикл
FOR I:=1 ТО 9 DO
WRITE(A[I]);
вывод девяти значений элементов того же массива.
Пример 9.1. Вычислить сумму пятнадцати целых чисел. Для обозначения чисел введем имя массива X, элементы которого имеют индекс I. Сумму обозначим именем SUM. Тогда SUM = Х[1] + Х[2] + … +X[15].
Фрагмент описания массива и использование его элементов в разделе операторов:
VAR X:ARRAY [1..15] OF INTEGER;
...
SUM:=0;
FOR I:=1 TO 15 DO
BEGIN
READ(X[I]);
SUM:= SUM + X[I]
END;
Внутри цикла вводится значение одного элемента массива X [ I ] и оно прибавляется к значению текущей суммы SUM. Цикл повторяется 15 раз. Элементы массива имеют целый тип (INTEGER), а индекс ограниченный тип 1..15.
Переменная I, с одной стороны, используется как параметр цикла, а с другой — в качестве индекса. В этом случае описать переменную I можно двояко:
а) в разделе переменных VAR указать переменную I как ограниченного типа, например
VAR
X:ARRAY[1..15]OF INTEGER;
I:1..15;
б) учитывая, что элементами ограниченного типа являются целые числа, можно ввести описание INTEGER, например
VAR
X:ARRAY[1..15] OF INTEGER;
I:INTEGER;
Так как в языке ПАСКАЛЬ требуется описание всех переменных, то необходимо описать еще и переменную SUM. Естественно, что она имеет тип INTEGER, так как все суммарные числа Х[1] имеют целый тип.
Дата публикования: 2014-11-02; Прочитано: 577 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!