===== Типичные ошибки ===== const k = 5; { Это - "именованная" константа } m : integer = 5; { Это не константа, это - "статическая" переменная } var n : integer; { Это - просто переменная } Ak : array [1..k] of ... ; { Так - можно } Am : array [1..m] of ... ; { Так - нельзя. Значения переменные получают только после распределения памяти } An : array [1..n] of ... ; { Так - тоже. По той же причине } ... Примечание. Паскаль и другие универсальные языки программирования позволяют создавать массивы уже после начала выполнения программы через механизм "динамической памяти". var gd, gm : integer; initgraph(gd, gm, ''); { В разделе описаний Паскаля - только описания } ... var i,j : integer; begin var gd, gm : integer; { Обратная ситуация - в Паскале нельзя включать описания в раздел кода } initgraph(gd, gm, ''); ... var i, j : integer; A, B : array [1...10] of integer; {Много точек!} ... begin ... {Это - верно} i := j; A := B; {Верно при правильных значения i и j} A[i] := B[j]; A[i] := j; i := B[j]; {А вот так - всегда неверно.} A := i; // Нельзя заполнить массив одним числом (увы!) j := B; // Непонятно, как запихать в одно число целый набор ... end. writeln(x:integer); {Описание переменной должно быть в блоке var} writeln(x := 2); {Нельзя присваивать переменной значение в аргументе функции} readln(2); {В качестве аргумента должна быть переменная}