Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2010, 19:13   #1
Tina94
 
Регистрация: 22.11.2009
Сообщений: 4
По умолчанию runtime error 2 в delphi

Пишу программу в delphi 6, при запуске выдает "runtime error 2 at 00402E44" покопалась в факах, там пишут что причина в отсутствии файлов, но in0 и out0 существуют и уже лежат в папке.
Листинг:
Цитата:
Program semestr3;
type vp=record
sin,cos:real;
end;

type rp=record
p1,p2:array[1..100] of real;
end;

var
p:array[1..3] of vp;
pk:array[1..3]of rp;
i,j:integer;
q:vp;
m,r:integer;
in0,out0:text;
x:real;
function proizvod(v1:vp):vp;
var
per:vp;
begin
per.sin:=v1.cos*(-1);
per.cos:=v1.sin;

proizvod:=per;
end;

function sum(v1,v2:vp):vp;
begin
sum.sin:=v1.sin+v2.sin;
sum.cos:=v1.cos+v2.cos;
end;

function sum4(v1,v2,v3,v4:vp):vp;
begin
sum4.sin:=v1.sin+v2.sin+v3.sin+v4.s in;
sum4.cos:=v1.cos+v2.cos+v3.cos+v4.c os;
end;

begin
assign(in0,'input.txt');
assign(out0,'output.txt');
reset(in0);
rewrite(out0);


read(in0, r);
read(in0, m);
for i:=1 to 3 do
begin
for j:=1 to r do
read(pk[i].p1[j]);
for j:=1 to r do
read(pk[i].p2[j]);
end;

for i:=1 to 3 do
begin
p[i].sin:=0;
p[i].cos:=0;
end;

for i:=1 to 3 do
for j:= 1 to r do begin
p[i].sin:=p[i].sin+pk[i].p1[j];
p[i].cos:=p[i].cos+pk[i].p2[j];
end;

q:=proizvod(sum(sum4(p[1],proizvod(p[1]),p[2],proizvod(proizvod(p[2]))),proizvod(proizvod(proizvod(p[3])))));
q:=sum4(q,p[1],proizvod(proizvod(sum(proizvod(p[1]),p[2]))),proizvod(p[3]));


for i:= 1 to m do begin
read(in0,x);
writeln(out0,q.sin*sin(x)+q.cos*cos (x));
end;

close(in0);
close(out0);

end.
Tina94 вне форума Ответить с цитированием
Старый 02.01.2010, 20:09   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

а может переименовать sin,cos:real; хотя бы в sin1,cos1:real;
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 02.01.2010, 20:22   #3
Tina94
 
Регистрация: 22.11.2009
Сообщений: 4
По умолчанию

Не помогло
Tina94 вне форума Ответить с цитированием
Старый 02.01.2010, 20:33   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

на сами файлы in0 и out0 глянь.
ты их как объявляешь ? и как потом используешь ?
я про их типы в объявлении и использовании
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 02.01.2010, 20:43   #5
Tina94
 
Регистрация: 22.11.2009
Сообщений: 4
По умолчанию

Не совсем поняла. Файлы создала ручками. Как я их объявляю и использую видно в исходниках.
Tina94 вне форума Ответить с цитированием
Старый 03.01.2010, 10:18   #6
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

delphi не всегда может находить файлы, которые лежат рядом с программой простым подцеплением и неабсолютным путём до них (извините, что криво выразился).Попробуйте
Код:
assign(...,extractfilepath(paramstr(0))+'inpit.txt');
должно помочь. Если логика программы в норме. А на какой строке ошибка?
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 03.01.2010, 21:00   #7
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от postal2 Посмотреть сообщение
delphi не всегда может находить файлы, которые лежат рядом с программой простым подцеплением и неабсолютным путём до них
Так понимаю, следует читать, что папка, в которой находится программа, не всегда текущая.
Somebody вне форума Ответить с цитированием
Старый 03.01.2010, 21:23   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
в которой находится программа, не всегда текущая.
Да, не всегда. Есть такое дело как ChangeCurrentDirectory. Также она меняется после использования диалогов. Узнать так же можно так: GetDir(0,Stroka);
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированные файлы. Runtime Error. TwiX Помощь студентам 2 14.12.2009 04:17
Паскаль runtime error Лида200915 Помощь студентам 11 18.09.2009 22:00
Runtime error 201 mmx358 Паскаль, Turbo Pascal, PascalABC.NET 2 26.08.2009 11:38
Ошибка runtime error 105 at 0001:002B agoriachev Паскаль, Turbo Pascal, PascalABC.NET 2 29.01.2009 16:25
Microsoft Visual C++ Library (Runtime Error!) Карась Свободное общение 2 25.12.2008 23:31