![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Всем привет... Студент второго курса математик-программист) Задача проще простого, но на делфи почему то отказывается работать правильно... Пожалуйста объясните почему? Написал эту же программу на паскаль, все работает идеально...
Условие задачи:Дан файл f, компоненты которого являются действительными числами. Получить в файле g все компоненты файла f, сумма первой и второй цифр дробной части которых равна 7. Прошу прощения за громоздкое оформление темы.... Код:
unit Lab2Un;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var f,g:textFile;t1,t2,k1,k2:integer; h: real;
begin
AssignFile(f, 'E:\Delphi\Lab2\TExt1.txt');
AssignFile(g, 'E:\Delphi\Lab2\TExt2.txt');
reset(f);
rewrite(g);
while not eof(f) do begin
read(f, h);
Label2.Caption:=Label2.Caption+FloatToStr(h)+' ';
if eoln(f) then Label2.Caption:=Label2.Caption+#13;
t1:=trunc(h*100); k1:=t1 mod 10;
t2:=trunc(h*10); k2:=t2 mod 10;
if k1+k2=7 then write(g, h:7:2);
end;
reset(g);
while not eof(g) do begin
read(g, h);
Label4.Caption:=Label4.Caption+FloatToStr(h)+' ';
if eoln(g) then Label4.Caption:=Label4.Caption+#13;
end;
closeFile(f);
closeFile(g);
end;
end.![]() |
|
#2
|
||||
|
||||
|
У вас ведь текстовый файл, с ним нужно так
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
f: textFile;
th: string;
begin
AssignFile(f, 'E:\Delphi\Lab2\TExt1.txt');
Reset(f);
while not eof(f) do
begin
ReadLn(f, th);
Label2.Caption:= Label2.Caption + th + ' ';
if (Pos(',', th) + 2 = Length(th)) and
(StrToInt(th[Length(th) - 1]) + StrToInt(th[Length(th)]) = 7) then
label4.Caption:= Label4.Caption + th + ' ';
end;
CloseFile(f);
end; |
|
#3
|
|||
|
|||
|
Цитата:
задача решена. Просто в делфи и на паскаль функция trunc работают по разному... и замена в делфи транк на раунд, решила мою проблему... на счет строк, текстовый файл я создаю сам, и там кроме цифр действительных ничего быть не может поэтому я читал сразу по одному числу всем спасибо!!!! |