Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.05.2011, 20:20   #1 (permalink)
Raya91
Новичок
 
Регистрация: 25.05.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Описание программы, Delphi

Совсем не шарю в Delphi(да и в программировании вообще),а в институте дали задание,описать что обозначает каждая строчка[компонент] в программе.
Программа:вычисления таблицы значений функции Y=f(X,AB) , построение графика, при заданных значениях аргумента Х и параметра А. Параметр В принимает значение, численно равное корню нелинейного уравнения.Входные данные:
Xn – начальное значение аргумента Х
Dx – шаг изменения аргумента Х
N - значений параметра, изменяемого от значения An с шагом Da
An - начальное значение параметра А
Ak – конечное значение параметра А
Da – шаг изменения параметра А
В – параметр, принимающий значение, равное корню нелинейного уравнения
Главная функция:
F:=A*B*(sin(x)*sin(x))/sqrt(x);
Код:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Chart1: TChart;
    Edit7: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label9: TLabel;
    Label10: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit6Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function FB(x,e:real):real;
var
 x0:real;
begin
 repeat
  x0:=x;
  x:=sqrt(2-exp(-x0));
 until(abs(x-x0)<e);
 FB:=x;
end;

function F(x,A,B:real):real;
begin
 F:=A*B*(sin(x)*sin(x))/sqrt(x);
end;

{procedure Tab(Xn,Dx:real; N,j:integer; B:real; A:mas1);
var
 i:integer;
 X,Y:real;
begin
 X:=Xn;
begin
 for i:=j to (N+j) do
 begin
 if (x<=0) then
 begin
 StringGrid2.Cells[1,i]:=FloatToStrF(x,fffixed,4,2);
 StringGrid2.Cells[2,i]:=FloatToStrF(A[i],fffixed,4,2);
 StringGrid2.Cells[3,i]:='Ошибка';
 end
 else
 begin
 Y:=F(X,A[i],B);
 StringGrid2.Cells[1,i]:=FloatToStrF(x,fffixed,4,2);
 StringGrid2.Cells[2,i]:=FloatToStrF(A[i],fffixed,4,2);
 StringGrid2.Cells[3,i]:=FloatToStrF(Y,fffixed,9,7);
 end;
end;
end;}

procedure TForm1.Button1Click(Sender: TObject);
const
 Nmax=20;
type
 mas1=array[1..Nmax] of extended;
var
 N,i,j,l,k:integer;
 Xn,Xk,Dx,B,x,y,e:real;
 A:mas1;
begin
for i:=0 to (StrToInt(Edit6.Text)-1) do
begin
 Form1.Chart1.Series[i].Active:=True;
end;
 x:=StrToFloat(Edit1.Text);
 e:=StrToFloat(Edit2.Text);
 Xn:=StrToFloat(Edit3.Text);
 Xk:=StrToFloat(Edit4.Text);
 Dx:=StrToFloat(Edit5.Text);
 N:=StrToInt(Edit6.Text);
 for i:=1 to N do
 begin
  A[i]:=StrToFloat(StringGrid1.Cells[1,i]);
 end;
 l:=Trunc((Xk-Xn)/Dx+1);
 StringGrid2.RowCount:=(l*N+1);
 StringGrid2.Cells[0,0]:='№';
 StringGrid2.Cells[1,0]:='X';
 StringGrid2.Cells[2,0]:='A[i]';
 StringGrid2.Cells[3,0]:='Y';
 for i:=1 to (l*N+1) do
  StringGrid2.Cells[0,i]:=IntToStr(i);
 B:=FB(x,e);
 Edit7.Text:=FloatToStrF(B,fffixed,10,7);
 k:=1;

begin
for i:=1 to N do
begin
Xn:=StrToFloat(Edit3.Text);
for j:=1 to l+1 do
begin
 X:=Xn;
begin
 if (x<=0) then
  begin
   StringGrid2.Cells[1,k]:=FloatToStrF(x,fffixed,4,2);
   StringGrid2.Cells[2,k]:=FloatToStrF(A[i],fffixed,4,2);
   StringGrid2.Cells[3,k]:='Ошибка';
   k:=k+1;
  end
 else
  begin
   Y:=F(X,A[i],B);
   StringGrid2.Cells[1,k]:=FloatToStrF(x,fffixed,4,2);
   StringGrid2.Cells[2,k]:=FloatToStrF(A[i],fffixed,4,2);
   StringGrid2.Cells[3,k]:=FloatToStrF(Y,fffixed,9,7);
   Form1.Chart1.Series[i-1].AddXY(x,y);
   k:=k+1;
  end;
end;
Xn:=Xn+Dx;
end;
end;
end;
end;

procedure TForm1.Edit6Change(Sender: TObject);
var
 k,i:integer;
begin
 StringGrid1.Cells[0,0]:='№';
 StringGrid1.Cells[1,0]:='А';
 k:=StrToInt(Edit6.Text);
 StringGrid1.RowCount:=(k+1);
for i:=1 to k do
begin
 StringGrid1.Cells[0,i]:=IntToStr(i);
 Form1.Chart1.AddSeries(TLineSeries.Create(Self));
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 i:integer;
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit7.Text:='';
 StringGrid1.Cells[0,0]:='';
 StringGrid1.Cells[1,0]:='';
 StringGrid1.RowCount:=(3);
for i:=1 to 3 do
begin
 StringGrid1.Cells[0,i]:='';
 StringGrid1.Cells[1,i]:='';
 StringGrid1.Cells[2,i]:='';
end;

StringGrid2.RowCount:=(5);
for i:=1 to 5 do
begin
 StringGrid2.Cells[0,i]:='';
 StringGrid2.Cells[1,i]:='';
 StringGrid2.Cells[2,i]:='';
 StringGrid2.Cells[3,i]:='';
 StringGrid2.Cells[4,i]:='';
end;

StringGrid2.Cells[0,0]:='';
StringGrid2.Cells[1,0]:='';
StringGrid2.Cells[2,0]:='';
StringGrid2.Cells[3,0]:='';

for i:=0 to (StrToInt(Edit6.Text)-1) do
begin
 Form1.Chart1.Series[i].Clear;
 Form1.Chart1.Series[i].Active:=False;
end;
end;

end.
Прошу,помогите кто чем может!!!(
Raya91 вне форума   Ответить с цитированием

Старый 25.05.2011, 20:20
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В решении проблемы вам так же могут помочь аналогичные обсуждения

Дайте, пожалуйста, описание внутреннего устройства SATA HDD для ноутбука
Описание платы
Создание программы в Delphi 7 или TurboPascal

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:27.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.