Dianork 1 / 0 / 0 Регистрация: 16.12.2010 Сообщений: 23 |
||||
1 |
||||
07.04.2011, 19:45. Показов 4820. Ответов 6 Метки нет (Все метки)
Помогите пожалуйста исправить ошибку, что бы я не делал и не читал на форуме — ничего не помогло, выдает постоянно 100-ю ошибку
0 |
1360 / 988 / 119 Регистрация: 30.07.2010 Сообщений: 5,297 |
|
07.04.2011, 19:48 |
2 |
Directories почистьте
0 |
Puporev Почетный модератор 64291 / 47589 / 32740 Регистрация: 18.05.2008 Сообщений: 115,181 |
||||
07.04.2011, 20:08 |
3 |
|||
100 Disk read error (Ошибка чтения с диска). Добавлено через 1 минуту
Если в файле нечетное число компонент, то последнее обращение read(r1,a2); уже за пределами файла
1 |
1 / 0 / 0 Регистрация: 16.12.2010 Сообщений: 23 |
|
07.04.2011, 20:34 [ТС] |
4 |
И как исправить что бы последнее read(…) было там где надо?
0 |
Почетный модератор 64291 / 47589 / 32740 Регистрация: 18.05.2008 Сообщений: 115,181 |
|
07.04.2011, 21:07 |
5 |
Нужно ввести в файл четное число компонент, раз уж парами читаете…
0 |
1 / 0 / 0 Регистрация: 16.12.2010 Сообщений: 23 |
|
07.04.2011, 21:30 [ТС] |
6 |
Та я пробовал так вводить, оно ток так работает, ну попробую обмануть препода, а то у меня в задании сказано, что пользователь сам вводит к-во компонент
0 |
Почетный модератор 64291 / 47589 / 32740 Регистрация: 18.05.2008 Сообщений: 115,181 |
|
08.04.2011, 06:58 |
7 |
что пользователь сам вводит к-во компонент Но с включенным мозгом. Если нужно выбирать числа из пар, то понятно что число компонент должно быть четным…
0 |
Приложения написанные на Free Pascal могут генерировать ошибку времени выполнения (Run Time Error) когда в программе обнаруживаются определённые аварийные состояния . Этот документ содержит список возможных ошибок и описание их возможных причин.
1 Invalid function number (Неправильный номер функции)
Была попытка неправильного вызова системной функции.
2 File not found (Файл не найден)
Генерируется при попытке перенаименования, стирания или открытия несуществующего файла.
3 Path not found (Путь(директория) не найден)
Генерируется файловой системой когда путь не существует или неправелен.
Также генерируется при попытке получить доступ к несуществующему файлу.
4 Too many open files (Слишком много файлов открыто)
Максимальное число открытых файлов для вашего процесса было превышено.
Большинство операционных систем ограничивают максимальное число открытых файлов,
и эта ошибка может возникнуть когда этот лимит превышен.
5 File access denied (В доступе к файлу — отказано)
Было запрешено получение доступа к файлу. Эта ошибка может произойти по нескольким причинам:
-
При попытке открыть файл, предназначенный только для чтения или в деиствительности являющиёся директорией, для записи.
-
В данный момент занят или заблокирован другим процессом.
-
При попытке создания файла или директории с именем, которое совпадает с именем уже созданного файла или директории.
-
При попытке чтения из файла, открытого только для записи.
-
При попытке записи в файл, открытый только для чтения.
-
При попытке удалить директорию или файл, когда это не возможно.
-
При неимении прав на доступ к данному файлу.
6 Invalid file handle (Неправильный хэндл файла)
Происходит, когда используемая Вами файловая переменная была обнулена (испорчена); Это говорит о том, что память вашей программы была повреждена.
12 Invalid file access code (Неправильные ключи доступа к файлу)
Генерируется когда процедуры reset или rewrite вызываются с неправильным параметром FileMode.
15 Invalid drive number (Неправильный номер диска)
Генерируется когда в функции Getdir или ChDir был передан неправильный номер диска.
16 Cannot remove current directory (Невозможно удалить текущую директорию)
Генерируется при попытке удалить текущую директорию.
17 Cannot rename across drives (Можно переименовывать файлы только в пределах одного диска)
Вы не можете переименовать файл в файл, находяшиёся на другом диске или в другом разделе.
100 Disk read error (Ошибка чтения с диска)
Генерируется при невозможности произвести чтение с диска. Обычно происходит при попытке чтения данных, после его окончания.
101 Disk write error (Ошибка записи на диск)
Генерируется когда Вы пытаетесь записать данные на переполненый диск.
102 File not assigned (Файл не определён)
Генерируется функциями Reset, Rewrite, Append, Rename и Erase, При передаче в них файловой переменной, для которой не была выполнена функция AssignFile.
103 File not open (Файл не открыт)
Генерируется следующими функциями : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, и BlockWrite если файл не был открыт.
104 File not open for input (Файл не открыт для чтения)
Генерируется функциями Read, BlockRead, Eof, Eoln, SeekEof и SeekEoln если файл не был открыт при помощи Reset.
105 File not open for output (Файл не открыт для записи)
Генерируется функцией write если текстовый файл не был открыт при помощи Rewrite.
106 Invalid numeric format(Неправильный числовой формат)
Генерируется когда ожидалось числовое значение, но из текстого файла было прочитано не было.
150 Disk is write-protected (Диск защищён от записи)
(Критическая ошибка)
151 Bad drive request struct length (Неправильная длина структуры запроса)
(Критическая ошибка)
152 Drive not ready (Устройство не готово)
(Критическая ошибка)
154 CRC error in data (Ошибка контрольной суммы в данных)
(Критическая ошибка)
156 Disk seek error (Ошибка низкоуровнего поиска на диске)
(Критическая ошибка)
157 Unknown media type (Неизвестный тип …)
(Критическая ошибка)
158 Sector Not Found (Сектор не найден)
(Критическая ошибка)
159 Printer out of paper (Нет бумаги в принтере)
(Критическая ошибка)
160 Device write fault (Сбой записи устройства)
(Критическая ошибка)
161 Device read fault (Сбой чтения устройства)
(Критическая ошибка)
162 Hardware failure (Сбой железа)
(Критическая ошибка)
200 Division by zero (Деление на ноль)
Приложение пыталось разделить число на ноль.
201 Range check error (Ошибка проверки границ)
Если вы компилировали прогамму с включённой провереой границ, Вы можете получить эту ошибку в следующих случаях:
-
Массив был вызван с индексом, выходящим за декларированые пределы.
-
Попытка присвоить значение переменной, выходящее за декларированые границы (для instance и enumerated типов).
202 Stack overflow error (Переполнение стека)
Стек превысил свой максимально допустимый размер (в этом случае необходимо уменьшить размер локальных переменных), или стек был повреждён. Эта ошибка генерируется только с включённой проверкой стека.
203 Heap overflow error (Переполнение кучи)
Размер кучи превысил максимально возможный размер. Генерируется при попытке выделить память непосредственно функциями New, GetMem и ReallocMem, или когда экземпляр класса или объекта создаётся и памяти не достаточно. Пожалуйста учтите что, по умолчанию, Free Pascal поддерживает увеличение кучи, то есть, если необходимо, будет произведена попытка её увеличения. Как бы то ни было, если размер кучи превысил максимально допустимый системой и
железом, то Вы получите эту ошибку.
204 Invalid pointer operation (Непрваильная операция с указателем)
Будет сгенерирована при вызове функций Dispose или Freemem с неправильным указателем (чаще всего, Nil)
205 Floating point overflow (Максимальная границы числа с плавающей точкой)
Вы попытались использовать или создать слишком большое число с плавающей точкой.
206 Floating point underflow (Минимальная граница числа с плавающей точкой)
Вы попытались использовать или создать слишком маленькое число с плавающей точкой.
207 Invalid floating point operation (Неправильная операция над числами с плавающей точкой)
Может генерироваться если вы попытались получить квадратный корень или логарифм отрицательного числа.
210 Object not initialized (Объект не инициализирован)
Если программа была скомпилирована с включенной проверкой границ, эта ошибка будет сгенерирована при попытке вызвать виртуальный метод до его конструктора.
211 Call to abstract method (Попытка вызова абстрактного метода)
Ваша программа попыталась вызвать абстрактный виртуальный метод. Абстрактные методы должны быть перекрыты, и только перекрытый метод должен быть вызван.
212 Stream registration error (Ошибка регистрации потока)
Генерируется когда неправильный тип регистрируется в модуле objects.
213 Collection index out of range (Индекс элемента коллекции выходит за допустимые границы)
Генерируется когда Вы попытались обратиться к элементу коллекции с выходящим за допустимые границы индексом (модуль objects).
214 Collection overflow error (Переполнение коллекции)
Размер коллекции превысил максимально допустимый размер, а Вы попытались добавить новый элемент (модуль objects).
215 Arithmetic overflow error (Арифметическое переполнение)
Эта ошибка генерируется когда результат операции превысил допустимые границы. В отличие to Turbo Pascal, эта ошибка генерируется только для 32-bit и 64-bit арифметических переполнений. Это происходит согласно тому, что все операнды конвертируются в 32-bit или 64-bit, до того как производить вычисления.
216 General Protection fault (GP Ошибка защиты памяти)
Приложение попыталось обратиться к недопустимому участку памяти. Это может быть вызвано следующими причинами:
-
Попытка получить разуказатель для nil.
-
Попытка получить доступ к выходящему за допустимые границы участку памяти (например, вызов move с неправильной длиной).
217 Unhandled exception occurred (Произошо неизвестное исключение)
Произошло исключение, и для него не существеет хэндла. Модуль sysutils устанавливает handler(менеджер), который отлавливает все исключения, и безопасно выходит в случае обнаружения оного.
219 Invalid typecast (Неправильное приведение типов)
Генерируется когда недопустимое приведение типов производится над классом используя оператор as. Эта ошибка также генерируется, когда объект или класс приводится к недопустимому объекту или классу, и виртуальный метод этого объекта или класса вызывается. Эта последняя ошибка детектируется только с использованием опции -CR компилятора.
227 Assertion failed error (Сбой утверждения)
Утверждение провалено, и процедурная переменная AssertErrorProc не была уcтановлена.
Коды ошибок компилятора Паскаля
При отладке программ вы неизбежно столкнетесь с ошибками. Компилятор будет вам на чистом английском языке сообщать об ошибке. Вы не знаете английского? Тогда зачем согласились стать программистом? Если вы скажете что вас заставили, то мы попытаемся вам помочь. Здесь вы найдете коды ошибок и их перевод на русский язык. Кстати, помните, что компилятор часто врет и место ошибки указывает не правильно. Если в той строке, где компилятор якобы нашел ошибку, ошибки все-таки нет, то ишщите ее в соседних строках или в том блоке программы, к которому имеет отношение, отмеченная компилятором строка. Например, в вызываемой процедуре. Ну, дальше вы сами уже сможете сообразить.
Основные сообщения об ошибках Паскаля
Сообщения компилятора о синтаксических ошибках:
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 — нужен begin;
37 — нужен end;
38 — нужно выражение типа integer;
39 — нужно выражение перечисляемого типа;
40 — нужно выражение типа boolean;
41 — типы операндов не соответствуют оператору;
42 — ошибка в выражении;
43 — неверное присваивание;
44 — нужен идентификатор поля;
45 — объектный файл слишком большой (больше 64 Кб);
46 — неопределенная внешняя процедура;
47 — неправильная запись объектного файла;
48 — сегмент кода слишком большой (больше 65520 байт);
49 — сегмент данный слишком велик;
50 — нужен оператор do;
51 — неверное определение public;
52 — неправильное определение extrn;
53 — слишком много определений типа extrn (больше 256);
54 — требуется of;
55 — требуется интерфейсная секция;
56 — недействительная перемещаемая ссылка;
57 — требуется then;
58 — требуется to или downto;
59 — неопределенное опережающее описание;
60 — слишком много процедур (больше 512 в одном модуле);
61 — неверное преобразование типа;
62 — деление на нуль;
63 — неверный файловый тип;
64 – невозможно прочитать или записать переменные данного типа;
65 – требуется использование переменной-указателя;
66 — нужна строковая переменная;
67 — нужно выражение строкового типа;
68 — программный модуль не найден;
69 — несоответствие времен программных модулей;
70 — несоответствие версий программных модулей;
71 — повторное имя программного модуля;
72 — ошибка формата файла программного модуля;
73 — требуется секция реализации;
74 — типы константы и тип выражения оператора case не соответствуют друг другу;
75 — нужна переменная типа запись;
76 — константа нарушает границы;
77 — нужна файловая переменная;
78 — нужно выражение типа указатель;
79 — нужно выражение типа real или integer;
80 — метка не находится внутри текущего блока;
81 — метка уже определена;
82 — неопределенная метка в предыдущем разделе операторов;
83 — недействительный аргумент оператора @;
84 — требуется ключевое слово unit;
85 — требуется указать «;»;
86 — требуется указать «:»;
87 — требуется указать «,»;
88 — требуется указать «(«;
89 — требуется указать «)»;
90 — требуется указать «=»;
91 — требуется указать «:=»;
92 — требуется «[» или «(.»;
93 — требуется «]» или «.)»;
94 — требуется «.»;
95 — требуется «..»;
96 — слишком много переменных;
97 — неправильная переменная цикла оператора for. Переменная должна быть перечислимого типа;
98 — нужна переменная целого типа;
99 — здесь не допускаются файлы;
100 — несоответствие длины строковой переменной или константы;
101 — неверный порядок полей;
102 — нужна константа строкового типа;
103 — нужна переменная типа integer или real;
104 — нужна переменная перечисляемого типа;
105 — ошибка в операторе inline;
106 — предшествующее выражение должно иметь символьный тип;
107 — слишком много перемещаемых элементов;
108 — недостаточно памяти для выполнения программы;
109 — нет возможности найти файл .EXE;
110 — модуль выполнять нельзя;
111 — компиляция прервана с помощью клавиш Ctrl+Break;
112 — константа оператора case находится вне границ;
113 — ошибка в операторе. Данный символ не может быть первым символом в операторе;
114 — невозможно вызвать процедуру прерывания;
115 — для компиляции необходимо наличие сопроцессора 8087;
116 — для компиляции необходим режим 8087;
117 — адрес назначения не найден;
118 — в такой ситуации включаемые файлы не допускаются;
119 — ошибка формата файла .TPU;
120 — требуется NIL;
121 — неверный квалификатор переменной;
122 — недействительная ссылка на переменную;
123 — слишком много символов (больше 64 Кб);
124 — слишком большой раздел операторов (больше 64 Кб);
125 — в модуле нет отладочной информации;
126 — параметры файлового типа должны быть параметрами var;
127 — слишком много условных символов;
128 — пропущена условная директива;
129 — пропущена директива endif;
130 — ошибка в начальных условных определениях;
131 — заголовок не соответствует предыдущему определению;
132 — критическая ошибка диска;
133 — нельзя вычислить данное выражение;
134 — некорректное завершение выражения;
135 — неверный спецификатор формата;
136 — недопустимая косвенная ссылка;
137 — здесь не допускается использование структурной переменной;
138 — нельзя вычислить без блока system;
139 — доступ к данному символу отсутствует;
140 — недопустимая операция с плавающей запятой;
141 — нельзя выполнить компиляцию оверлеев в память;
142 — должна использоваться переменная-процедура или функция;
143 — недопустимая ссылка на процедуру или функцию;
144 — этот модуль не может использоваться в качестве оверлейного.
Сообщения об ошибках времени исполнения программы:
1 — не найден файл;
3 — не найден путь;
4 — слишком много открытых файлов;
5 — отказано в доступе к файлу;
6 — недоступный файловый канал;
12 — недействительный код доступа к файлам;
15 — недопустимый номер дисководов;
16 — нельзя удалить текущий каталог;
17 — нельзя при именовании указывать разные дисководы;
100 — ошибка чтения диска;
101 — ошибка записи на диск;
102 — файлу не присвоено имя;
103 — файл не открыт;
104 — файл не открыт для ввода;
105 — файл не открыт для вывода;
106 — неверный числовой формат;
150 — диск защищен от записи;
151 — неизвестный модуль;
152 — дисковод находится в состоянии «не готов»;
153 — неопознанная команда;
154 — в исходных данных;
155 — при запросе к диску неверная длина структуры;
156 — ошибка при операции установки головок на диске;
157 — неизвестный тип носителя;
158 — сектор не найден;
159 — кончилась бумага на устройстве печати;
160 — ошибка при записи на устройство;
161 — ошибка при чтении с устройства;
162 — сбой аппаратуры;
200 — деление на нуль;
201 — ошибка при проверке границ;
202 — переполнение стека;
203 — переполнение динамически распределяемой области памяти;
204 — недействительная операция ссылки;
205 — переполнение операции с плавающей запятой;
206 — исчезновение порядка при операции плавающей запятой;
207 — недопустимая операция с плавающей запятой;
208 — не установлена подсистема управления оверлеями;
209 — ошибка чтения оверлейного файла.
201 : range error
215 : overflow checking when doing computation with integer
202 : overflow stack
106 : invalid numeric format
1 : invalid function number
2 : file not found
3 : path not found
4 : too many open files
5 : file access denied
6 : invalid file handle
12 : invalid file access code
15 : invalid drive number
16 : cannot remove current directory
17 : cannot rename across
18 : no more files
100 : disk read error
101 : disk write error
102 : file not assigned
103 : file not open
104 : file not open for input
105 : file not open for output
150 : disk is write protected
151 : bad drive request structure length
152 : drive not ready
154 : CRC error in data
156 : disk seek error
157 : unknown media type
158 : sector not found
159 : printer out of paper
160 : device write fault
161 : device read fault
162 : hardware failure
200 : div by zero
203 : heap overflow
204 : invalid pointer operation
205 : floating point overflow
206 : floating point underflow
207 : invalid floating point operation
208 : overlay manager not installed
209 : overlay file read error
210 : object not initialized
211 : call to abstract method
212 : stream registration error
213 : collection index out of range
214 : collection overflow error
216 : general protection fault
217 : invalid operation code
227 : assertion failed
300 : file IO error
301 : non-matched array bounds
302 : non-local procedure pointer
303 : procedure pointer out of scope
304 : function not implemented
305 : breakpoint error
306 : break by ctrl/c
307 : break by ctrl/break
308 : break by other process
309 : no floating point coprocessor
310 : invalid variant type operation
СООБЩЕНИЯ КОМПИЛЯТОРА ОБ ОШИБКАХ
§ Если в меню Options?Linker?Link Buffer, установлен параметр Memory, переключите его в значение Disk.
§ Возможно программа слишком велика, чтобы компилироваться в таком объеме памяти. Следует разбить ее на два или более модуля.
§ несоответствующее количество begin и end (не забудьте, что оператор case также заканчивается словом end);
§ включаемый файл заканчивается в середине раздела операторов. Каждый раздел операторов должен целиком помещаться в одном файле;
§ незаконченный комментарий.
§ несовместимые типы переменной и выражения в операторе присваивания;
§ несовместимые типы фактического и формального параметров в обращении к процедуре или функции;
§ тип выражения, несовместимый с типом индекса при индексировании массива;
§ несовместимые типы операндов в выражении.
§ Идентификатору функции можно присваивать значения только внутри раздела операторов данной функции.
§ Объектный файл .obj определяет идентификаторы PUBLIC, которые не находятся в сегменте CODE.
§ Идентификатор обозначает абсолютную переменную.
§ Идентификатор обозначает процедуру или функцию типа inline.
§ Файл .com содержит ссылки с размерами в байтах на перемещаемые идентификаторы. Такая ошибка происходит в случае, если вы используете операторы HIGH и DOWN с перемещаемыми идентификаторами или если вы ссылаетесь в директивах DB на перемещаемые идентификаторы.
§ Операнд ссылается на перемещаемый идентификатор, который не был определен в сегменте CODE или в сегменте DATA.
§ Операнд ссылается на процедуру EXTRN или функцию EXTRN со смещением, например CALL SortProc+8.
§ Процедуры или функции были описаны с помощью описания forward, но их определение не найдено.
§ Вы пытаетесь осуществить приведение типа выражения, когда разрешается только ссылка на переменную, процедуру или функцию.
§ Вы пытаетесь присвоить константу вне диапазона переменной.
§ Вы пытаетесь передать константу вне диапазона в качестве параметра процедуре или функции.
Размер локальных переменных, описанных в программе или функции, не может превышать 64 Кбайт.