Необъявленный идентификатор
Подскажите, почему пишет, что необъявленный идентификатор, ведь я всё объявил?
var
n,m:integer;
massivCHisel : array [ n,m ] of integer;
Ошибку выдаёт в массиве "array [ n,m ]"
.
Подскажите, почему пишет, что необъявленный идентификатор, ведь я всё объявил?
var
n,m:integer;
massivCHisel : array [ n,m ] of integer;
Ошибку выдаёт в массиве "array [ n,m ]"
.
Дело тут вот в чем. В отличие от Си-подобных языков в pascal/delphi объявление массива подразумевает указание не размера массива, а начального и конечного индексов. То есть если вам нужен двумерный массив размером n х m то объявлять его следует так:
massivCHisel : array [1..n, 1..m] of integer;
если же вы хотели создать одномерный массив с индексами от n до m, то так:
massivCHisel : array [n..m] of integer;
Но и это еще не все. Подобное объявление массива предполагает, что значения его индексов известно на этапе компиляции, то есть вышеприведенные записи по-прежнему не будут верными, поскольку m и n являются не константами, а переменными. Чтобы пример компилировался, вам нужно сделать что-то наподобие:
const n = 5;
m = 6;
var massivCHisel : array [1..n, 1..m] of integer;
Если же вас интересует иименно возможность задания границ массива с помощью переменных, то вам имеет смысл посмотреть в сторону динамических массивов