Почему нельзя при описании типа массива указывать границы индексного диапазона с помощью переменных? Pascal

0
Пользователь Анастасия Логинова задал вопрос в категории Другие языки и технологии и получил на него 3 ответа
17 февраля аноним,  в категории Компьютеры, Интернет
 
Ваш ответ
Отображаемое имя (по желанию):
Анти-спам проверка:

3 Ответы
0
17 февраля аноним, 
Потому что компилятор заранее должен знать сколько памяти нужно выделить под твой массив, ибо ее количество ограничено. Ты можешь задать массив заранее достаточно большого диапазона (скажем, 500 элементов), а потом присвоить переменной значение, введенное с клавиатуры и использовать его во всех циклах. Могу даже пример привести. Недавно писал программу:
const e=200;
var
 A,B,t:real;
 n,i,k,m :integer;
 x,p,C :array[1..e] of real;
begin
 writeln('введите количество пар x и p (не больше 200)');
 readln(n);
 for i:=1 to n do
 begin
 ...
 end;
...
0
17 февраля аноним, 
Потому что в Паскале место под статические масивы выделяется до выполнения программы, когда значения переменных еще неизвестно.
Хотя можно объявлять и динамические массивы, размеры которых задаются во время выполнения программы, но у них особый синтаксис.
0
17 февраля аноним, 
Потому что переменные - есть переменные.
Задавая границы переменными вы превращаете массив в динамический, а для этого есть специальный способ объявления.
Для компьютера переменные - словно капля воды в водопаде, когда пользователь требует значение переменной, компьютер выдергивает из определенного места в водопаде одну каплю, при этом он не уверен, что следующий раз на этом месте будет та же капля. А теперь представьте, что вы задаете массив переменными, т. е. вы говорите компьютеру сделай массив от "не знаю какого числа" и до "не знаю какого числа"
Copyright © 2016 Вопросы и ответы онлайн - sovety.info | Для связи: site@sovety.info
Мнение редакции может не совпадать с мнением авторов вопросов и ответов.
Индекс цитирования
...