1- Любой код нужно заключать в тэги
[code ][/code]2. - Я все конечно понимаю, школа, задания, но лично для себя же можно код хоть как то отформатировать.
3. Могли бы и файл приложить, это как мол думайте сами? Это вообще кому надо?
4. Вы даже файл забываете закрыть.. мой совет прочитать книгу по сабжу.
хз че вы там делаете вот переписал, программа не вылетает, при содержании файла типа:
- Код: Выделить всё
1 2 3
2 12 123
3 123 1232
4 435 5
Выдает результат 1.
Вот код консольного приложения:
- Код: Выделить всё
program project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, SysUtils, CustApp
{ you can add units after this };
type
{ TMyApplication }
TMyApplication = class(TCustomApplication)
protected
procedure DoRun; override;
procedure Fignya;
public
end;
{ TMyApplication }
procedure TMyApplication.DoRun;
var
ErrorMsg: String;
begin
{ add your program here }
Fignya;
Writeln('bla bla bla');
Readln();
// stop program loop
Terminate;
end;
procedure TMyApplication.Fignya;
var
dovoid : boolean;
i, i1, maxprint : integer;
f1 : textfile;
T, N : integer;
D, Ai, Bi, Ci, max : Real;
Begin
AssignFile(f1,'1.txt');
Reset(f1);
ReadLn(f1, T);
i := 1;
while (i<(T+1)) do
Begin
i := i + 1;
ReadLn(f1, N, D);
i1 := 0;
max := 0;
while (i1<N) do
Begin
i1 := i1 + 1;
ReadLn(f1, Ai, Bi, Ci);
if (((Ai<=D) or (Bi<=D)) or (Ci<=D)) Then
dovoid := true;
if ((Ai*Ai)+(Bi*Bi)-((Ai*Ai)+(Bi*Bi))/(Ci*Ci))<(D*D) Then
dovoid :=true;
if ((Ci*Ci)+(Bi*Bi)-((Ci*Ci)+(Bi*Bi))/(Ai*Ai))<(D*D) Then
dovoid :=true;
if ((Ai*Ai)+(Ci*Ci)-((Ai*Ai)+(Ci*Ci))/(Bi*Bi))<(D*D) Then
dovoid :=true;
if (dovoid and (max<(Ai*Bi*Ci))) Then
Begin
max := Ai*Bi*Ci;
maxprint := i1;
end;
end;
WriteLn(maxprint);
end;
CloseFile(f1);
end;
var
Application: TMyApplication;
{$R *.res}
begin
Application:=TMyApplication.Create(nil);
Application.Title:='My Application';
Application.Run;
Application.Free;
end.