мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
pascal:errors [05/10/2010 10:58] ocapascal:errors [19/10/2010 13:03] (текущий) oca
Строка 1: Строка 1:
 ===== Типичные ошибки ===== ===== Типичные ошибки =====
 +<code pascal>
 +
 +</code>
  
 <code pascal> <code pascal>
 const const
-  k = 5; +  k = 5;                     { Это - "именованная" константа } 
-  m : integer = 5;           {"Статическая" переменная}+  m : integer = 5;           Это не константа, это - "статическая" переменная }
      
 var  var 
-  n  : integer; +  n  : integer;              { Это - просто переменная }  
-  Ak : array [1..k] of ... ; { так можно } +   
-  Am : array [1..m] of ... ; { так - нельзя }   +  Ak : array [1..k] of ... ; { Так можно } 
-  An : array [1..n] of ... ; { так - тоже }  +  Am : array [1..m] of ... ; { Так - нельзя. Значения переменные получают только после распределения памяти }   
 +  An : array [1..n] of ... ; { Так - тоже. По той же причине }  
      
 ... ...
 </code> </code>
 +
 +Примечание. Паскаль и другие универсальные языки программирования позволяют создавать массивы уже после начала выполнения программы через  механизм "динамической памяти"
  
 <code pascal> <code pascal>
 var  var 
   gd, gm : integer;   gd, gm : integer;
-  initgraph(gd, gm, ''); {В разделе описаний - только описания}+  initgraph(gd, gm, ''); { В разделе описаний Паскаля - только описания }
      
 ... ...
Строка 29: Строка 35:
 begin   begin  
 var  var 
-  gd, gm : integer;      { Обратная ситуация - в Паскале нельзя включать описания в раздел кода}+  gd, gm : integer;      { Обратная ситуация - в Паскале нельзя включать описания в раздел кода }
   initgraph(gd, gm, '');    initgraph(gd, gm, ''); 
 ... ...
Строка 53: Строка 59:
      
   {А вот так - всегда неверно.}   {А вот так - всегда неверно.}
-  A    := i; +  A    := i;                     // Нельзя заполнить массив одним числом (увы!) 
-  j    := B;+  j    := B;                     // Непонятно, как запихать в одно число целый набор
   ...   ...
 end.   end.  
Строка 61: Строка 67:
 <code pascal> <code pascal>
 writeln(x:integer); {Описание переменной должно быть в блоке var} writeln(x:integer); {Описание переменной должно быть в блоке var}
-writeln(x := 2); {Нельзя присваивать переменной значение в аргументе функции} +writeln(x := 2);    {Нельзя присваивать переменной значение в аргументе функции} 
-readln(2); {В качестве аргумента должна быть переменная}+readln(2);          {В качестве аргумента должна быть переменная}
 </code> </code>