logo search
Otvety_IGA

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

Поэлементный ввод данных реализован в процедуре Cell_Input. В процессе ввода

используется простейший диалог. При этом сначала запрашивается значение фактического

числа N элементов массива. С помощью оператора цикла Repeat принимается только то

значение N, которое удовлетворяет условию 1≤N≤High(X), где, очевидно, High(X)=Rmax.

Далее в цикле ввода каждый элемент запрашивается поочерёдно. Выполняя процедуру

реально, сначала необходимо ввести правильное значение N и нажать клавишу <Enter>, а затем

N раз подряд в ответ на соответствующие запросы вводить целые числа, также нажимая после

каждого клавишу <Enter>. Нажатие клавиши <Enter> без предварительно набранного числа

процедурой не принимается. При очередном вводе более чем одного числа игнорируются все,

кроме первого.

Для вывода N элементов одномерного массива X (фактический идентификатор Id) на

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

Procedure OutPut_1(Id: String; N: Integer; Var X: Array Of Integer);

Var j: Integer;

Begin

WriteLn('Элементы одномерного массива ',Id,':');

For j:=1 To N Do Write(X[j],' ');

WriteLn

End;

Целые числа из массива выводятся последовательно через пробел. Завершающий

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

Каждый элемент массива имеет свой номер - индекс. Доступ к x-ому элементу массива осуществляется при помощи операции индексации. В качестве индекса может использоваться любое выражение, выдающее значение целого типа: char, short, int, long. Индексы элементов массива в Си начинаются с 0 (а не с 1), и индекс последнего элемента массива из LENGTH элементов - это LENGTH-1 (а не LENGTH).

Язык Си предоставляет средство для работы с адресами данных - указатели (pointer)| -. Указатель физически - это адрес некоторой переменной ("указуемой" переменной). Отличие указателей от машинных адресов состоит в том, что указатель может содержать адреса данных только определенного типа. Указатель ptr, который может указывать на данные типа TYPE.