В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
ElvirO
ElvirO
02.12.2020 11:51 •  Информатика

решить ошибку:
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]
Заранее огромное

Показать ответ
Ответ:
idjrglkuahregklha
idjrglkuahregklha
12.08.2020 17:56

У тебя элементы выходят за границу массива. Массив строится в твоей программе начиная с единицы: 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.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота