Кто-нить знает Паскаль?!!!
Runtime error 002: file not found 

Спасибо конечно за помощь, но я это и так знал.
Меня интересует почему он не может найти файл, если он есть. Где нужно его сохранить, чтобы этот несчастный Паскаль его нашел?!
Меня интересует почему он не может найти файл, если он есть. Где нужно его сохранить, чтобы этот несчастный Паскаль его нашел?!

А ты напиши программу, которая не читает, а создает файл, и посмотри где создаст 

Как где? В текущей папке.
Я покавырялся в программе, теперь он выдает runtime error 104 - "файл не открыт на считывание!" И как мне его открыть на считывание
Достал меня этот Паскаль, из-за ерунды придирается, фиг найдешь че ему не нравится!
Достал меня этот Паскаль, из-за ерунды придирается, фиг найдешь че ему не нравится!

пропиши полный путь к файлу, например, так:
assign(f, 'С:\директория1\директория2\1.dat');
Ни фига не помогает. Все равно пишет 104!
Достааааал...
Достааааал...
а можешь запостить целиком программульку?
uses wincrt;
var
a,b,c,e,Ea,g,h,k,k0,r,s1,s2,t,w:real;
x,y:array [0..9] of real;
f,q:text;
n,i:integer;
begin
assign(f,'p10_5.txt');
reset(f);
read(f,n);
for i:=1 to n do
begin
read(f,x,y);
x:=1/x;y:=ln(y);
t:=t+x/n;
w:=w+y/n;
end;
s1:=0;s2:=0;h:=0;k:=0;c:=0;e:=0;g:=0;
for i:=1 to n do begin
s1:=s1+(x-t)*(y-w);
s2:=s2+(x-t)*(x-t);
h:=h+x;{сумма иксов}
k:=k+y;{сумма игреков}
c:=c+x*y;{сумма x*y}
e:=e+x*x;{сумма квадратов иксов}
g:=g+y*y;{сумма квадратов игреков}
end;
a:=s1/s2;
b:=w-a*t;
r:=absn*c)-(h*k/sqrtn*e-h*h)*(n*g-k*k;{коэффициент корреляции}
writeln;
writeln(' a=',a:8:1,' b=',b:5:1,' r=',r:7:4);
writeln;
writeln(' N 1/T ln k ln k выч Погрешность');
writeln;
assign(q,'p10_5_1.txt');rewrite(q);
for i:=1 to n do
begin
writeln(i:3,x:12:6,y:12:4,a*x+b:12:4,y-a*x-b:12:4);
writeln(q,x:12:6,y:12:4,a*x+b:12:4);
end;
close(q);
k0:=exp(b);Ea:=-a*8.31441;
writeln;
writeln(' k0 =',k0:9,' Ea =',Ea:10:2);
end.
var
a,b,c,e,Ea,g,h,k,k0,r,s1,s2,t,w:real;
x,y:array [0..9] of real;
f,q:text;
n,i:integer;
begin
assign(f,'p10_5.txt');
reset(f);
read(f,n);
for i:=1 to n do
begin
read(f,x,y);
x:=1/x;y:=ln(y);
t:=t+x/n;
w:=w+y/n;
end;
s1:=0;s2:=0;h:=0;k:=0;c:=0;e:=0;g:=0;
for i:=1 to n do begin
s1:=s1+(x-t)*(y-w);
s2:=s2+(x-t)*(x-t);
h:=h+x;{сумма иксов}
k:=k+y;{сумма игреков}
c:=c+x*y;{сумма x*y}
e:=e+x*x;{сумма квадратов иксов}
g:=g+y*y;{сумма квадратов игреков}
end;
a:=s1/s2;
b:=w-a*t;
r:=absn*c)-(h*k/sqrtn*e-h*h)*(n*g-k*k;{коэффициент корреляции}
writeln;
writeln(' a=',a:8:1,' b=',b:5:1,' r=',r:7:4);
writeln;
writeln(' N 1/T ln k ln k выч Погрешность');
writeln;
assign(q,'p10_5_1.txt');rewrite(q);
for i:=1 to n do
begin
writeln(i:3,x:12:6,y:12:4,a*x+b:12:4,y-a*x-b:12:4);
writeln(q,x:12:6,y:12:4,a*x+b:12:4);
end;
close(q);
k0:=exp(b);Ea:=-a*8.31441;
writeln;
writeln(' k0 =',k0:9,' Ea =',Ea:10:2);
end.
В файле должно быть:
9
556 3.52e-7
575 1.22e-6
629 3.02e-5
647 8.59e-5
666 2.19e-4
683 5.12e-4
700 1.16e-3
716 2.50e-3
731 3.95e-3
Писал не сам, но кроме этой все программы работают, а это единственная с assign, и я никак не могу понять как такие проги писать. Если эта прога слишком большая, буду рад хоть самому простому примеру, который считывает данные из внешнего файла!
9
556 3.52e-7
575 1.22e-6
629 3.02e-5
647 8.59e-5
666 2.19e-4
683 5.12e-4
700 1.16e-3
716 2.50e-3
731 3.95e-3
Писал не сам, но кроме этой все программы работают, а это единственная с assign, и я никак не могу понять как такие проги писать. Если эта прога слишком большая, буду рад хоть самому простому примеру, который считывает данные из внешнего файла!
соображение номер раз: возможно, ошибка 104 вылетает на строчке
reset(f);
попробуй вместо нее вставить такой кусок
соображение номер два: файл типизированный (ты же собираешься целые значения считывать, а не строки поэтому в разделе var должно быть так
если я правильно помню синтаксис
reset(f);
попробуй вместо нее вставить такой кусок
{$I-}
reset (f);
{$I+}
if IOResult <> 0 then
begin
writeln ('Не открыт файл ', FileName);
Halt;
end;
соображение номер два: файл типизированный (ты же собираешься целые значения считывать, а не строки поэтому в разделе var должно быть так
Var f:file of integer;
если я правильно помню синтаксис
Какие-ж это целые значения
3.52e-7...
3.52e-7...
упс, пардон - я посмотрел на строчку read(f,n); где n - целое.
Тогда file of real
кстати, это создает дополнительные сложности - из файла придется брать и целые и дробные числа.
Тогда file of real
кстати, это создает дополнительные сложности - из файла придется брать и целые и дробные числа.
да, кстати, там где-нибудь неплохо бы вставить строчку
Close(F);
Close(F);
Не слушай их! В данном случае файл не типизированный. Тебе нужен как раз f:text
зы 2
зы 2
code:
$I-}reset (f);{$I+}if IOResult <> 0 then begin writeln ('Не открыт файл ', FileName); Halt; end;
Нет чувак, ты это слишком круто написал.
У нас всего-то пару команд на экзамене: for...do, repeat...until, if...then...else и assign.
Если я напишу что-то типа твоего, наша баба там опухнет и загрузится, подумает я над ней издеваюсь и начнется реальный секс!
А мне бы просто, без выпендронов сдать это экзамен и все...
Ну, кто-нить, объясните в чем тут проблема!

Именно! Тут нужен text, к тому же не помешает исправить все x на x (например так как массив все-таки...
хорошо, согласен на счет Text. Но все равно он так бодро два массива не считает одной read
Нет чувак, ты это слишком круто написал.
Да ладно, проверишь - здесь он вылетел или нет. Потом удалишь лишнее, оставишь все как было.
Не знаю че за фигня, но после copy/paste пост съел все [], пришлось ставить пробел между ними, правильно программа выглядит так:
uses wincrt;
var
a,b,c,e,Ea,g,h,k,k0,r,s1,s2,t,w:real;
x,y:array [0..9] of real;
f,q:text;
n,i:integer;
begin
assign(f,'p10_5.txt');
reset(f);
read(f,n);
for i:=1 to n do
begin
read(f,x[ i ],y[ i ]);
x[ i ]:=1/x[ i ];y[ i ]:=ln(y[ i ]);
t:=t+x[ i ]/n;
w:=w+y[ i ]/n;
end;
s1:=0;s2:=0;h:=0;k:=0;c:=0;e:=0;g:=0;
for i:=1 to n do begin
s1:=s1+(x[ i ]-t)*(y[ i ]-w);
s2:=s2+(x[ i ]-t)*(x[ i ]-t);
h:=h+x[ i ];{сумма иксов}
k:=k+y[ i ];{сумма игреков}
c:=c+x[ i ]*y[ i ];{сумма x*y}
e:=e+x[ i ]*x[ i ];{сумма квадратов иксов}
g:=g+y[ i ]*y[ i ];{сумма квадратов игреков}
end;
a:=s1/s2;
b:=w-a*t;
r:=absn*c)-(h*k/sqrtn*e-h*h)*(n*g-k*k;{коэффициент корреляции}
writeln;
writeln(' a=',a:8:1,' b=',b:5:1,' r=',r:7:4);
writeln;
writeln(' N 1/T ln k ln k выч Погрешность');
writeln;
assign(q,'p10_5_1.txt');rewrite(q);
for i:=1 to n do
begin
writeln(i:3,x[ i ]:12:6,y[ i ]:12:4,a*x[ i ]+b:12:4,y[ i ]-a*x[ i ]-b:12:4);
writeln(q,x[ i ]:12:6,y[ i ]:12:4,a*x[ i ]+b:12:4);
end;
close(q);
k0:=exp(b);Ea:=-a*8.31441;
writeln;
writeln(' k0 =',k0:9,' Ea =',Ea:10:2);
end.
uses wincrt;
var
a,b,c,e,Ea,g,h,k,k0,r,s1,s2,t,w:real;
x,y:array [0..9] of real;
f,q:text;
n,i:integer;
begin
assign(f,'p10_5.txt');
reset(f);
read(f,n);
for i:=1 to n do
begin
read(f,x[ i ],y[ i ]);
x[ i ]:=1/x[ i ];y[ i ]:=ln(y[ i ]);
t:=t+x[ i ]/n;
w:=w+y[ i ]/n;
end;
s1:=0;s2:=0;h:=0;k:=0;c:=0;e:=0;g:=0;
for i:=1 to n do begin
s1:=s1+(x[ i ]-t)*(y[ i ]-w);
s2:=s2+(x[ i ]-t)*(x[ i ]-t);
h:=h+x[ i ];{сумма иксов}
k:=k+y[ i ];{сумма игреков}
c:=c+x[ i ]*y[ i ];{сумма x*y}
e:=e+x[ i ]*x[ i ];{сумма квадратов иксов}
g:=g+y[ i ]*y[ i ];{сумма квадратов игреков}
end;
a:=s1/s2;
b:=w-a*t;
r:=absn*c)-(h*k/sqrtn*e-h*h)*(n*g-k*k;{коэффициент корреляции}
writeln;
writeln(' a=',a:8:1,' b=',b:5:1,' r=',r:7:4);
writeln;
writeln(' N 1/T ln k ln k выч Погрешность');
writeln;
assign(q,'p10_5_1.txt');rewrite(q);
for i:=1 to n do
begin
writeln(i:3,x[ i ]:12:6,y[ i ]:12:4,a*x[ i ]+b:12:4,y[ i ]-a*x[ i ]-b:12:4);
writeln(q,x[ i ]:12:6,y[ i ]:12:4,a*x[ i ]+b:12:4);
end;
close(q);
k0:=exp(b);Ea:=-a*8.31441;
writeln;
writeln(' k0 =',k0:9,' Ea =',Ea:10:2);
end.
Я вставил твой кусок, правда удалил оттуда filename и он выдает "не открыт файл".
Ну что из этого следует? в чем проблема то?
Ну что из этого следует? в чем проблема то?
Судя по всему, тот файл, который ты пытаешься открыть, лежит не в текущей папке.
ну, значит, ошибка 104 возникает, когда ты пытаешься сделать reset(f). проверь еще раз правильность пути к файлу в assign (не поленись прописать полный путь). скорее всего, программа просто не находит этого файла.
Че за текущая папка, temp что ли?
Записывает он без проблем в папку Bin, там я и создал файл для считывания. В temp тоже скинул этот файл и в мои документы, скоро этот файл у меня будет лежать во всех папках!
проблема где-то в
assign(f,'p10_5.txt');
reset(f);
read(f,n);
for i:=1 to n do
begin
read(f,x[ i ],y[ i ]);
а что именно ему не нравится я не понимаю!
Записывает он без проблем в папку Bin, там я и создал файл для считывания. В temp тоже скинул этот файл и в мои документы, скоро этот файл у меня будет лежать во всех папках!
проблема где-то в
assign(f,'p10_5.txt');
reset(f);
read(f,n);
for i:=1 to n do
begin
read(f,x[ i ],y[ i ]);
а что именно ему не нравится я не понимаю!
Проверь тогда имя файла. Может, у тебя там буква "р" не латинская, а русская. Или не подчеркивание, а дефиз. Проверь и на диске, и в программе.
Ух ты, а теперь 207 ошибку дал.
Это уже интересно
Это уже интересно
207 ( Invalid floating point operation) - это уже где-то в вычислениях ошибочка, скорее всего
Ураааааааа!
Получилось!
Я же говорю, Паскаль это такая херня, пристанет к чему-то фиг поймешь че ему надо.
Короче, переименовал я файл, прописал полный путь и эта колымага поехала.
и , спасибо вам за помощь!
От меня вам по 5 звездочек!
Получилось!
Я же говорю, Паскаль это такая херня, пристанет к чему-то фиг поймешь че ему надо.
Короче, переименовал я файл, прописал полный путь и эта колымага поехала.
и , спасибо вам за помощь!
От меня вам по 5 звездочек!

А что предполагается, что read(f,x,y) считывает первый столбец в x а второй в y?
Я что-то сильно сомневаюсь. Скорее read вообще не отличает перенос строки от пробела и считывает все подряд, сначала 10 элементов в x потом 10 в y.
Я что-то сильно сомневаюсь. Скорее read вообще не отличает перенос строки от пробела и считывает все подряд, сначала 10 элементов в x потом 10 в y.
Там на самом деле read(f, x[ i ], y[ i ]) и он читает их по очереди.
Короче прога заработала!
Мы сделали это
Короче прога заработала!
Мы сделали это

Поздравляю! Так обычно и бывает - та ошибка, которую дольше всех ищешь, оказывается самой дурацкой 

Самое приятное - когда в С убираешь один printf, и прога перестаёт работать... 

Я же говорю, Паскаль это такая херня, пристанет к чему-то фиг поймешь че ему надо.Он же тебе чётко рапортовал ошибками, что у тебя не так.
Так что это не Паскаль херня, а ручки...
--------------------------------------------------------------------------------
Я же говорю, Паскаль это такая херня, пристанет к чему-то фиг поймешь че ему надо.
--------------------------------------------------------------------------------
Он же тебе чётко рапортовал ошибками, что у тебя не так.
Так что это не Паскаль херня, а ручки...
Почитай все сначала, поймешь почему я так написал.
Не знаю, может твои ручки и ...
Я читал.
На любой другом языке программирования у тебя возникли бы теже самые ошибки.
ЗЫ Если запискаешь программу из IDEшки и обращаешься к файлам, без указания полного пути,
то проверяй в каком каталоге ты её запускаешь. File->Change dir...
На любой другом языке программирования у тебя возникли бы теже самые ошибки.
ЗЫ Если запискаешь программу из IDEшки и обращаешься к файлам, без указания полного пути,
то проверяй в каком каталоге ты её запускаешь. File->Change dir...
Во-первых, я Паскаль уже сдал и мне честно говоря уже посрать на него.
Во-вторых, Паскаль меня действительно бесит, он пристает к твоей программе фиг поймешь че ему надо (хоть он и выдает сообщения об ошибках)
В-третьих, сначала подумай стоит ли обсирать чьи-либо руки или еще что-нибудь, а то можешь нарваться.
В-четвертых, если уж на то пошло, руки всего лишь вбивают программы, а создаются они в голове, так что тогда уж голова ...
P.S. Всем удачи в общении с Паскалем!
Во-вторых, Паскаль меня действительно бесит, он пристает к твоей программе фиг поймешь че ему надо (хоть он и выдает сообщения об ошибках)
В-третьих, сначала подумай стоит ли обсирать чьи-либо руки или еще что-нибудь, а то можешь нарваться.
В-четвертых, если уж на то пошло, руки всего лишь вбивают программы, а создаются они в голове, так что тогда уж голова ...
P.S. Всем удачи в общении с Паскалем!

бля, а как ты сдал этот е...ный Паскаль?7 

>>он пристает к твоей программе фиг поймешь че ему надо


Во-первых, я Паскаль уже сдал и мне честно говоря уже посрать на него.Хватит нести пургу. Тебе уже несколько человек сказало, что эти ошибки воспроизвелись бы в любом другом языке.
Во-вторых, Паскаль меня действительно бесит, он пристает к твоей программе фиг поймешь че ему надо (хоть он и выдает сообщения об ошибках)
В-третьих, сначала подумай стоит ли обсирать чьи-либо руки или еще что-нибудь, а то можешь нарваться.
Когда он будет Си сдавать, ему ещё веселее будет.
Оставить комментарий
lexan
Помогите если кто в этом разбирается.Короче, как правильно связь с внешними файлами наладить?
У меня в проге:
var f:text;
.......
assign(f, '1.dat');
reset(f);
read(f, a, b);
А он run time errоr 002 выдает!
Помогите, а то завтра меня ....