
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.62] |
![]() |
|
Сообщ.
#1
,
|
|
|
![]() ![]() program треугол; uses crt; function провер(x,y,z:integer):boolean; begin if(abs(x-y)<z)and(x+y>z) then провер:=true else провер:=false; end; function площ(x,y,z:integer):real; var p:integer; begin p:=(x+y+z)div 2; площ:=sqrt(p*(p-x)*(p-y)*(p-z)); end; var f:text; n,i,sk,a,b,c:integer; begin clrscr; randomize; assign(f,'treug.txt'); rewrite(f); write('Сколько будет треугольников? n='); readln(n); for i:=1 to n do begin a:=random(10)+1; write(f,a); b:=random(10)+1; write(f,' ',b); c:=random(10)+1; write(f,' ',c); writeln(f,''); end; close(f); reset(f); sk:=0;i:=1; while not eof(f) do begin read(f,a); read(f,b); read(f,c); i:=i+1; if провер(a,b,c) then begin sk:=sk+1; writeln(i:2,' - ',площ(a,b,c):5:2) end else writeln(i:2,' - это не треугольник!' ); end; writeln; writeln('Треугольников = ',sk); close(f); readln; end. Данная программа мне постоянно выдает ошибку №106 - плохой формат числа. В чем дело? |
Сообщ.
#2
,
|
|
|
Как сказал бы мой преподаватель по системам коммутации (хорошая женщина
![]() KIKSa, ты гениальный ребенок! Цитата program треугол; function провер(x,y,z:integer):boolean; function площ(x,y,z:integer):real; Почему название программы и функций русскими буквами пишешь? Добавлено Цитата Polinom2686 @ Данная программа мне постоянно выдает ошибку №106 - плохой формат числа. В чем дело? Ошибка ведь возникает при компиляции? Компилятор должен указать место ошибки. Что показывает компилятор? |
Сообщ.
#3
,
|
|
|
![]() ![]() program треугол; uses crt; function провер(x,y,z:integer):boolean; begin if(abs(x-y)<z)and(x+y>z) then провер:=true else провер:=false; end; function площ(x,y,z:integer):real; var p:integer; begin p:=(x+y+z)div 2; площ:=sqrt(p*(p-x)*(p-y)*(p-z)); end; var f:text; n,i,sk,a,b,c:integer; begin clrscr; randomize; assign(f,'treug.txt'); rewrite(f); write('Сколько будет треугольников? n='); readln(n); for i:=1 to n do begin a:=random(10)+1; write(f,a); b:=random(10)+1; write(f,' ',b); c:=random(10)+1; write(f,' ',c); writeln(f,''); end; close(f); reset(f); sk:=0;i:=1; while not eof(f) do begin read(f,a); {Посмотри на эту строку} read(f,b); read(f,c); i:=i+1; if провер(a,b,c) then begin sk:=sk+1; writeln(i:2,' - ',площ(a,b,c):5:2) end else writeln(i:2,' - это не треугольник!' ); end; writeln; writeln('Треугольников = ',sk); close(f); readln; end. Как я понял, ты используешь FreePascal. Так? Перевод сообщения ошибки (Google'вский) 106 Invalid numeric format Reported when a non-numeric value is read from a text file, when a numeric value was expected. 106 Неправильная числовой формат сообщается, когда не-числовые значения считываются из текстового файла, когда ожидается числовое значение. Что содержит файл treug.txt ? |
Сообщ.
#4
,
|
|
|
Всякие треугол в названии появились во время перевода. Первоначально програма писалась латиницей на литовском языке. Что касается ошибки - выскакивает окно - ошибка №106 - плохой формат числа(это тоже перевод). Внизу ничего не пишут - программа скомпилирована и все.
Оригинал - может пригодится... ![]() ![]() program trikampiai; uses crt; function tikr(x,y,z:integer):boolean; begin if(abs(x-y)<z)and(x+y>z) then tikr:=true else tikr:=false; end; function plotas(x,y,z:integer):real; var p:integer; begin p:=(x+y+z)div 2; plotas:=sqrt(p*(p-x)*(p-y)*(p-z)); end; var f:text; n,i,sk,a,b,c:integer; begin clrscr; randomize; assign(f,'trikamp.txt'); rewrite(f); write('Kiek bus trikampiu? n='); readln(n); for i:=1 to n do begin a:=random(10)+1; write(f,a); b:=random(10)+1; write(f,' ',b); c:=random(10)+1; write(f,' ',c); writeln(f,''); end; close(f); reset(f); sk:=0;i:=1; while not eof(f) do begin read(f,a); read(f,b); read(f,c); i:=i+1; if tikr(a,b,c) then begin sk:=sk+1; writeln(i:2,' - ',plotas(a,b,c):5:2) end else writeln(i:2,' - tai ne trikampis!' ); end; writeln; writeln('Trikampiu yra = ',sk); close(f); readln; end. |
Сообщ.
#5
,
|
|
|
Цитата Polinom2686 @ Что содержит файл treug.txt ? А что с этим вопросом? Добавлено Прикрепи этот файл к своему сообщению. |
Сообщ.
#6
,
|
|
|
Этот файл создается программой и в него записывает длину сторон треугольников. 1-ая строка - 1-й треугольник и т.д.
|
Сообщ.
#7
,
|
|
|
Твой исходник отработал без ошибок.
Добавлено Я его немного изменил. ![]() ![]() program trikampiai; uses crt; function tikr(x,y,z:integer):boolean; begin if(abs(x-y)<z)and(x+y>z) then tikr:=true else tikr:=false; end; function plotas(x,y,z:integer):real; var p:integer; begin p:=(x+y+z)div 2; plotas:=sqrt(p*(p-x)*(p-y)*(p-z)); end; var f:text; n,i,a,b,c:integer; begin clrscr; randomize; assign(f,'trikamp.txt'); rewrite(f); write('Kiek bus trikampiu? n='); readln(n); for i:=1 to (n-1) do begin a:=random(10)+1; write(f,a); b:=random(10)+1; write(f,' ',b); c:=random(10)+1; writeLn(f,' ',c); end; a:=random(10)+1; write(f,a); b:=random(10)+1; write(f,' ',b); c:=random(10)+1; write(f,' ',c); close(f); reset(f); i:=0; while not eof(f) do begin read(f,a); read(f,b); read(f,c); Inc(i); if tikr(a,b,c) then begin writeln(i:2,' - ',plotas(a,b,c):5:2) end else writeln(i:2,' - tai ne trikampis!' ); end; writeln; writeln('Trikampiu yra = ',i); close(f); readln; end. Добавлено ![]() ![]() for i:=1 to n do begin a:=random(10)+1; write(f,a); b:=random(10)+1; write(f,' ',b); c:=random(10)+1; write(f,' ',c); writeln(f,''); end; Подозреваю, что ошибка возникала из-за последнего writeln(f,''); Программа записывала в файл не n строк с цифрами, а n+1. Причем последняя строка была пустой. ![]() ![]() while not eof(f) do begin read(f,a); read(f,b); read(f,c); i:=i+1; if tikr(a,b,c) then begin sk:=sk+1; writeln(i:2,' - ',plotas(a,b,c):5:2) end else writeln(i:2,' - tai ne trikampis!' ); end; А потом ты считывал из файла не n строк, а n+1. Последняя строка была пустой. Вот и возникала ошибка. Добавлено Цитата Polinom2686 @ Перевод сообщения ошибки (Google'вский) 106 Invalid numeric format Reported when a non-numeric value is read from a text file, when a numeric value was expected. 106 Неправильная числовой формат сообщается, когда не-числовые значения считываются из текстового файла, когда ожидается числовое значение. |
![]() |
|
|
Спасибо, здорово помог. Я с этой программой 2ую неделю воюю. К сожалению мои познания Паскаля остались где-то в районе процедур и функций и чем дальше в лес тем толще партизаны
|
Сообщ.
#9
,
|
|
|
Да пожалуйста.
![]() |