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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2015, 17:06   #1
shalgan
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 68
По умолчанию ошибка с writeln

добрый день, начал перебирать свой курсач, взял для примера у однокурсника, все переделал, программа запускается ,но в строке writeln(file1,tx1+tx2+tx3); выдает ошибку, никак не могу понять в чем дело, подскажите пожалуйста

Безымянный.jpg

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Math, TeEngine, Series, ExtCtrls, TeeProcs,
  Chart, jpeg;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    BitBtn1: TBitBtn;
    Memo1: TMemo;
    Chart1: TChart;
    Series1: TLineSeries;
    Chart2: TChart;
    Series4: TLineSeries;
    Chart3: TChart;
    Series2: TLineSeries;
    Series3: TLineSeries;
    Series5: TLineSeries;
    Series6: TLineSeries;
    Label13: TLabel;
    Label14: TLabel;
    Image1: TImage;
    procedure BitBtn1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
  BASE = Packed Record
    txmas: string[48];
  End;

var
  Form1: TForm1;
  alpha,betta,sigma,th,tx,ny,delta,xttaunach,xu,inta:real;
  g,mh:integer;
  MI:array[1..3,1..301] of integer;
  file1:textfile;
  fff:file;
  tx1,tx2,tx3:string[16];
  txx:base;

implementation

{$R *.dfm}
function integr(t:real;k:integer):real;   forward;
////////////////////////////////////////////////////////////
function xt:real;
var
a,b,r,dx:real;
begin
dx:=tx/(ny-1);
a:=power(2.71,-betta*dx);
b:=sigma*power(1-a,0.5);
randomize;
r:=random-0.5;
xu:=a*xu+b*r;
xt:=xu;
end;
////////////////////////////////////////////////////////////
function h1(u:real):real;        //h1(u)
var
ppp,r:real;
begin
ppp:=1/(1+alpha*u-(r/2));
h1:=ppp;
//form1.memo1.lines.add(floattostr(ppp));
end;
////////////////////////////////////////////////////////////
function h(x:real):real;        {h(u)}
var
kn:real;
begin
kn:=1/integr(th,1);
kn:=kn*h1(x);              //h(u)=kn*h1(u)
h:=kn;
end;
////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////
function integr(t:real;k:integer):real;      {âû÷èñëåíèå èíòåãðàëà}
var
ni,xn,xk,s,h,e,l1,l2,k_n,x:real;
{st,st1:string; }
i:integer;
funct:real;
label a2,a1,f1,f2,ff;

begin
xk:=t;
xn:=0;
e:=0.0000001;
ni:=75;
l1:=0;l2:=0;
a2:
h:=(tx+th)/(ny-1);
s:=0;
x:=xn+h/2;
while x<xk-h/2 do
  begin
    If k=1                        {âûáîð ôóíêöèè äëÿ èíòåãðèðîâàíèÿ}
      then
        s:=s+h1(x);

  x:=x+h;
  end;
    If k=1
      then
        l1:=h*((h1(xn)+h1(xk))/2+s);


if abs(l2-l1)>=e
  then begin l2:=L1;ni:=ni*2;goto a2 end;

  integr:=l1;
//form1.memo1.lines.add(floattostr(l1));
//form1.memo1.lines.add(floattostrf(xu,ffFixed,6,4));
end;


////////////////////////////////////////////////////////////

procedure TForm1.BitBtn1Click(Sender: TObject);
var
n:integer;
p:real;
begin
alpha:=strtofloat(edit1.text);
betta:=strtofloat(edit2.text);
sigma:=strtofloat(edit3.text);
th:=strtofloat(edit4.text);
tx:=strtofloat(edit5.text);
ny:=strtofloat(edit6.text);
delta:=(tx+th)/(ny-1);
form1.Chart1.Series[0].clear;
form1.Chart2.Series[0].clear;
form1.Chart3.Series[0].clear;
randomize;
xu:=random-0.5;
n:=1;
p:=0;

while p<=th+tx do
begin
MI[1,n]:=round(1000*xt);

mh:=round(1000*h(p));

asm
pushad          //ñîõðàíÿåì ñîñòîÿíèÿ ðåãèñòðîâ â ñòåê
LEA ESI, MI     //ïîëó÷àåì àäðåñ ìàññèâà
ADD ESI, 1200   //ñìåùåíèå íà MI[2,..]
MOV EBX, n
IMUL EBX, 4     //ïîëó÷àåì n äëÿ ñìåùåíèÿ íà MI[2,n]
ADD ESI, EBX
MOV ECX, mh
MOV [ESI], ECX  //çàïèñûâàåì mh >> MI[2,n]
popad           //âîññòàíàâëèâàåì çíà÷åíèÿ ðåãèñòðîâ
end;

MI[3,n]:=round(MI[1,n]*MI[2,n]);

inc(n);

p:=p+delta;
end;


n:=1;
p:=0;
while p<=th+tx do
begin

form1.Chart1.Series[0].AddXY(p,MI[1,n]/1000);
form1.Chart2.Series[0].AddXY(p,MI[2,n]/1000);
form1.Chart3.Series[0].AddXY(p,MI[3,n]/1000000);
tx1:=inttostr(MI[1,n])+'                 ';
tx2:=inttostr(MI[2,n])+'                 ';
tx3:=inttostr(MI[3,n])+'                 ';
txx.txmas:=tx1+tx2+tx3;
writeln(file1,tx1+tx2+tx3);
blockwrite(fff,txx,1);
inc(n);
p:=p+delta;



end;
closefile(file1);
closefile(fff);
inta:=integr(th+tx,2);
label14.caption:=floattostr(inta/1000000);
end;

end.
shalgan вне форума Ответить с цитированием
Старый 08.06.2015, 17:31   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

перед тем, как писать в файл, его нужно
1) связать с физическим фалом на диске:
Код:
AssignFile( file1, 'Путь:\ИмяФайла.txt');
2) открыть на чтение/запись/дозапись - смотря что нужно.
ну, например,перезаписать файл:
Код:
Rewrite( file1 );

p.s. главное, закрыть файл через CloseFile() на забыл!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цвет для writeln - паскаль Silverstone Помощь студентам 4 03.06.2012 10:07
Когда нужно присваивать.. Writeln(Sum:8:4) ? Erlotaza Общие вопросы Delphi 1 09.03.2012 11:25
Writeln в TPascal VadEr Помощь студентам 8 13.05.2009 15:12
задачи через writeln и readln MELKOVSKY Паскаль, Turbo Pascal, PascalABC.NET 3 24.01.2008 14:04
writeln (помогите решить несколько задач!) Evgenii Помощь студентам 2 04.01.2008 23:51