Заполнить массив по заданному правилу - Pascal ABC (250718)
Формулировка задачи:
имеется код и при запуске на 8-ой строчке выдаёт ошибку, что индекс находился вне границы массива:
В цикле значение должны складываться от предыдущего. То есть если ввести а=3, то 3 раза должны выйти строки на экран с суммой на 5 больше предыдущей строки. Как это можно сделать подскажите пожалуйста и можете объяснить почему выводит ошибку...
Решение задачи: «Заполнить массив по заданному правилу»
textual
Листинг программы
const n = 10; var a: array[1..n] of integer; x, i, m: integer; begin write('Введите кол-во домов: '); read(m); write('Введите расстояние между домами: '); read(x); a[1] := 1; writeln('1 - 1'); for i := 2 to m do begin a[i] := a[i - 1] + x; writeln(i, ' - ', a[i]); end; end.
Объяснение кода листинга программы
- Объявляются константы и переменные:
- n = 10 (количество домов в массиве)
- a = array[1..n] of integer (массив для хранения номеров домов)
- x, i, m = integer (переменные для выполнения задачи)
- Запрашивается у пользователя ввод количества домов и расстояния между ними
- Вводится начальное значение для первого дома (1)
- Выводится информация о первом доме (1 - 1)
- С помощью цикла for заполняются остальные дома массива по заданному правилу (a[i] = a[i-1] + x), где i - номер текущего дома, a[i-1] - номер предыдущего дома, x - расстояние между домами
- Выводится информация о каждом доме (номер дома - номер дома + расстояние)
- Программа завершается