Помогите пожалуйста решить ошибку: program second; const N= 10; var a: array[1..N] of...

0 голосов
80 просмотров

Помогите пожалуйста решить ошибку: program second; const N= 10; var a: array[1..N] of real; i: integer; begin for i:=1 to N do a[i]:= 2*a[i-1]; writeln('Массив A:'); for i:=1 to N do write(a[i]); end. Program1.pas(7) : Ошибка времени выполнения: Индекс находился вне границ массива. ОШИБКУ выдаёт на строчке a[i]:=2*a[i-1] Заранее огромное Спасибо


Информатика (12 баллов) | 80 просмотров
Дан 1 ответ
0 голосов

У тебя элементы выходят за границу массива. Массив строится в твоей программе начиная с единицы: array[1..N]   (a[1], a[2], a[3] .... a[N])

Например есть массив 9 7 6.

a[1] = 9

a[2] = 7

a[3] = 6

У тебя строчка в цикле будет выглядеть так: a[1] = 2 * a[0]

У тебя a[0] нету такого числа.

Поэтому надо сделать так (заменить в цикле i:=1 на i:=2):

program second;

const N= 10;

var a: array[1..N] of real;

i: integer;

begin

for i:=2 to N do

a[i]:= 2*a[i-1];

writeln('Массив A:');

for i:=1 to N do

write(a[i]);

end.

(294 баллов)