Курс: Pascal. Xранение и обработка данных

Модуль: Массивы. Основы

Задачи

Задача

2/10

Обращение к элементу массива

Ограничение по времени: 500 ms
Ограничение по памяти: 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Теория

Обращение к элементу массива

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

ЗАПОМНИТЕ!
НУМЕРАЦИЯ МАССИВОВ В PASCAL НАЧИНАЕТСЯ С НУЛЯ!

(Это является обязательным — вы должны начинать с нуля. Это особенно важно запомнить)

Примеры обращения к массиву A:
x := (A[3] + 5) * A[1] // прочитать значения A[3] и A[1]
A[0] := x + 6        // записать новое значение в A[0]
Разберем программу работы с элементами массива.
var i: integer;
a: array of integer;

begin
    i := 1;
    setlength(a, 5); //создаем массив из 5 элементов 
    a[0] := 23; // в каждый из 5 элементов массива (индексы от 0 до 4)
    a[1] := 12; // записываем определенное значение
    a[2] := 7;
    a[3] := 43;
    a[4] := 51;
    a[2] := a[i] + 2 * a[i - 1] + a[2 * i]; // изменим значение элемента с индексом 2, на результат выражения
    // т.к i=1, то подставляя значение переменной i в выражение получим
    // следующее выражение  a[2] := a[1] + 2*a[0] + a[2];
    writeln(a[2] + a[4]);
end.


В результате выполнения данной программы на экране появится значение суммы элементов массива с индексом 2 и с индексом 4 равное 116. Как видно из примера, мы можем обращаться к любому элементу массива. А также вычислять необходимый номер элемента по различным формулам (например, как в программе A[i-1] или A[2*i], в данных случаях индексы элементов будут вычислены и зависят от значения i.)

Разберем пример программы
var a: array of integer;

begin
    setlength(a, 5);
    a[5] := 5;
    a[-1] := 0;
end.

Т.к. массив объявлен из 5 элементов, значит элементы будут иметь нумерацию от 0 до 4. Видим, что программа в 6й строке обращается к несуществующему элементу а[5] и в 7ой строке к также несуществующему а[-1].

Получается, что программа вышла за границы массива
Выход за границы массива - это обращение к элементу с индексом, который не существует в массиве.
В таких случая программа обычно завершается аварийно с ошибкой run-time error


 
 

Задача

В строках с 8 по 11 присвойте элементам массива с индексами от 1 до 4 значение, равное удвоенному значению предыдущего элемента массива. 
В данной задаче нельзя присваивать конкретные числа, необходимо обращаться именно к предыдущему элементу массива по имени и индексу
То есть запись a[1] = 46 будет считать неверной.