0 Nabskyy [2016-02-19 05:01:00]
У меня есть задача написать программу в Паскале. Когда я запускаю программу, результатом был exitcode 201.
Я не знаю, как исправить эту ошибку.
pascal freepascal turbo-pascal
1 ответ
Как видно из других вопросов, код ошибки 201 является ошибкой проверки диапазона. Проще говоря, значение пытается быть сохранено там, где оно не подходит.
Если, как и в связанном вопросе, вы используете компилятор Free Pascal, integer переменные являются 16-битными значениями — они не могут превышать 32 767.
Ваша переменная totaldetik выглядит так, что она часто будет выше предела для integer значения, поэтому вам понадобится большая переменная для ее хранения. Попробуйте вместо этого сделать totaldetik longint .
When there’s a will, there’s a way
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
Share this:
Like this:
18 thoughts on “ FREE PASCAL EXITCODE / RUNTIME ERROR CODE ”
how about 0 exitcode?
haven’t found it yet, I’ll post it as soon as I find out
how to fixing it?
Usually you need to read through your code again or debug to get the error. The runtime error code just gives a clearer explanation of what’s going wrong
Hi, I’m trying to create an array with >1000 compartments on a side. It appears I need to call cmem to use c’s memory manager. i included the code “uses cmem;” and it compiled in freepascal, but when i ran it it gave me the error “runtime error 3 at $0040eadd.” where is the location $0040eadd and how can i fix this? thanks!
làm thế nào để chữa lỗi exit code 201 vậy
cứ Debug để tìm chỗ sai rồi sửa từ từ thôi
how to fix the 2nd error code?
what abouth exitcode 215
what about the exit code -1073741571
how do you fix the 216 exit code
How to fix 215 exitcode ? Thank you
Maybe you can take a look on your Mathematic computation and check if the variables inside the equation needs larger data type.
Создан массив из 5 записей.
Организован ввод данных в записи.
!Данные в 1ую запись успешно вводятся!
При введении данных в поле FIO !2й! записи крашится с ошибкой 106.
если в FIO вместо фамилии ввести число, не крашится 🙂 На ответах говорят типа работает и я балабол)
сам код:
manager:array[1..5] of anketa;
do with manager[i] do
writeln(‘Vvedite dannye ‘,i,’managera’);
writeln(‘Kakoi mesyac ishem?’);readln(n);
if manager[i].d=n then
![]()
Дубликаты не найдены
free pascal и pascal на андроиде отказываются это выполнять)
Что отказываются выполнять?
Это сайт с валидной имплементацией паскаля, там твой исходник работает. Делаем выводы — проблема в твоей среде исполнения.
вот такая штука в фри паскале:
Running «c:fpc2.6.4ini386-win32lab 5-5.exe «
Введите данные 1 манагера
God rozhdenia 1234
Введите данные 2 манагера
Runtime error 106 at $0040151C
Проблема твоего freepascal.
надеюсь на это) потом доказывай преподу, что всё работает:D
Free Pascal Compiler version 3.0.2 [2017/02/16] for x86_64
Собирает отлично, заполнение данных происходит корректно. Попробуй собрать другим компилятором. И подставь пробел после номера менеджера в промпте ввода данных.

кстати у тебя if manager[i].d=n then если месяц сравниваем , то не [i].m=n разве должно быть?
где-то уже говорили в теме)
но спасибо что заметили и сказали)
так код у тебя заработал? скинь уже после правок
у меня так не заработал, у других работает
проблема в компиляторе, видимо
А ты нигде память, доступную программе, не ограничиваешь?
да вроде не прописывал такого)
Vvedite dannye 1managera
ВАСЯ ИВАНОВИЧ ПЕТРОВ
Vvedite dannye 2managera
ИВАНОВ ВАСЯ ВАСЯ
Vvedite dannye 3managera
У тебя ошибка только в том что ты просишь ввести месяц , а он задан как INT , а юзер может ввести не цифры 1-12 , а «СЕНТЯБРЬ» и будет ошибка
и еще у тебя в конце спрашивает какой месяц ищем и он должен найти совпадение и написать имя манагера, но у тебя там какой-то кривой код , так что он в пустоте ищет
ПОТОМУ ЧТО у тебя не прописанна переменная в начале кода n:integer; я ее прописал и все заработало


Прописано там все, смотри внимательнее. Он объявляет сразу i и n, потом берет n через readln.
так в паскале нельзя «сразу объявлять», n должна быть заранее задана с типом переменной
readln(n) тупо лишь задает ей потом значение
Смотри, говорю, прямо на своем скрине в секцию VAR внимательнее.
Алсо, в случае такой ошибки компилятор бы не собрал прогу.
ты сумасшедший? это я дописал n:integer; и последняя часть кода заработала
writeln(‘Kakoi mesyac ishem?’);readln(n);
if manager[i].d=n then
если ты посмотришь в код изначальный в посте автора , то ТАМ НЕТ переменной n в начале
не гони дядь, все у него изначально объявлено, код не компильнулся бы.
почему тогда код спрашивает «Kakoi mesyac ishem?»
вводим например 10 месяц который задан хотя бы у одного из 5 манагеров и программа тупо заканчивается не выводя на экран имя и фамилию этого манагера как в коде сказано
в этом нет смысла, у него в цикле сказано что при совпадении месяца и readln(n); выполняется writeln(‘FIO: ‘,manager[i].fio); и если есть совпадение то в консоли должно быть написано FIO : Имя Фамилия
а этого не происходит
есть у меня совпадения, я специально ввел у первого манагера 11 месяц например в конце «какой месяц ищем?» при вводе 11 должно написаться имя этого манагера в консоли, а потом уже программа закончиться
а если manager[I].m то вообще ошибка «значение вне массива»
значит ты что-то накосячил в коде. его код вполне рабочий, не считая сравнение по дню
Ты ее дописал в рекорд, а не в программу. Внимательнее, еще внимательнее. Парой строчек ниже.
у них отмазка типа «Паскаль хорошо показывает структуру программы»
в питоне намного наглядней и понятней, там хоть табуляция есть и синтаксис человеческий
скачай Pascal ABC он тебе укажет на ошибки
free pascal и pascal на андроиде отказываются это выполнять)
Debian, fpc (free pascal) — полностью отрабатывает. Так что, по идее, и на андроиде должно. readln(); поставь после вывода.
у тебя разве второго END не должно быть после работы с записью? тебе же надо закрыть блок цикла и блок работы с записью?
Там (в цикле) нет BEGIN, значит, не надо и END. Таким образом, FOR сработает для одного оператора, т.е. для DO.
а тут в конце ; не надо ?)
У него тогда программа бы не собралась.
Error 106 : Invalid numeric format
пытаешся в числовую переменную присвоить не числовой формат
fio:string[45];
как она становится числовой?
да работает твой код. единственное у тебя сравнение идет не по месяцу, а по дню
довен, у тебя изначально задано что fio = «45»
что ты хотел получить при попытке ввода?
Это строка длиной в 45 символов.
зачем он указывает длину тогда?
хз, как у вас там в паскале. я бы проверил FIO и fio по типу совпадают, или как? Потому что, по описанию тут writeln(‘FIO’);readln(fio); похоже пытается из стринга инт сотворить.
нет writeln — это тупо как print («Фамилия ИМЯ») и дальше просит пользователя readln ввести типа питонского rawinput
мне кажется на втором круге тупо переполняется лимит 45 знаков в fio тк походу имена 5 человек тупо туда забиваются
паскаль вообще для животных
Паскаль позволяет выучить базовые понятия алгоритмов, дисциплинирует (в отличие от этого вашего С с плюсами или с решетками) и в принципе на базовом уровне ничем от других языков не отличается. Так то вначале вообще зачастую с Бейсика начинали. Посмотрел бы я на вас за терминалом ДОСа версии 6 и мигающим приглашением для ввода кода. А счас разленились все. Уже не пишут проги, а как «альтернативные» аппликации лепят из кусочков.
как низко я пал! 😀
это не ты пал, это учебная программа вузов и школ
надеюсь они в досе вас не заставляют на паскале писать код, 1 пробел поставил и весь код проебал