|
grand777 23 / 0 / 0 Регистрация: 14.01.2014 Сообщений: 3 |
||||||||
|
1 |
||||||||
|
14.01.2014, 20:19. Показов 4716. Ответов 5 Метки нет (Все метки)
printer.in
Ошибка выполнения 106 по адресу 0000:011D Помогите, в чём проблема?
__________________
0 |
|
Супер-модератор 6108 / 2847 / 1299 Регистрация: 04.03.2013 Сообщений: 5,738 Записей в блоге: 1 |
|
|
14.01.2014, 20:46 |
2 |
|
Подпрограммы Read и ReadLn сообщают об этой ошибке, если числовое значение, считанное из текстового файла не соответствует нужному числовому формату. Проверьте, каждый символ файла printer.in для начала
1 |
|
23 / 0 / 0 Регистрация: 14.01.2014 Сообщений: 3 |
|
|
14.01.2014, 21:33 [ТС] |
3 |
|
Подпрограммы Read и ReadLn сообщают об этой ошибке, если числовое значение, считанное из текстового файла не соответствует нужному числовому формату. Проверьте, каждый символ файла printer.in для начала прикрепил printer.in к первому посту скорее всего ошибка в том что сначала читаю а (символ), потом число, хотя может быть и нет. как исправить, не подскажите? Добавлено через 39 минут
0 |
|
Супер-модератор 6108 / 2847 / 1299 Регистрация: 04.03.2013 Сообщений: 5,738 Записей в блоге: 1 |
|
|
14.01.2014, 21:35 |
4 |
|
grand777, темы не закрываются. Если не трудно, поделитесь решением проблемы с будущими поколениями. Возможно кому-то пригодится…
0 |
|
grand777 23 / 0 / 0 Регистрация: 14.01.2014 Сообщений: 3 |
||||
|
14.01.2014, 21:50 [ТС] |
5 |
|||
|
путём отладки пришел к такому решению: (добавлен ряд 20 и 21, не обязательно a[i], это просто чтобы символы, которые паскаль берёт откуда то (так и не понял откуда) пропустить)
0 |
|
958 / 577 / 136 Регистрация: 23.05.2012 Сообщений: 7,364 |
|
|
15.01.2014, 00:48 |
6 |
|
так и не понял откуда В конце каждой строки записаны два управляющих символа #10 и #13 — признак конца строки и воззврат каретки. Т.к. чтение было посимвольным, то эти символы Вы тоже читаете.
0 |
I’m still fairly new to Pascal and I’m getting these errors and I’m not sure why. Some help would be greatly appreciated.
Runtime error 106 at $004015DFF
$004015DF
$004016D2
$004016FD
$004078D1
This is my code if you guys want to take a look.
program BasicReadWrite;
type
ArrayOfPersons = record
name: String;
age: String;
end;
procedure WriteLinesToFile(var myFile: TextFile);
begin
WriteLn(myFile, 5);
WriteLn(myFile, 'Fred Smith');
WriteLn(myFile, 28);
WriteLn(myFile, 'Jill Jones');
WriteLn(myFile, 54);
WriteLn(myFile, 'John Doe');
WriteLn(myFile, 15);
WriteLn(myFile, 'Samantha Pritchard');
WriteLn(myFile, 19);
WriteLn(myFile, 'Hans Fredrickson');
WriteLn(myFile, 77);
end;
procedure PrintRecordsToTerminal(personArray: ArrayOfPersons; count:
Integer);
begin
WriteLn('Person name: ', personArray.name);
WriteLn('Age: ', personArray.age);
end;
procedure ReadLinesFromFile(var myFile: TextFile);
var
p: ArrayOfPersons;
number: Integer;
begin
number := 0;
while number <= 19 do
begin
ReadLn(myFile, number);
ReadLn(myFile, p.name[number]);
ReadLn(myFile, p.age);
number := number + 1;
end;
end;
I’m still fairly new to Pascal and I’m getting these errors and I’m not sure why. Some help would be greatly appreciated.
Runtime error 106 at $004015DFF
$004015DF
$004016D2
$004016FD
$004078D1
This is my code if you guys want to take a look.
program BasicReadWrite;
type
ArrayOfPersons = record
name: String;
age: String;
end;
procedure WriteLinesToFile(var myFile: TextFile);
begin
WriteLn(myFile, 5);
WriteLn(myFile, 'Fred Smith');
WriteLn(myFile, 28);
WriteLn(myFile, 'Jill Jones');
WriteLn(myFile, 54);
WriteLn(myFile, 'John Doe');
WriteLn(myFile, 15);
WriteLn(myFile, 'Samantha Pritchard');
WriteLn(myFile, 19);
WriteLn(myFile, 'Hans Fredrickson');
WriteLn(myFile, 77);
end;
procedure PrintRecordsToTerminal(personArray: ArrayOfPersons; count:
Integer);
begin
WriteLn('Person name: ', personArray.name);
WriteLn('Age: ', personArray.age);
end;
procedure ReadLinesFromFile(var myFile: TextFile);
var
p: ArrayOfPersons;
number: Integer;
begin
number := 0;
while number <= 19 do
begin
ReadLn(myFile, number);
ReadLn(myFile, p.name[number]);
ReadLn(myFile, p.age);
number := number + 1;
end;
end;
Регистрация Войти‘;
Авторизация
Логин:
Пароль:
Запомнить меня на этом копьютере
Регистрация
Забыли свой пароль?
Справочник |Библиотека |Файлы и загрузки |Уроки |FAQ| Скачать Turbo Pascal Форум
- Синтаксис языка
- Типы данных
- Стандартные модули
- Процедуры и функции
- Зарезервированные слова
- Директивы компилятора
- Сообщения об ошибках
- Ошибки выполнения
- Ошибки компиляции
- Примеры программ
- Описание среды разработки
Главная / Справочник / Сообщения об ошибках / Ошибки выполнения
Недопустимый числовой формат.
Описание
Подпрограммы Read и ReadLn сообщают об этой ошибке, если числовое значение, считанное из текстового файла не соответствует нужному числовому формату.
© 2009–2023 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг
ISBIZ.agency
продвижение сайта
Ошибка в работе новичка
Модератор: Модераторы
Ошибка в работе новичка
program Sum_1mas;
var
a:array [1..10] of integer:
i, s : integer;
begin
writeln(‘ Введите 10 чисел ‘ );
for i:=1 to 10 do readln(a[i]);
s:=0;
for i:1 to 10 do s:=s+a[i];
writeln(‘исходный массив’);
for i:=1 to 10 write(a[i], ‘ ‘);
writeln(‘ответ’);
writeln(s);
readln;
end.
Программа компилируется . Я ввожу числа 12+12 ит.д Нажимаю Enter и выходит ошибка Runtime error 106 $0040146B
$00407641
- TatarinChita
- незнакомец
- Сообщения: 2
- Зарегистрирован: 04.12.2010 13:15:15
Re: Ошибка в работе новичка
Odyssey » 04.12.2010 20:38:04
Ваш код рассчитан на ввод не «12+12+…», а на 12 (ввод) 12 (ввод) … и так десять чисел.
P.S. К сведению, ошибка 106 означает «Неправильный формат числа». Потому что «12+12» не является числом. Все коды ошибок и их значения написаны тут (правда, на английском):
http://www.freepascal.org/docs-html/user/userap4.html
- Odyssey
- энтузиаст
- Сообщения: 580
- Зарегистрирован: 29.11.2007 17:32:24
Вернуться в Обучение Free Pascal
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
First time posting here so I will try to do it right.
I’m working on my first program which prints the percentages for a class of students given an id,last & first name, and an assignment score which must be converted. I was able to compile it with only two warnings about assignment_score and assignment_percentage being uninitialized.
I’m getting runtime error 106 (which is when a nonnumeric value is read where a numeric value is expected) in my read_record, initialize, and main modules (I think that’s the term).
It has to do with the spacing in the data file, but maybe I did something wrong in the code, as this is my first program I am looking for any help possible.
Read_Record :
begin
if EoF(FileIn) then
more_students := False
else
readln(FileIn,student_id,last_name,first_name,assignment_score)
end; {read_record}
Initialize:
Procedure initialize;
begin
more_students:= True;
{Assigns files to input and output and rewrites them for the code }
Assign(FileIn, 'prg2a-150.dat');
Reset(FileIn);
Assign(Fileout, 'Prog2.txt');
Rewrite(fileout);
READ_RECORD;
Print_Header
end; { initialize }
My process & main (I get an error at line 100 when I call for process to be used which is where I’m writing my FileOut)
procedure process;
begin
{Line check for print header}
if line_count > 57 then
print_header;
Inc(line_count);
{ Converts score to percentage }
compute_grade;
{Report Percentage}
writeln(FileOut, student_id, space(2), last_name, space(1), first_name, space(2), assignment_percentage:5:1);
{ Next Runner Data }
read_record
end; { process }
{WRAP UP -- No summary so just the files are being closed }
procedure wrapup;
begin
close(FileOut);
close(FileIn)
end; { wrapup }
begin { main }
initialize;
while more_students do
process;
wrapup
end.
And finally, here is my data file:
032919631 BACH AMANDA 14.1
327777582 GUNDERSON EMILY 9.9
188941863 DARLING CHRIS 14.7
396501493 JACKSON GUY 2.1
552753315 MILKOVICH LAURA 21.0
553962171 ZADINS WALLACE 28.9
989570643 KLIPP JOAN 33.3
468497243 CARPENTER BETTYANNE 6.0
112324230 RIKER NANCY 17.1
720789066 UTHE SHARON 12.7
878468839 NULL LIVAK 0.0
606537736 ZUCKERMAN YVONNE 1.0
996498720 KINGSLIGHT JERRIE 14.5
453310627 GAUTHIER DONALD 7.8
289324008 HIRSH GAYLENE 32.3
361582495 KELLY JEAN 0.1
441892834 FACTOR DANI 15.8
255715006 MARKS KIMBERLEE 8.9
535282507 MORROW LEONARD 29.8
566318464 COSGROVE CAROL 15.8
158778873 MUDD LES 29.1
574450163 TIMMERMAN ROY 2.9
032731233 MUIZNIECE LESLIE 14.3
832142931 HARMAN FRITZ 34.5

