Error 113 error in statement

113. Error in statement (ошибка в операторе) С этого символа не может начинаться оператор. 116. Must be in 8087 mode to compile this (для компиляции этой конструкции должен быть режим 8087) Эта конструкция может компилироваться только в состоянии . Операция над 8087 типами Single, Double, Extended и Comp недопустимы в состоянии . 121. Invalid […]

Содержание

  1. 113. Error in statement (ошибка в операторе)
  2. Наиболее распространенные сообщения об ошибках
  3. Контрольные вопросы по теме «Алгоритмизация и программирование»
  4. Список использованной литературы
  5. Иллюстрированный самоучитель по Turbo Pascal
  6. Сообщения об ошибках периода компиляции
  7. самоучитель Паскаль он-лайн
  8. Он-лайн самоучитель Паскаль
  9. Сообщения и коды ошибок
  10. Сообщения об ошибках периода компиляции

113. Error in statement (ошибка в операторе)

С этого символа не может начинаться оператор.

116. Must be in 8087 mode to compile this (для компиляции этой конструкции должен быть режим 8087)

Эта конструкция может компилироваться только в состоянии <$N+>. Операция над 8087 типами Single, Double, Extended и Comp недопустимы в состоянии <$N->.

121. Invalid Qualifier (неправильный квалификатор)

Попытка индексировать переменную, которая отсутствует в массиве.

Попытка задать поля в переменной, которая не является записью.

Попытка получить значение, на которое указывает переменная, не являющаяся указателем.

122. Invalid variable reference (неправильная ссылка на переменную)

Предыдущая конструкция следует синтаксису ссылки на переменную, но не обозначает размещение памяти. Наиболее вероятно, Вы вызвали функцию указателя, но забыли получить значение, на которое указывает результат.

Программа или модуль объявляет более 64К символов. Если программа или модуль компилируется с опцией <$D+>, то попробуйте ее выключить — заметим, однако, что это будет препятствовать нахождению ошибок выполнения в этом модуле. В противном случае, можно попробовать переместить несколько объявлений в отдельный модуль.

129. ENDIF directive missing (отсутствует директива EndIf)

Исходный файл заканчивается внутри конструкции условной компиляции. В исходном файле должно быть одинаковое количество директив <$IFxxx>и <$ENDIF>.

133. Cannot evaluate this expression (нельзя вычислить это выражение)

Попытка использовать неподдерживаемое Turbo Pascal свойство в константном выражении или в отладочном выражении. Например, Вы пытаетесь использовать функцию Sin в объявлении константы, или Вы пытаетесь вызвать функцию, определенную пользователем, в отладочном выражении.

134. Expression incorrectly terminated (выражение завершается неправильно)

Turbo Pascal ожидает или оператор, или конец выражения в этой точке, но ничего не находит.

135. Invalid format specifier (неправильный спецификатор формата )

Используется неправильный спецификатор формата или числовой аргумент спецификатора формата выходит за допустимый диапазон.

140.Invalid floatingpoint operation (Неправильная операция с плавающей точкой)

Операция над двумя значениями вещественного типа привела к переполнению или является делением на ноль.

147 Object type expected (Ожидается объектный тип.)

Идентификатор не является объектным типом.

150 Method identifier expected. (Идентификатор метода ожидается.)

Идентификатор не является методом.

Некоторые ошибки во время выполнения программы приводят к тому, что программа выводит на дисплей сообщение об ошибке и завершается:

Run-time error nnn at xxxх:yyyy

(ошибка выполнения nnn по адресу xxxх:yyyy, где nnn-номер ошибки выполнения, а xxxx:yyyy — адрес ошибки выполнения (сегмент и смещение))

Ошибки выполнения разделены на четыре категории:

ошибки операционной системы DOS:1-99

критические ошибки :150-199

106. Invalid numeric format (неправильный числовой формат)

Сообщается процедурами Read и ReadLn, если числовое значение, прочитанное из текстового файла не соответствует правильному числовому формату.

201. Ошибка выхода за допустимый диапазон. Эта ошибка сообщается операторами, откомпилированными в состоянии <$R+>, когда возникает одна из следующих ситуаций:

Индексное выражение квалификатора массива выходит за допустимый диапазон.

Была сделана попытка присвоить переменной значение, выходящее за допустимый диапазон.

Была сделана попытка передать процедуре или функции в качестве параметра значение, выходящее за допустимый диапазон.

202. Stack overflow error (ошибка переполнения стека)

Эта ошибка сообщается при входе в процедуру или функцию, откомпилированную в состоянии <$S+>, когда в стеке нет достаточно места для размещения локальных переменных подпрограмм. Увеличьте размер стека с помощью директивы компилятора $M. Эта ошибка может возникать так же из-за бесконечной рекурсии.

205. Floating point overflow (переполнение с плавающей точкой)

Операция с плавающей точкой обрабатывает слишком большое для Turbo Pascal или сопроцессора число.

206. Floating point underflow (потеря значности при операции с плавающей точкой)

Операция с плавающей точкой приводит к потере значности. Эта ошибка сообщается, если только используется числовой сопроцессор 8087 с контрольным словом, которое не маскирует потерю значности. По умолчанию, потеря значности вызывает возвращение нулевого результата.

207. Invalid floating point operation (неправильная операция с плавающей точкой)

Вещественное значение, передаваемое Trunc или Round, не может быть преобразовано в целое внутри диапазона для типа LongInt (-2147483648 до 214783647)

Аргумент, передаваемый функции Sqrt, является отрицательным числом.

Аргумент, передаваемый функции Ln, равен нулю или отрицательный.

Произошло переполнение стека сопроцессора 8087.

Источник

Наиболее распространенные сообщения об ошибках

2 Identifier expected, не указан идентификатор.

3 Unknown identifier, неизвестное имя идентификатора, идентификатор не был описан.

4 Duplicate identifier, двойной идентификатор, попытка дважды описать один и тот же идентификатор.

5 Syntax error, синтаксическая ошибка, найден недопустимый символ.

8 String constant exceeds line, пропущен апостроф в конце строковой константы.

10 Unexpected end of file, отсутствует конец файла, т.е. не поставлена точка после END или вероятно в программе неодинаковое количество операторов BEGIN и END.

11 Line too long, слишком длинная строка.

12 Type identifier expected, не указан тип идентификатора.

16 Disk full, диск заполнен, необходимо удалить некоторые файлы или воспользоваться новым диском.

20 Variable identifier expected, не указан идентификатор переменной.

21 Error in type, ошибка в объявлении типа.

26 Type mismatch, несоответствие типов. Несовместимые типы переменной и выражения в операторе присваивания;

33 Labеl identifier expected, необходим идентификатор метки.

36 BEGIN expected, необходим BEGIN.

37 END expected, необходим END.

38 Integer expression expected, необходимо выражение типа Integer.

41 Operand types do not match operator, типы операндов не соответствуют операции.

42 Error in expression, ошибка в выражении.

50 DO expected, необходим оператор DO.

62 Division by zero, предшествующая операция пытается выполнить деление на ноль.

79 Integer or real expression expected, необходимо выражение вещественного или целого типа.

85 “;”expected, отсутствует точка с запятой.

89 “)”expected, пропущена скобка.

97 Invalid FOR control variable, неверный параметр цикла оператора FOR.

98 Integer variable expected, переменная должна иметь целый тип.

113 Error in statement, ошибка в операторе, данный символ не может быть первым символом в операторе.

207 Invalid floating point operation, недопустимая операция с плавающей запятой (отрицательный аргумент функции SQRT или аргумент функции LN равен нулю или имеет отрицательное значение).

Контрольные вопросы по теме «Алгоритмизация и программирование»

Этапы решения задач на ЭВМ.

Понятие алгоритма, свойства алгоритмов.

Способы задания алгоритмов.

Линейная структура алгоритмов.

Разветвляющая структура алгоритмов.

Циклическая структура алгоритмов.

Характеристика языков программирования.

Трансляторы с языков программирования.

Алгоритмический язык Turbo Pascal: особенности, назначение.

Алфавит и словарь языка Turbo Pascal.

Константы и переменные.

Структура программы. Требования к написанию программ.

Классификация типов данных.

Стандартные типы данных.

Пользовательские типы данных.

Выражения, операции, операнды.

Приоритеты выполнения операций.

Понятие оператора. Простые операторы.

Структурные операторы: составной оператор.

Структурные операторы: условные операторы.

Структурные операторы: операторы повтора.

Понятие массива, характеристика массива.

Порядок разработки программы на Turbo Pascal.

Список использованной литературы

Бабушкина, И. А. Практикум по Турбо Паскалю: учебное пособие по курсам «Информатика и вычислительная техника» / И. А. Бабушкина, Н. А. Бушмелева. – М. : АБФ, 1998. – 384с.

Немнюгин, С. А. Turbo Pascal / С. А. Немнюгин. – СПб. : Питер, 2002. – 496с.

Основы программирования / С. М. Окулов. – 3-е изд. – М. : БИНОМ. Лаборатория знаний, 2006. – 440с. : ил.

Попов, В. Б. Турбо Паскаль для школьников / В. Б. Попов. – М., 2000.

Рапаков, Г. Г. Turbo Pascal для студентов и школьников / Г. Г. Рапаков, С. Ю. Ржеуцкая. – СПб. : БХВ-Петербург, 2004. – 352с.

Фаронов, В. В. Турбо Паскаль 7.0. Практическое программирование / В. В. Фаронов. − Киев, 2000.

Фаронов, В. В. Турбо Паскаль 7.0. Начальный курс / В. В. Фаронов. – Киев, 2000.

Источник

Иллюстрированный самоучитель по Turbo Pascal

Сообщения об ошибках периода компиляции

106 Character expression expected (Предшествующее выражение должно иметь символьный тип).

107 Too many relocation items (Слишком много перемещаемых Элементов).

Размер таблицы перемещения файла .ЕХЕ превышает 64 Кбайта, что является верхним пределом в Турбо Паскале. Если Вы обнаружили эту ошибку, то это значит, что программа просто слишком велика для обработки компоновщиком Турбо Паскаля. Возможно также, что она слишком велика для выполнения в MS-DOS. В таком случае нужно выделить в программе основной раздел, который выполнял бы обращение к двум или более вспомогательным разделам с помощью процедуры ЕХЕС из модуля DOS (см. гл.11).

108 Overflow in arithmetic operator (Переполнение при выполнении арифметического оператора).

Результат предыдущей арифметической операции не лежит в диапазоне -2 146 483 648…+2 147 483 647. Исправьте операцию или используйте вещественные типы вместо целочисленных.

109 No enclosing FOR, WHILE or REPEAT statment (Нет операторов, заканчивающих операторы FOR, WHILE или REPEAT).

Процедуры BREAK и CONTINUE не могут вызываться вне тела оператора цикла.

110 Debug information table overflow (Переполнение информационной таблицы отладки).

Возможно, программа содержит более 65536 имен или 65536 строк. Отключите генерацию таблиц отладки директивой компилятора или исправьте один или более модулей.

111

Ошибка с этим кодом не описана в версии 7.0 системы Турбо Паскаль.

112 CASE constant out of range(Константа CASE нарушает допустимые границы).

Целочисленные константы оператора CASE должны находиться в диапазоне от -32768 до 32767.

113 Error in statement (Ошибка в операторе).

Данный символ не может быть первым символом в операторе.

114 Cannot call an interrupt procedure (Невозможно вызвать процедуру прерывания).

Вы не можете непосредственно вызвать процедуру обработки прерывания.

115

Ошибка с этим кодом не описана в версии 7.0 системы Турбо Паскаль.

116 Must be in 8087 mode to compile this (Для компиляции необходим режим 8087).

Данная программа может быть скомпилирована только в режиме . В состоянии операции с типами SINGLE, DOUBLE, EXTENDED и СОМР не допускаются.

117 Target address not found (Указанный адрес не найден).

Команда COMPILE/FIND ERROR в среде Турбо Паскаля (или поиск с помощью опции /F в командной строке компилятора ТРС.ЕХЕ) не обнаружила оператор, соответствующий заданному адресу.

118 Include files are not allowed here (Здесь не допускаются включаемые файлы).

Раздел операторов должен целиком размещаться в одном файле.

119 No inherited methods are accessible here (В этом месте программы нет унаследованных методов).

Вы используете зарезервированное слово INHERITED вне метода объекта или в методе, который не унаследован от родительского объекта.

120

Ошибка с этим кодом не описана в версии 7.0 системы Турбо Паскаль..

Источник

самоучитель Паскаль он-лайн

Он-лайн самоучитель Паскаль

Сообщения и коды ошибок

  • Сообщения об ошибках периода компиляции
  • Ошибки возникающие во время выполнения программ
  • Ошибки, обнаруживаемые ДОС
  • Ошибки ввода-вывода
  • Критические ошибки
  • Фатальные ошибки

Сообщения об ошибках периода компиляции

Среда Турбо Паскаля дает исчерпывающую информацию о характере и месте обнаруженной компилятором ошибки. При обнаружении ошибки среда автоматически загружает в окно редактора исходный файл и помещает курсор около того места, где в исходном тексте обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение. После нажатия на любую клавишу (кроме FI) верхняя строка восстанавливает свой первоначальный вид и среда переходит к режиму редактирования. Если после появления сообщения об ошибке нажать F1, на экране появится окно справочной службы с детальной информацией об ошибке и рекомендациями по ее устранению. Некоторые ошибки в исходном тексте обнаруживаются не сразу, а в ходе продолжающегося контекстного разбора. Например, несоответствие типов в операторе присваивания не может быть обнаружено до тех пор, пока не будет вычислено целиком выражение в правой части этого оператора. В таких случаях ищите ошибку слева от курсора или в предыдущей строке текста.

Ниже приводятся сообщения об ошибках в том виде, в каком они появляются в верхней строке редактора, а также перевод сообщений справочной службы.

На экране после кода ошибки (цифры) нет точки, поэтому ее нет и в соответствующем месте текста.

1 Out of memory (Выход за границы памяти).

Компилятору не хватает памяти. Имеется ряд возможных решений этой проблемы:

  • если в опции COMPILE/DESTINATION установлено значение MEMORY, замените эту опцию на DISK;
  • если в опции OPTIONS/LINKER/LINK BUFFER установлено значение MEMORY, замените эту опцию т DISK;
  • если Вы используете резидентные обслуживающие программы, такие как SIDEKICK, NORTON, удалите их из памяти;
  • если Вы используете интегрированную среду TVRBO.EXE, то попробуйте воспользоваться компилятором ТРС.ЕХЕ — он занимает меньше памяти.

Если ни одна из рекомендаций не помогает, то, возможно, Ваша программа просто слишком велика, чтобы компилировать ее в таком объеме памяти. В этом случае Вы должны разбить ее на два или более модулей.

2 Identifier expected (He указан идентификатор).

В этом месте должен находиться идентификатор. Возможно, Вы пытаетесь использовать в качестве идентификатора зарезервированное слово.

3 Unknown identifier (Неизвестный идентификатор).

Этот идентификатор не был описан.

4 Duplicate identifier (Двойной идентификатор).

Попытка дважды описать один и тот же идентификатор.

5 Syntax error (Синтаксическая ошибка).

В исходном тексте найден недопустимый символ. Возможно, Вы забыли заключить в апострофы строковую константу.

6 Error in real constant (Ошибка в вещественной константе).

Синтаксис констант вещественного типа описан в гл.4.

7 Error in integer constant (Ошибка в целой константе).

Синтаксис констант целого типа описан в гл.4. Учтите, что после целых действительных чисел, превышающих диапазон представления целых чисел (-2147483648..+2147483647), должны ставиться точка и ноль, например, 12345678912.0.

8 String constant exceeds line (Строковая константа превышает допустимые размеры).

Вероятно, Вы забыли поставить апостроф в конце строковой константы.

9 Too many nested files (Слишком много вложенных файлов).

Компилятор допускает не более пяти уровней вложенности включаемых файлов (т.е. в исходном файле есть ссылка на включаемый файл, в котором есть ссылка на еще один включаемый файл и т.д.).

10 Unexpected end of file (He найден конец файла).

Вы могли получить это сообщение об ошибке по одной из следующих причин:

  • Ваш исходный файл закончился перед последним END основного раздела операторов; вероятно, в Вашей программе неодинаковое количество операторов BEGIN и END;
  • включаемый файл заканчивается в середине раздела операторов; каждый раздел операторов должен целиком помещаться в одном файле;
  • Вы не закончили комментарий.

11 Line too long (Слишком длинная строка).

Максимальная длина строки, обрабатываемой компилятором, равна 126 символам (обратите внимание: редактор среды может обрабатывать строки практически неограниченной длины).

12 Type identifier expected (Здесь нужен идентификатор типа).

Не указан тип идентификатора.

13 Too many open files (Слишком много открытых файлов).

Появление этой ошибки означает, что конфигурационный файл CONFIG.SYS операционной системы не включает параметр FlLES=xx или этот параметр указывает слишком мало файлов. Увеличьте число файлов до нужного значения, например, до 80.

14 Invalid file name (Неверное имя файла).

Имя файла неверно или указан несуществующий путь.

15 File not found (Файл не найден).

Файл не был найден в просмотренных каталогах.

16 Disk full (Диск заполнен).

Удалите некоторые файлы или воспользуйтесь новым диском.

17 Invalid compiler directive (Неправильная директива компилятора).

Неверная буква в директиве компилятора, один из параметров директивы компилятора неверный, или Вы пользуетесь глобальной директивой компилятора, когда компиляция тела программы уже началась.

18 Too many files (Слишком много файлов).

В компиляции программы или программного модуля участвуют слишком много файлов. Попытайтесь не использовать так много файлов, например, объединяя включаемые файлы или делая короче имена файлов.

19 Undefined type in pointer definition (Неопределенный тип в объявлении указателя).

Попытка объявить типизированный указатель, связанный с ранее не объявленным типом данных.

20 Variable identifier expected (Отсутствует идентификатор переменной).

На этом месте должен быть идентификатор переменной.

21 Error in type (Ошибка в объявлении типа).

Объявление типа не может начинаться с этого символа.

22 Structure too large (Слишком большая структура).

Максимально допустимый размер любого структурного типа составляет 65520 байт.

23 Set base type of range (Базовый тип множества нарушает границы).

Базовый тип множества должен представлять собой тип-диапазон с границами в пределах от 0 до 255 или перечисляемый тип с не более чем 256 значениями.

24 File components may not be files (Компонентами файла не могут быть файлы) .

Конструкции типа file of file (файл файлов) или file of object (файл объектов) не допускаются. Нельзя объявлять любые структурные типы, которые используют в качестве компонентов объекты или файлы.

25 Invalid string length (Неверная длина строки).

Объявляемая длина строки должна находиться в диапазоне от 1 до 255.

26 Type mismatch (Несоответствие типов).

Это сообщение может быть вызвано следующими причинами:

  • несовместимые типы переменной и выражения в операторе присваивания;
  • несовместимые типы фактического и формального параметров в обращении к процедуре или функции;
  • тип выражения не совместим с типом индекса при индексировании массива;
  • несовместимые типы операндов в выражении.

27 Invalid subrange base type(Неправильный базовый тип для типа-диапазона).

Допустимыми базовыми типами являются все порядковые типы.

28 Lower bound greater than upper bound (Нижняя граница больше верхней).

Описание типа-диапазона содержит неправильные границы.

29 Ordinal type expected (Нужен порядковый тип) .

Вещественные, строковые, структурные, процедурные типы и указатели в данном месте программы не допускаются.

30 Integer constant expected (Нужна целая константа).

31 Constant expected (Нужна константа).

32 Integer or real constant expected (Нужна целая или вещественная константа) .

33 Tуре identifier expected (Нужен идентификатор типа)

34 Invalid function result type (Неправильный тип результата функции)

Правильными типами результата функции являются все простые типы, строковые типы и указатели.

35 Label identifier expected (Нужен идентификатор метки).

Метка не обозначена с помощью идентификатора, как это требуется из контекста программы.

36 BEGIN expected (Нужен BEGIN).

37 END expected (Нужен END).

38 Integer expression expected (Нужно выражение типа INTEGER).

39 Ordinal expression expected (Нужно выражение перечисляемого типа).

40 Boolean expression expected (Нужно выражение типа BOOLEAN).

41 Operand types do not match operator (Типы операндов не соответствуют операции).

Данная операция не может быть применена к указанным операндам, например, ‘ А’ div ‘ 2 ‘ .

42 Error in expression (Ошибка в выражении).

Данный символ не может участвовать в выражении указанным образом. Возможно, Вы забыли указать операцию между двумя операндами.

43 Illegal assignment (Неверное присваивание).

Файлам и нетипизированным переменным нельзя присваивать значения. Идентификатору функции можно присвоить значение только внутри раздела операторов данной функции.

44 Field identifier expected (Нужен идентификатор поля).

Попытка использовать запись целиком в том месте, где требуется ссылка на какое-либо поле записи.

45 Object file too large (Объектный файл слишком большой).

Турбо Паскаль не может компоновать файлы .OBJ больше 64 Кбайт.

46 Undefined external (Неопределенная внешняя процедура).

Внешняя процедура или функция не имеет соответствующего определения PUBLIC в объектном файле. Убедитесь, что Вы указали все объектные файлы в директивах <$L >и проверьте написание идентификаторов процедуры или функции в файле . ASM.

47 Invalid object file record (Неправильная запись объектного файла).

Файл .OBJ содержит неверную объектную запись. Убедитесь, что данный файл является действительно файлом .OBJ.

48 Code segment too large (Сегмент кода слишком большой).

Максимальный размер кода программы или программного модуля равняется 65520 байтам. Разбейте Вашу программу или модуль на два или более модулей.

49 Data segment too large (Сегмент данных слишком велик).

Максимальный размер сегмента данных программы равен 65520 байтам, включая данные, используемые программными модулями. Если Вам нужно большее количество глобальных данных, опишите большие структуры с помощью указателей и выделяйте для них память динамически с помощью процедуры NEW.

50 DO expected (Нужен оператор DO).

51 Invalid PUBLIC definition (Неверное PUBLIC-определение).

Возможные причины сообщения:

  • данный идентификатор получил тип PUBLIC с помощью соответствующей директивы языка ассемблера, но не соответствует описанию EXTERNAL в программе или программном модуле Паскаля;
  • две или более директивы PUBLIC языка ассемблера определяют один и тот же идентификатор;
  • файлы .OBJ определяют символы PUBLIC, не находящиеся в сегменте CODE.

52 Invalid EXTRN definition (Неправильное EXTRN-определение).

Возможные причины сообщения:

  • программа на ассемблере ссылается с помощью директивы EXTRN на идентификатор, который не описан в программе на Паскале и не был описан в интерфейсных секциях используемых программных модулей;
  • ассемблерная программа ссылается на идентификатор, обозначающий абсолютную переменную (т.е. определенную словом ABSOLUTE);
  • ассемблерная программа ссылается на идентификатор процедуры или функции типа INLINE.

53 Too many EXTRN definition (Слишком много EXTRN-определений).

Турбо Паскаль не может обрабатывать файлы .OBJпри более чем 256 определениях EXTRN.

54 OF expected (Требуется OF).

55 INTERFACE expected (Требуется интерфейсная секция).

56 Invalid relocatable reference (Неправильная перемещаемая ссылка).

Возможные причины сообщения:

  • файл .OBJ содержит данные и перемещаемые ссылки в сегментах, отличных от CODE. Например, Вы пытаетесь описать инициализированные переменные в сегменте DATA;
  • файл .OBJ содержит ссылки с размерами в байтах на перемещаемые символы. Такая ошибка происходит в случае, если Вы используете операторы HIGH и LOW с перемещаемыми символами или если Вы ссылаетесь в директивах DB на перемещаемые символы;
  • операнд ссылается на перемещаемый символ, который не был определен в сегменте CODE или в сегменте DATA;
  • операнд ссылается на процедуру EXTRN или функцию EXTRN со сдвигом, например, CALL SortProc+8.

57 THEN expected (Требуется THEN).

58 TO or DOWNTO expected (Требуется ТО или DOWNTO).

59 Undefined forward (Неопределенное опережающее описание).

Возможные причины сообщения:

  • была рписана процедура или функция в интерфейсной секции программного модуля, но ее определение отсутствует в секции реализации;
  • процедуры или функции были описаны с помощью опережающего описания, но их определение не найдено.

60 Too many procedures (Слишком иного процедур).

Турбо Паскаль допускает не более 512 процедур или функций в одном модуле. Если Вы компилируете программу, то поместите некоторые процедуры или функции в модули. Если Вы компилируете модуль, то разбейте его на два или несколько модулей.

61 Invalid typecast (Неверное преобразование типа).

Возможные причины сообщения:

  • Вы пытаетесь разместить в памяти, занимаемой некоторой переменной, значение выражения другого типа э случае, когда размер размещаемого значения не равен размеру переменной;
  • Вы пытаетесь осуществить преобразование типа выражения, когда разрешается только ссылка на переменную, процедуру или функцию.

62 Division by zero (Деление на ноль).

Предшествующая операция пытается выполнить деление на ноль.

63 Invalid file type (Неверный файловый тип).

Данный файловый тип не обслуживается процедурой обработки файлов. Например, процедура READLN используется для типизированного файла или процедура SEEK — для текстового файла.

64 Cannot Read or Write variables of this type (Нет возможности считать или записать переменные данного типа).

Нарушены следующие ограничения:

  • процедуры READ и READLN могут считывать переменные символьного, целого, действительного и строкового типов;
  • процедуры WRITE и WRITELN могут выводить переменные символьного, целого, действительного, булевского и строкового типов.

65 Pointer variable expected (Нужно использовать переменную-указатель).

Предыдущая переменная должна быть указателем.

66 String variable expected (‘Нужна строковая переменная) .

Предшествующая переменная должна иметь строковый тип.

67 String expression expected (Нужно выражение строкового типа).

Предшествущее выражение должно иметь строковый тип.

68 Circular unit reference (Перекрестная ссылка модулей).

Два модуля ссылаются друг на друга:

69 Unit name mismatch (Несоответствие имен программных модулей).

Имя программного модуля, найденное в файле .TPU, не соответствует имени, указанному в предложении USES.

70 Unit version mismatch (Несоответствие версий модулей).

Один или несколько программных модулей, используемых данной программой, были изменены после их компиляции. Воспользуйтесь опцией COMPILE/MAKE или COMPILE/BUILD в интегрированной среде или опциями /М или /В в компиляторе ТРС, что позволит автоматически скомпилировать программные модули, нуждающиеся в перекомпиляции.

71 Duplicate unit name (Повторное имя программного модуля).

Вы уже указали этот программный модуль в операторе USES.

72 Unit file format error (Ошибка формата файла модуля).

Файл .TPU не соответствует стандарту Турбо Паскаля.

73 IMPLEMENTATION expected (Отсутствует исполняемая часть модуля).

74 Constant and case types do not match (Типы констант и тип выражения оператора CASE не соответствуют друг другу).

Тип константы оператора CASE не совместим с выражением в операторе варианта.

75 Record variable expected (Нужна переменная типа запись) .

Предшествующая переменная должна иметь тип запись.

76 Constant out of range (Константа нарушает границы).

Возможные причины сообщения:

  • Вы пытаетесь указать индекс массива, выходящий за его границы;
  • Вы пытаетесь присвоить переменной значение, выходящее за границы, допустимые для типа этой переменной;
  • Вы пытаетесь передать в качестве фактического параметра процедуре или функции константу, выходящую за границы, допустимые для типа соответствующего формального параметра.

77 File variable expected (Нужна файловая переменная).

Предшествующая переменная должна иметь файловый тип.

78 Pointer expression expected (Нужно выражение типа указатель).

Предшествующее выражение должно иметь тип указателя.

79 Integer or real expression expected (Нужно выражение вещественного или целого типа).

Предшествующее выражение должно иметь тип REAL или INTEGER.

80 Label not within current block (Метка не находится внутри текущего блока) .

Оператор GOTO не может ссылаться на метку, находящуюся вне текущего блока.

81 Label already defined (Метка уже определена).

Данная метка уже помечает оператор.

82 Undefined label in processing statement part (Неопределенная метка в предшествующем разделе операторов).

Данная метка была описана, и на нее осуществлялась ссылка в предшествующем разделе операторов, но она не указана в тексте программы.

83 Invalid @ argument (Неправильный аргумент операции @).

Правильными аргументами являются идентификаторы переменных, процедур и функций.

84 Unit expected (Нужно кодовое слово UNIT).

85«;» expected (Нужно указать»;») .

86«:» expected (Нужно указать*:») .

87«,» expected (Нужно указать»,») .

88 «(» expected (Нужно указать «(»).

89«)» expected (Нужно указать»)»).

90 «=» expected (Нужно указать «=») .

91«:=» expected (Нужно указать»:=»).

92 «[» or «(.» expected (Нужно указать «[» или «(.»).

93«]» or «.)» expected (Нужно указать»]» или».)»).

94».» expected (Нужно указать».») ,

95«..» expected (Нужно указать»..») .

96 Too many variables (Слишком много переменных).

Нарушены следующие ограничения:

  • общий размер глобальных переменных, описанных в программе или программном модуле, не может превышать 64 Кбайт;
  • размер локальных переменных, описанных в процедуре или функции, не может превышать 64 Кбайт. .

97 Invalid FOR control variable(Неправильный параметр цикла оператора FOR).

Параметр цикла оператора FOR должен быть переменной порядкового типа, определенной в разделе описаний текущей подпрограммы.

98 Integer variable expected (Нужна переменная целого типа).

Предшествующая переменная должна иметь целый тип.

99 File and procedure types are not allowed here (Здесь не могут использоваться файлы или процедурные типы).

Типизированная константа не может иметь файловый или процедурный тип.

100 String length mismatch (Несоответствие длины строки).

Длина строковой константы не соответствует количеству элементов символьного массива.

101 Invalid ordering of fields (Неверный порядок полей).

Поля в константе типа запись должны записываться в порядке их описания.

102 String constant expected (Нужна константа строкового типа).

103 Integer or real variable expected (Нужна переменная типа INTEGER или REAL).

Предшествующая переменная должна иметь целый или вещественный тип.

104 Ordinal variable expected (Нужна переменная порядкового типа).

Предшествующая переменная должна иметь порядковый тип.

105 INLINE error (Ошибка в операторе INLINE).

Оператор « Благодарим КУБИТ :: Комплексные IT-решения за представление площадки для размещения
©2010

Источник

С этого символа не может начинаться
оператор.

116. Must
be
in
8087
mode
to
compile
this
(
для
компиляции этой конструкции должен
быть режим 8087)

Эта конструкция может компилироваться
только в состоянии {$N+}.
Операция над 8087 типами Single,
Double,
Extended
и Comp
недопустимы в состоянии {$N-}.

121. Invalid
Qualifier

(
неправильный
квалификатор)

  • Попытка индексировать переменную,
    которая отсутствует в массиве.

  • Попытка задать поля в переменной,
    которая не является записью.

  • Попытка получить значение, на которое
    указывает переменная, не являющаяся
    указателем.

122. Invalid
variable
reference
(
неправильная
ссылка на переменную)

Предыдущая конструкция следует синтаксису
ссылки на переменную, но не обозначает
размещение памяти. Наиболее вероятно,
Вы вызвали функцию указателя, но забыли
получить значение, на которое указывает
результат.

123. Too
many
symbols
(
слишком
много символов)

Программа или модуль объявляет более
64К символов. Если программа или модуль
компилируется с опцией {$D+}, то попробуйте
ее выключить — заметим, однако, что это
будет препятствовать нахождению ошибок
выполнения в этом модуле. В противном
случае, можно попробовать переместить
несколько объявлений в отдельный модуль.

129.
ENDIF directive missing (
отсутствует
директива
EndIf)

Исходный файл заканчивается внутри
конструкции условной компиляции. В
исходном файле должно быть одинаковое
количество директив {$IFxxx}
и {$ENDIF}.

133.
Cannot evaluate this expression (
нельзя
вычислить
это
выражение)

Попытка использовать неподдерживаемое
Turbo Pascal
свойство в константном выражении или
в отладочном выражении. Например, Вы
пытаетесь использовать функцию Sin
в объявлении константы, или Вы пытаетесь
вызвать функцию, определенную
пользователем, в отладочном выражении.

134.
Expression
incorrectly
terminated
(
выражение
завершается неправильно)

Turbo Pascal
ожидает или оператор, или конец выражения
в этой точке, но ничего не находит.

135. Invalid
format
specifier
(
неправильный
спецификатор формата
)

Используется неправильный спецификатор
формата или числовой аргумент спецификатора
формата выходит за допустимый диапазон.

140.Invalid
floatingpoint
operation
(
Неправильная
операция с плавающей точкой)

Операция над двумя значениями вещественного
типа привела к переполнению или является
делением на ноль.

147 Object
type
expected
(
Ожидается
объектный тип.)

Идентификатор не является объектным
типом.

150 Method
identifier
expected.
(
Идентификатор
метода ожидается.)

Идентификатор не является методом.

Некоторые ошибки во время выполнения
программы приводят к тому, что программа
выводит на дисплей сообщение об ошибке
и завершается:

Run-time error nnn at xxxх:yyyy

(ошибка выполнения nnn по адресу
xxxх:yyyy, где nnn-номер ошибки
выполнения, а xxxx:yyyy — адрес ошибки
выполнения (сегмент и смещение))

Ошибки выполнения разделены на четыре
категории:

  • ошибки операционной системы DOS:1-99

  • ошибки ввода/вывода:100-149

  • критические ошибки :150-199

  • фатальные ошибки:200-255.

106. Invalid
numeric
format
(
неправильный
числовой формат)

Сообщается процедурами Read
и ReadLn,
если числовое значение, прочитанное из
текстового файла не соответствует
правильному числовому формату.

200.
Division
by
zero
(
деление
на ноль)

201. Ошибка
выхода за допустимый диапазон. Эта
ошибка сообщается операторами,
откомпилированными в состоянии {$R+},
когда возникает одна из следующих
ситуаций:

  • Индексное выражение квалификатора
    массива выходит за допустимый диапазон.

  • Была сделана попытка присвоить переменной
    значение, выходящее за допустимый
    диапазон.

  • Была сделана попытка передать процедуре
    или функции в качестве параметра
    значение, выходящее за допустимый
    диапазон.

202. Stack
overflow
error
(
ошибка
переполнения стека)

Эта ошибка сообщается при входе в
процедуру или функцию, откомпилированную
в состоянии {$S+}, когда в стеке нет
достаточно места для размещения локальных
переменных подпрограмм. Увеличьте
размер стека с помощью директивы
компилятора $M. Эта ошибка может возникать
так же из-за бесконечной рекурсии.

205.
Floating
point
overflow
(
переполнение
с плавающей точкой)

Операция с плавающей точкой обрабатывает
слишком большое для Turbo
Pascal или сопроцессора
число.

206.
Floating
point
underflow
(
потеря
значности при операции с плавающей
точкой)

Операция с плавающей точкой приводит
к потере значности. Эта ошибка сообщается,
если только используется числовой
сопроцессор 8087 с контрольным словом,
которое не маскирует потерю значности.
По умолчанию, потеря значности вызывает
возвращение нулевого результата.

207. Invalid
floating
point
operation
(
неправильная
операция с плавающей точкой)

  • Вещественное значение, передаваемое
    Trunc
    или Round,
    не может быть преобразовано в целое
    внутри диапазона для типа LongInt
    (-2147483648 до 214783647)

  • Аргумент, передаваемый функции Sqrt,
    является отрицательным числом.

  • Аргумент, передаваемый функции Ln,
    равен нулю или отрицательный.

  • Произошло переполнение стека сопроцессора
    8087.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Michael Faradey

0 / 0 / 0

Регистрация: 23.08.2015

Сообщений: 2

1

13.09.2015, 19:15. Показов 2013. Ответов 3

Метки нет (Все метки)


Здравствуйте, встретил старый студенческий листинг реализации задачи:
«Отрезок, поворачивающийся на 15° при нажатии клавиши «пробел» и квадрат (перемещение по вертикали и горизонтали клавишами со стрелками).»

При запуске на Windows 7 выдает ошибку «Error 113. Error in statement». Так как опыта программирования на Turbo Pascal немного больше всего приходилось программировать на Pascal Abc.Net не поможете довести программу до работающего состояния.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses crt,graph;
var k:char;
    p,b:integer;
type Tosnova=object
       x:integer;
       a:real;
       procedure knopki;
       procedure vivod;
     end;
     Totr=object(Tosnova)
       procedure vivod;
     end;
     Tkvadr=object(Tosnova)
       procedure vivod;
     end;
procedure Tosnova.vivod;
  begin
    writeln('oblom');
  end;
procedure Tosnova.knopki;
  begin
    k:=readkey;
    case k of
    ' ':a:=a+pi/12;
    #72:x:=x-4;
    #80:x:=x+4;
    #27:exit;
  end;
procedure Totr.vivod;
  begin
    setcolor(0);
    line(round(100-cos(a)),round(100+sin(a)),round(150+cos(a)),round(100+sin(a)));
    knopki;
    setcolor(15);
    line(round(100-cos(a)),round(100+sin(a)),round(150+cos(a)),round(100+sin(a)));
  end;
procedure Tkvadr.vivod;
  begin
    knopki;
    setfillstyle(1,0);
    floodfill(201,x+25,0);
    setcolor(2);
    rectangle(200,x,250,x+50);
    setfillstyle(1,2);
    floodfill(201,x+25,2)
  end;
var otr:Totr;
    kvadr:Tkvadr;
begin
clrscr; p:=detect;
initgraph(p,d,' ');
a:=-pi/12;
x:=200;
repeat
  otr.vivod;
  kvadr.vivod;
until k:=#27;
closegraph; readkey;
end;

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



ФедосеевПавел

Модератор

Эксперт по электронике

8278 / 4182 / 1595

Регистрация: 01.02.2015

Сообщений: 13,004

Записей в блоге: 3

13.09.2015, 21:04

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Здесь очень много синтаксических ошибок — пропущено несколько end и не описаны переменные.
Попробуй самостоятельно исправить.
Исправляй следующим образом.
Набери только основную программу без объектов, добейся компиляции. Дальше — добавь описание объектов, но с пустыми процедурами. Добейся компиляции. Дальше — заполняй процедуры объектов.

Добавлено через 4 минуты
Дальше — в основном цикле — должен быть опрос кнопок, а потом при необходимости перерисовка объектов.

Добавлено через 1 час 27 минут
Смотрите. Это далеко от нужного.
1. Нет реализации «квадрата».
2. Инициализацию нужно реализовывать для как для отрезка, так и для квадрата. При инициализации отрезка задаются координаты центра, длина отрезка, цвет, для квадрата — что-то своё. Т.е. нужна реализация конструкторов Init для каждого типа, производного от Tosnova. Это приведёт к изменению методов Draw — исчезнут магические константы.
3. Это я реализовывал во FreePascal (ну нет у меня Turbo), но должно работать и в Turbo, только замените в заголовке WinCrt на Crt.

В общем, это подобие образца.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
program g;
 
uses
  WinCrt,
  Graph;
 
const
  {Номера команд}
  cmdNothing = 0;
  cmdExit = 1;
  cmdRotate = 100;
  cmdLeft = 101;
  cmdRight = 102;
  cmdUp = 103;
  cmdDown = 104;
type
  Tosnova = object
    x: integer;
    a: real;
    Color: integer;
    constructor Init(aA: real; aX: integer; aColor: integer);
    procedure SendCmd(var Cmd: integer); virtual; abstract;
    procedure Clear; virtual;
    procedure Draw; virtual; abstract;
  end;
 
  Totr = object(Tosnova)
    procedure SendCmd(var Cmd: integer); virtual;
    procedure Draw; virtual;
  end;
 
  Tkvadr = object(Tosnova)
    procedure SendCmd(var Cmd: integer); virtual;
    procedure Draw; virtual;
  end;
 
  {Tosnova}
  constructor Tosnova.Init(aA: real; aX: integer; aColor: integer);
  begin
    a := aA;
    x := aX;
    Color := aColor;
    Draw;
  end;
 
  procedure Tosnova.Clear;
  var
    TempColor: integer;
  begin
    TempColor := Color;
    Color := 0;
    Draw;
    Color := TempColor;
  end;
 
  {Totr}
  procedure Totr.Draw;
  var
    dX, dY: integer;
    Xc, Yc: integer;
  begin
    Xc := 100;
    Yc := 100;
    dX := round(x * cos(a));
    dY := round(x * sin(a));
    SetColor(Color);
    line(Xc - dX, Yc + dY, Xc + dX, Yc - dY);
  end;
 
  procedure Totr.SendCmd(var Cmd: integer);
  begin
    if Cmd = cmdRotate then
    begin
      Clear;
      a := a + Pi / 12;
      while a > 2 * Pi do
        a := a - 2 * Pi;
      Draw;
      Cmd := cmdNothing;
    end;
  end;
 
  {Tkvadr}
  procedure Tkvadr.Draw;
  begin
  end;
 
  procedure Tkvadr.SendCmd(var Cmd: integer);
  begin
  end;
 
  procedure GetCmd(var Cmd: integer);
  var
    k: char;
  begin
    Cmd := cmdNothing;
    if KeyPressed then
    begin
      k := ReadKey;
      case k of
        #27: Cmd := cmdExit;
        ' ': Cmd := cmdRotate;
        #0:
        begin
          k := ReadKey;
          case k of
            #75: Cmd := cmdLeft;
            #77: Cmd := cmdRight;
            #72: Cmd := cmdUp;
            #80: Cmd := cmdDown;
          end;
        end;
      end;
    end;
  end;
 
var
  p, d: integer;
  otr:  Totr;
  kvadr: Tkvadr;
  Cmd:  integer;
begin
  p := detect;
  initgraph(p, d, ' ');
  otr.Init(0, 50, 4);
  kvadr.Init(0, 200, 2);
  repeat
    GetCmd(Cmd);
    otr.SendCmd(Cmd);
    kvadr.SendCmd(Cmd);
  until Cmd = cmdExit;
  closegraph;
end.



1



Michael Faradey

0 / 0 / 0

Регистрация: 23.08.2015

Сообщений: 2

16.09.2015, 18:37

 [ТС]

3

Спасибо.Вот решение хорошее, работает. В полной мере реализует задачу: «Отрезок, поворачивающийся на 15° при нажатии клавиши «пробел» и квадрат (перемещение по вертикали и горизонтали клавишами со стрелками).» P.S запускать лучше на TP и его аналогах

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
uses crt, graph;
var k: char;
    p,b, c, x:integer;
    a: real;
type Tosnova=object
       x:integer;
       a:real;
       procedure knopki;
       procedure vivod;
     end;
     Totr=object(Tosnova)
       procedure vivod;
     end;
     Tkvadr=object(Tosnova)
       procedure vivod;
     end;
procedure Tosnova.vivod;
  begin
    writeln('No no no no NOOOO');
  end;
procedure Tosnova.knopki;
  begin
    case k of
    ' ':a:=a+pi/12;
    #72:x:=x-4;
    #80:x:=x+4;
    #75:c:=c-4;
    #77:c:=c+4;
  end;
  end;
procedure Totr.vivod;
  begin
    setcolor(0);
    line(100,100,round(100+100*cos(a)),round(100-100*sin(a)));
    knopki;
    setcolor(15);
    line(100,100,round(100+100*cos(a)),round(100-100*sin(a)));
  end;
procedure Tkvadr.vivod;
  begin
    knopki;
    setfillstyle(1,0);
    floodfill(c+25,x+25,0);
    setcolor(2);
    rectangle(c,x,c+50,x+50);
    setfillstyle(1,2);
    floodfill(c+25,x+25,2)
  end;
var otr:Totr;
    kvadr:Tkvadr;
    d:integer;
begin
p:=detect;
initgraph(p,d,' ');
a:=-pi/12;
x:=200;
c:=200;
repeat
  k := readkey;
  kvadr.vivod;
  otr.vivod;
until k=#27;
closegraph
end.



0



ФедосеевПавел

Модератор

Эксперт по электронике

8278 / 4182 / 1595

Регистрация: 01.02.2015

Сообщений: 13,004

Записей в блоге: 3

16.09.2015, 22:20

4

Хорошо, что вы самостоятельно разобрались. Но плохо, что разобрались не до конца.
1. Если метод в базовом типе — только заглушка, а реализация предполагается в наследниках, то метод объявляется абстрактным

Pascal
1
    procedure SendCmd(var Cmd: integer); virtual; abstract;

вместо

Pascal
1
2
3
4
procedure Tosnova.vivod;
  begin
    writeln('No no no no NOOOO');
  end;

2. Объекты в приложении лишь получают сообщения (команды) от самого вышестоящего объекта — приложения, а не опрашивают самостоятельно клавиатуру или мышь, лишая возможности другие объекты, наследники другого базового типа, получать команды от клавиатуры. Именно эта ошибка приводит к следующей — оба совершенно разных типа имеют один набор свойств, отсутствию инициализации, и работой с глобальными переменными. Что в целом выхолащивает средства ООП в данной программе — вы не сможете реализовать два разных экземпляра типа «отрезок».

Добавлено через 1 час 23 минуты
Очередной пример ООП. Здесь три экземпляра одного типа Totr (я не стал «раздувать» код другим типом). Вращается только «активный». Переход к следующему — табуляция. Обратите внимание, что сами объекты ничего не опрашивают, а только ждут команды от вышестоящего. Вышестоящий, в данном случае — приложение, оно обрабатывает список объектов (активность и передача команд), обрабатывает клавиатуру для получения команд. Это тоже не идеал, но ближе к ООП.

Кликните здесь для просмотра всего текста

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
program g;
 
uses
  WinCrt,
  Graph;
 
const
  {Номера команд}
  cmdNothing = 0;
  cmdExit = 1;
  cmdNextObj = 2;
  cmdRotate = 100;
  cmdLeft = 101;
  cmdRight = 102;
  cmdUp = 103;
  cmdDown = 104;
type
  Tosnova = object
    Active: boolean;
    Color:  integer;
    constructor Init(aColor: integer);
    procedure GetCmd(var Cmd: integer); virtual; abstract;
    procedure Clear; virtual;
    procedure Draw; virtual; abstract;
    function GetActive: boolean;
    procedure PutActive(aActive: boolean);
  end;
 
  Totr = object(Tosnova)
    L: integer;          {длина}
    Xc, Yc: integer;     {центр}
    A: real;             {угол}
    constructor Init(aA: real; aL, aXc, aYc: integer; aColor: integer);
    procedure GetCmd(var Cmd: integer); virtual;
    procedure Draw; virtual;
  end;
 
  {Tosnova}
  constructor Tosnova.Init(aColor: integer);
  begin
    Color  := aColor;
    Active := False;
    Draw;
  end;
 
  procedure Tosnova.Clear;
  var
    TempColor: integer;
  begin
    TempColor := Color;
    Color := 0;
    Draw;
    Color := TempColor;
  end;
 
  function Tosnova.GetActive: boolean;
  begin
    GetActive := Active;
  end;
 
  procedure Tosnova.PutActive(aActive: boolean);
  begin
    Active := aActive;
  end;
 
  {Totr}
  constructor Totr.Init(aA: real; aL, aXc, aYc: integer; aColor: integer);
  begin
    A  := aA;
    L  := aL;
    Xc := aXc;
    Yc := aYc;
    inherited Init(aColor);
  end;
 
  procedure Totr.Draw;
  var
    dX, dY: integer;
  begin
    dX := round(L * cos(a) / 2);
    dY := round(L * sin(a) / 2);
    SetColor(Color);
    line(Xc - dX, Yc + dY, Xc + dX, Yc - dY);
  end;
 
  procedure Totr.GetCmd(var Cmd: integer);
  begin
    if not Active then
      exit;
    if Cmd = cmdRotate then
    begin
      Clear;
      a := a + Pi / 12;
      while a > 2 * Pi do
        a := a - 2 * Pi;
      Draw;
      Cmd := cmdNothing;
    end;
  end;
 
  procedure GetCmd(var Cmd: integer);
  var
    k: char;
  begin
    Cmd := cmdNothing;
    if KeyPressed then
    begin
      k := ReadKey;
      case k of
        #27: Cmd := cmdExit;
        ' ': Cmd := cmdRotate;
        #9: Cmd  := cmdNextObj;
        #0:
        begin
          k := ReadKey;
          case k of
            #75: Cmd := cmdLeft;
            #77: Cmd := cmdRight;
            #72: Cmd := cmdUp;
            #80: Cmd := cmdDown;
          end;
        end;
      end;
    end;
  end;
 
var
  p, d: integer;
  i: integer;
  otr: array[0..2] of Totr;
  Cmd: integer;
begin
  p := detect;
  initgraph(p, d, ' ');
  otr[0].Init(0, 50, 100, 100, 4);
  otr[1].Init(0, 50, 200, 200, 5);
  otr[2].Init(0, 50, 150, 150, 6);
  otr[0].PutActive(True);
  repeat
    GetCmd(Cmd);
    if Cmd = cmdNextObj then
    begin
      for i := 0 to 2 do
        if otr[i].GetActive then
        begin
          otr[i].PutActive(False);
          otr[(i + 1) mod 3].PutActive(True);
          break;
        end;
    end;
    for i := 0 to 2 do
      otr[i].GetCmd(Cmd);
  until Cmd = cmdExit;
  closegraph;
end.



0



Номер ошибки Текст ошибки Текст ошибки на русском
83 @ argument Недопустимый @ параметр
87 &quot;,&quot; expected Пропущен «,»
85 &quot;;&quot; expected Пропущен «;»
86 &quot;:&quot; expected Пропущен «:»
91 &quot;:=&quot; expected Пропущен «:=»
95 &quot;..&quot; expected Пропущен «..»
94 &quot;.&quot; expected Пропущен «.»
88 &quot;(&quot; expected Пропущен «(«
89 &quot;)&quot; expected Пропущен «)»
92 &quot;[&quot; or &quot;(.&quot; expected Пропущен «[» или «(.»
93 &quot;]&quot; or &quot;.)&quot; expected Пропущен «]» или «.)»
90 &quot;=&quot; expected Пропущен «=»
159 286/287 instructions are not enabled Команды 286/287 не допускаются
162 ASM expected Ожидается ASM
36 BEGIN expected Ожидается BEGIN
40 Boolean expression expected Ожидается выражение Boolean
139 Cannot access this symbol Не могу обращаться к этому символу
157 Cannot add or subtract relocatable symbols Не могу складывать или вычитать перещаемые символы
114 Cannot call an interrupt procedure Не могу вызвать процедуру прерывания
141 Cannot compile overlays to memory Не могу компилировать оверлеи в память
133 Cannot evaluate this expression Не могу оценить это выражение
138 Cannot evaluate without System unit Не могу оценивать без System-модуля
167 Cannot export this symbol Нельзя экспортировать этот символ
144 Cannot overlay this unit Этот модуль не может быть оверлеем
64 Cannot read or write variables of this type Не могу Считывать или Записывать переменные этого типа
112 CASE constant out of range Константа варианта вне диапазона
106 Character expression expected Ожидается символьное выражение
68 Circular unit reference Круговые ссылки в модулях
161 Code generation error Ошибка генерации кода
48 Code segment too large Сегмент кода слишком большой
74 Constant and case types don’t match Тип константы и тип варианта не совпадают
31 Constant expected Ожидается константа
76 Constant out of range Константа вне диапазона
152 Constructor identifier expected Ожидается идентификатор конструктора
49 Data segment too large Сегмент данных слишком большой
153 Destructor identifier expected Ожидается идентификатор деструктора
16 Disk full Диск заполнен
62 Division by zero Деление на нуль
50 DO expected Пропущен DO
163 Duplicate dynamic method index Двойной индекс динамического метода
168 Duplicate export name Двойное экспортируемое имя
4 Duplicate identifier Двойной идентификатор
165 Duplicate or invalid export clause Двойной или недопустимый экспортный индекс
164 Duplicate resource identifier Двойной идентификатор ресурса
37 END expected Ожидается END
129 ENDIF directive missing Пропущена ENDIF директива
42 Error in expression Ошибка в выражении
130 Error in initial conditional defines Ошибка в начальных условных определениях
7 Error in integer constant Ошибка в целочисленной константе
6 Error in real constant Ошибка в вещественной константе
113 Error in statement Ошибка в операторе
21 Error in type Ошибка в типе
169 Executable file header too large Заголовок исполняемого файла слишком большой
134 Expression incorrectly terminated Выражение некорректно завершено
154 Fail only allowed within constructors Fail позволен только внутри конструкторов
44 Field identifier expected Пропущен идентификатор поля
146 File access denied Доступ к файлу закрыт
24 File components may not be files or objects Компоненты файла не могут быть файлами или объектами
15 File not found Файл не найден
77 File variable expected Ожидается файловая переменная
126 Files must be var parameters Файлы должны быть var-параметрами
99 Files types are not allowed here Здесь недопустим файловый тип
131 Header does not match previous definition Заголовок не соответствует предыдущему определению
2 Identifier expected Идентификатор пропущен
43 Illegal assignment Запрещенное присваивание
73 Implementation expected Ожидается IMPLEMENTATION
118 Include files are not allowed here Файлы для включения здесь не позволяются
105 INLINE error Ошибка INLINE
30 Integer constant expected Ожидается целочисленная константа
38 Integer expression expected Ожидается выражение Integer
32 Integer or real constant expected Ожидается целочисленная или вещественная константа
79 Integer or real expression expected Ожидается целочисленное или вещественное выражение
103 Integer or real variable expected Ожидается целочисленная или вещественная переменная
98 Integer variable expected Ожидается целочисленная переменная
55 INTERFACE expected Пропущено INTERFACE
71 Internal stack overflow Переполнение внутреннего стека
155 Invalid combination of opcode and operands Недопустимая комбинация кода операции и операндов
17 Invalid compiler directive Недопустимая директива компилятора
52 Invalid EXTRN definition Недопустимое EXTRN определение
14 Invalid file name Недопустимое имя файла
63 Invalid file type Недопустимый тип файла
140 Invalid floating-point operation Недопустимая операция с плавающей точкой
97 Invalid FOR control variable Недопустимая переменная для FOR
135 Invalid format specifier Некорректный спецификатор формата
34 Invalid function result type Неверный тип результата функции
136 Invalid indirect reference Недопустимая косвенная ссылка
47 Invalid object file record Недопустимая запись объектного файла
101 Invalid ordering of fields Недопустимый порядок полей
143 Invalid procedure or function reference Неверная ссылка на процедуру или функцию
51 Invalid PUBLIC definition Недопустимое PUBLIC определение
121 Invalid qualifier Недопустимый спецификатор
158 Invalid register combination Недопустимая комбинация регистров
56 Invalid relocatable reference Недопустимая перемещаемая ссылка
25 Invalid string length Недопустимая длина строки
27 Invalid subrange base type Недопустимый исходный тип поддиапазона
160 Invalid symbol reference Неверная ссылка на символ
61 Invalid typecast Недопустимое приведение типа
122 Invalid variable reference Недопустимая ссылка на переменную
81 Label already defined Метка уже определена
35 Label identifier expected Ожидается идентификатор метки
80 Label not within current block Метка не внутри текущего блока
11 Line too long Строка слишком длинная
148 Local object types are not allowed Локальные объектные типы не позволены
28 Lower bound &gt; than upper bound Нижняя граница > чем верхняя
156 Memory reference expected Ожидается ссылка на память
150 Method identifier expected Ожидается идентификатор метода
128 Misplaced conditional directive Неверно расположенная директива условного выражения
116 Must be in 8087 mode to compile Для компиляции нужно быть в режиме 8087
109 No enclosing For, While or Repeat statement Нет закрывающих FOR, WHILE или REPEAT операторов
119 No inherited methods are accessible here Здесь недоступны наследованные методы
45 Object file too large Объектный файл слишком велик
147 object type expected Ожидается объектный тип
54 OF expected Ожидается OF
41 Operand types do not match Тип операндов не соответствует оператору
39 Ordinal expression expected Ожидается выражение Ordinal
29 Ordinal type expected Ожидается перечислимый тип
104 Ordinal variable expected Ожидается порядковая переменная
1 Out of memory Нет памяти
108 Overflow in arithmetic operation Переполнение в арифметической операции
78 Pointer expression expected Ожидается выражение типа Pointer
142 Pointer or procedural variable expected Ожидается указатель или процедурная переменная
33 Pointer Type identifier expected Ожидается идентификатор указательного типа
65 Pointer variable expected Ожидается переменная указательного типа
166 Procedure or function identifier expected Ожидается идентификатор процедуры или функции
75 Record or object variable expected Ожидается запись или объектная переменная
23 Set base type out of range Исходный тип набора вне диапазона
124 Statement part too large Операторная часть слишком большая
8 String constant exceeds line Строковая константа превышает строку
102 String constant expected Ожидается строковая константа
67 String expression expected Ожидается строковое выражение
100 String length mismatch Несоответствие длин строк
66 String variable expected Ожидается строковая переменная
22 Structure too large Структура слишком большая
137 Structured variables are not allowed here Структурные переменные здесь не позволяются
5 Syntax error Синтаксическая ошибка
117 Target address not found Не найден адрес цели
57 THEN expected Ожидается THEN
58 TO or DOWNTO expected Пропущено TO или DOWNTO
127 Too many conditional symbols Слишком много условных символов
53 Too many EXTRN definitions Слишком много EXTRN определений
18 Too many files Слишком много файлов
145 Too many nested scopes Слишком много вложенных областей
13 Too many open files Слишком много открытых файлов
107 Too many relocation items Слишком много единиц настройки
123 Too many symbols Слишком много символов
96 Too many variables Слишком много переменных
12 Type identifier expected Ожидается идентификатор типа
26 Type mismatch Несоответствие типов
46 Undefined EXTERN Неопределенный EXTERN
59 Undefined forward Неопределенное forward
82 Undefined label in preceding stmt part Неопределенная метка в предшествующей операторной части
19 Undefined type in pointer def Неопределенный тип в описании указателя
10 Unexpected end of file Непредвиденный конец файла
72 Unit file format error Ошибка формата файла модуля
69 Unit name mismatch Несоответствие имени модуля
70 Unit version mismatch Несоответствие версии модуля
3 Unknown identifier Неизвестный идентификатор
20 Variable identifier expected Пропущен переменный идентификатор
151 Virtual constructors are not allowed Виртуальные конструкторы не позволяются
149 Virtual expected Ожидается Virtual
84 Пропущено зарезервированное слово UNIT. Ожидается UNIT

№ п/п Код и название ошибки Характеристика ошибки Пояснение

1

Error 1: Out of memory

Нехватка памяти

Это сообщение выводится, когда компилятору не хватает памяти

2

Error 2: Identifier expected

Ожидался идентификатор

Возможно, имя вашего идентификатора совпадает со служебным словом

3

Error 3: Unknown identifier

Неизвестный идентификатор

Этот идентификатор не был описан

4

Error 4: Duplicate identifier

Идентификатор продублирован

Этот идентификатор уже исполь-зовался в текущем блоке программы

5

Error 5: Syntax error

Синтаксическая ошибка

В тексте найден неправильный символ

6

Error 6: Error in real constant

Ошибка в константе действительного типа

Возможно, вы поставили десятичную запятую вместо десятичной точки

7

Error 7: Error in integer constant

Ошибка в константе целого типа

Константы, выходящие за пределы диапазона типа longint описы-ваются как действительные числа

8

Error 10: Unexpected end of file

Неожиданный конец файла

Количество операторов Begin и End не сбалансирована

9

Error 11: Line too long

Строка слишком длинная

Длина строки не должна превышать 127 символов

10

Error 12: Type identifier expected

Ожидается иденти-фикатор типа

Этот идентификатор не обозначает тип, как это должно быть

11

Error 15: File not found

Файл не найден

Файл не был найден ни в текущем каталоге, ни в других каталогах

12

Error 20: Variable identifier expected

Ожидается идентификатор переменной

Этот идентификатор не обозначает переменной, как должен был

13

Error 21: Error in type

Ошибка в типе

Этот символ не может начинать описание типа

№ п/п Код и название ошибки Характеристика ошибки Пояснение

14

Error 25: Invalid string length

Неправильная длина строки

Описанная максимальная длина строки должна быть в диапазоне 1…255

15

Error 26: Type mismatch

Несоответствие типов

Несовместимые типы переменной и выражения в операторе присваива-ния, несовместимые типы операн-дов в выражении, несовместимые типы формальных и фактических параметров в вызванной подпрограмме

16

Error 31: Constant expected

Ожидается константа

17

Error 32: Integer or real constant expected

Ожидается целая или действительная константа

18

Error 34: Invalid function result type

Неправильный тип результата функции

Правильными типами результата функции являются все простые типы

19

Error 36: BEGIN expected

Ожидается оператор Begin

20

Error 37: END expected

Ожидается оператор End

21

Error 38: Integer expression expected

Ожидается целое выражение

Предыдущее выражение должно быть целого типа

22

Error 41: Operand types do not match operator

Типы операндов не отвечают оператору

Оператор не может быть применён к операндам указанного типа

23

Error 42: Error in expression

Ошибка в выражении

Этот символ не может присутствовать в выражении

24

Error 50: DO expected

Ожидается служебное слово do

25

Error 54: Of expected

Ожидается служебное слово of

26

Error 57: THEN expected

Ожидается служеб-ное слово Then

№ п/п Код и название ошибки Характеристика ошибки Пояснение

27

Error 58: TO or DOWNTO expected

Ожидается служеб-ное слово to или downto

28

Error 62: Division by zero

Деление на нуль

Предыдущая операция пытается выполнить деление на нуль

29

Error 92: «[» or «(.» expected

Тут должна быть открывающая квадратная скобка

Вместо открывающей квадратной скобки можно использовать «(.»

30

Error 93: «]» or «).» expected

Квадратные скобки не закрыты

Вместо закрывающей квадратной скобки можно использовать «).»

31

Error 98: Integer variable expected

Ожидается переменная целого типа

32

Error 103: Integer or real variable expected

Ожидается пере-менная целого или вещественного типа

33

Error 108: Overflow in arithmetic operation

Переполнение в арифметической операции

Результат предыдущей операции выходит за пределы использованного типа данных.

34

Error 113: Error in statement

Ошибка в операторе

Оператор не может начинаться с этого символа

Понравилась статья? Поделить с друзьями:
  • Error 112 недостаточно места на диске
  • Error 1118 mysql
  • Error 1118 42000
  • Error 1114 дота 2
  • Error 1114 the table users is full