Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Модуль ввода данных

Лабораторная работа №3 | Лабораторная работа №4 | Лабораторная работа №5 | Лабораторная работа №6 | Класс линейных дифуравнений с постоянными коэффициентами | Форма основной программы | Модуль основной программы | Форма ввода данных | Заголовочный файл инициализационного модуля | Файл проекта |


Читайте также:
  1. II. После выполнения данных упражнений составляется список целей.
  2. III. МОДУЛЬ (25 ЗАДАЧ ПО ДИСЦИПЛИНАМ ПРОФЕССИОНАЛЬНОГО ЦИКЛА ООП)
  3. III. МОДУЛЬ (25 ЗАДАЧ ПО ДИСЦИПЛИНАМ ПРОФЕССИОНАЛЬНОГО ЦИКЛА ООП)
  4. VI Ответственность сторон, регулирующих отношения на основе данных Правил
  5. Анализ данных для отбора подходящих скважин
  6. Анализ достаточности и достоверности данных
  7. Анализ оперативных данных испытаний

//INPUTD.PAS

 

 

unit InputD;

 

interface

 

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, StdCtrls, Buttons,T_Vector,math;

type

TForm2 = class(TForm)

StaticText1: TStaticText;

StaticText2: TStaticText;

StaticText3: TStaticText;

StaticText4: TStaticText;

StaticText5: TStaticText;

StaticText6: TStaticText;

StaticText7: TStaticText;

StaticText8: TStaticText;

StaticText10: TStaticText;

StaticText11: TStaticText;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit9: TEdit;

kzTime: TEdit;

BitBtn1: TBitBtn;

Bevel1: TBevel;

StaticText9: TStaticText;

StaticText12: TStaticText;

StepTime: TEdit;

Koefz: TEdit;

StaticText13: TStaticText;

Edit8: TEdit;

procedure BitBtn1Click(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

Procedure DelSpace (var s:string); Far;

var

Form2: TForm2;

vrng,vsc,vrngr,errc,vDerNum:integer;

vcfn,vcfnr,vnusl:TVector;

vfreq,vcufz,vsexp:real;

vKos,vTend,vStepTime:real;

implementation

 

{$R *.DFM}

 

Procedure DelSpace (var s:string);

var i:integer;

begin

i:=1;

repeat

if s[i] = ' ' then begin delete(s,i,1);

i:=i-1;

end;

i:=i+1;

until i>length(s);

end;

 

procedure TForm2.BitBtn1Click(Sender: TObject);

var i,j,k:integer;

temp:string;

 

begin

errc:= 0;

temp:=edit1.Text;

DelSpace(temp);

edit1.Text:=temp;

 

temp:=edit4.Text;

DelSpace(temp);

edit4.Text:=temp;

 

temp:=StepTime.Text;

DelSpace(temp);

StepTime.Text:=temp;

 

temp:=kzTime.Text;

DelSpace(temp);

kzTime.Text:=temp;

 

temp:=Koefz.Text;

DelSpace(temp);

Koefz.Text:=temp;

 

temp:=edit8.Text;

DelSpace(temp);

edit8.Text:=temp;

 

 

vrng:=strtoint(edit1.Text);

vrngr:=strtoint(edit4.Text);

vTend:=strtoint(kzTime.Text);

vStepTime:=strtoint(StepTime.Text);

vKos:=strtoint(Koefz.text);

vDerNum:=strtoint(edit8.text);

vsc:=floor(vTend/vSteptime);

vcfn:=TVector.VCreate(vrng+1);

vcfnr:=TVector.VCreate(vrngr+1);

vnusl:=TVector.VCreate(vrng);

 

if vsc<=50 then begin

MessageBox('Мало шагов решения');

inc(errc);

exit;

end;

 

if vrng<=0 then begin

MessageBox('Нулевой порядок уравнения');

inc(errc);exit;

end;

 

if vrngr<0 then begin

MessageBox('Некорректен код порядка справа');

inc(errc);exit;

end;

 

if vTend<=0 then begin

MessageBox('Ошибочно конечное значение аргумента');

inc(errc);exit;

end;

 

if vStepTime<=0 then begin

MessageBox('Ошибочен шаг по аргументу');

inc(errc);exit;

end;

 

if vrngr>vrng then begin

MessageBox('Порядок справа больше чем слева');

inc(errc);exit;

end;

 

if (vDerNum<0) or (vDerNum>(vrng-1)) then begin

MessageBox('Не корректен порядок производной');

inc(errc);exit;

end;

 

j:=1;

edit2.Text:=edit2.Text+' '+#33+' ';

i:=0;

while copy(edit2.Text,j,1) = ' ' do j:=j+1;

repeat

k:=j;

while copy(edit2.Text,j,1)<>' ' do j:=j+1;

if copy(edit2.Text,k,j-k) = #33 then break;

vcfn.Vector[i]:=strtofloat(copy(edit2.Text,k,j-k));

while copy(edit2.Text,j,1) = ' ' do j:=j+1;

inc(i);

until false;

temp:=edit2.text;

delete (temp,j-1,length(temp)-j+2);

edit2.text:=temp;

if ((i-1) <> vrng) or (vcfn.Vector[0]=0) then begin

MessageBox('Кол-во коэффициентов не соответствует '+#13+'порядку уравнения слева');

inc(errc);exit;

end;

if vrngr >= 0 then begin

j:=1;

edit5.Text:=edit5.Text+' '+#33+' ';

i:=0;

while copy(edit2.Text,j,1) = ' ' do j:=j+1;

repeat

k:=j;

while copy(edit5.Text,j,1)<>' ' do j:=j+1;

if copy(edit5.Text,k,j-k) = #33 then break;

vcfnr.Vector[i]:=strtofloat(copy(edit5.Text,k,j-k));

while copy(edit5.Text,j,1) = ' ' do j:=j+1;

inc(i);

until false;

temp:=edit5.text;

delete (temp,j-1,length(temp)-j+2);

edit5.text:=temp;

if ((i-1) <> vrngr) or (vcfnr.Vector[0]=0) then begin

MessageBox('Кол-во коэффициентов не соответствует '+#13+'порядку уравнения справа');

inc(errc);exit;

end;

end;

 

j:=1;

edit3.Text:=edit3.Text+' '+#33+' ';

i:=0;

while copy(edit2.Text,j,1) = ' ' do j:=j+1;

repeat

k:=j;

while copy(edit3.Text,j,1)<>' ' do j:=j+1;

if copy(edit3.Text,k,j-k) = #33 then break;

vnusl.Vector[i]:=strtofloat(copy(edit3.Text,k,j-k));

while copy(edit3.Text,j,1) = ' ' do j:=j+1;

inc(i);

until i=vrng;

temp:=edit3.text;

delete (temp,j-1,length(temp)-j+2);

edit3.text:=temp;

if i <> vrng then begin

MessageBox('Количество начальных условий не соответствует '+#13+'порядку уравнения слева');

inc(errc);exit;

end;

 

temp:=edit6.Text;

DelSpace(temp);

edit6.Text:=temp;

 

temp:=edit7.Text;

DelSpace(temp);

edit7.Text:=temp;

 

temp:=edit9.Text;

DelSpace(temp);

edit9.Text:=temp;

 

vfreq:=strtofloat(edit6.Text);

vsexp:=strtofloat(edit7.Text);

vcufz:=strtofloat(edit9.Text);

 

if errc = 0 then form2.close;

end;

 

end.

 


Дата добавления: 2015-07-25; просмотров: 38 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Форма ввода данных| Форма основной программы

mybiblioteka.su - 2015-2024 год. (0.009 сек.)