Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
ВнизЗдравствуйте помогите пожалуйста Найти похожие ветки
← →
Vandet © (2006-02-18 11:31) [0]Привет мастера Delphi, я сам сделал задачу - "Дан многочлен Р(х) степени N, действительные числа s и t. Получить многочлен (sх2+t)Р’(х), где Р’(х) – производная многочлена Р(х)."
Но не могу сделать для этой задачи блок схему , помогите пожалуйста!!!!
Заранее благодарен.
А вот и мой код задачи по которому нужно создать блок схему:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Spin, ExtCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
SpinEdit1: TSpinEdit;
StringGrid1: TStringGrid;
Panel1: TPanel;
Panel2: TPanel;
Panel5: TPanel;
Panel4: TPanel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Label4: TLabel;
Edit1: TEdit;
Label5: TLabel;
Edit2: TEdit;
procedure FormShow(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
{Объявление типа члена и указателя на него}
PX = ^TX;
TX = record
K: Real; {коэффициент преред X}
P: Integer; {Степень X}
next: PX; {Указатель на следующий член}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormShow(Sender: TObject);
begin
Application.MessageBox ("Выполнил студент ОмГТУ,факультета АСОИиУ группы АС-115,Тихонов И.Ю.,Проверил Цыганенко В. Н.,Задача 4");
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
Var
I: Integer;
begin
With StringGrid1 do
Begin
ColCount := SpinEdit1.Value + 2;
For I:=0 to SpinEdit1.Value do
Begin
Cells[ColCount-I-1, 0]:=IntToStr(I);
If Cells[ColCount-I-1, 1] = ""
Then
Cells[ColCount-I-1, 1] := "0";
End;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1Change (Sender);
With StringGrid1 do
Begin
ColWidths[0]:=50;
Cells[0,0]:="Степень";
Cells[0,1]:="Коэфф.";
End;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
P, {многочлен P(x)}
Q {Многочлен (sx+t)P(x)+P"(x)}
: PX;
I: Integer;
K: Real;
S, T: Real;
{Добавляем к многочлену член степени P с коэффициентом K}
procedure Add (var Q: PX; K: Real; P: Integer);
var
W, R: PX;
begin
{If K = 0 Then Exit;}
if Q <> nil then
begin
W:=Q;
{Ищем член со степенью P}
While (W.next <> nil) and (W.next.P >= P) do
W:=W.next;
{если найден член степени P}
If W.P = P Then
Begin
{Увеличиваем значение коэффициента}
W.K:=W.K + K;
end else
Begin
R:=W.next;
New(W.next);
W:=W.next;
W.K:=K;
W.P:=P;
W.next:=R;
End;
end else
begin
{Создаём первый элемент многочлена}
New(Q);
Q.K:=K;
Q.P:=P;
Q.next:=nil;
end;
end;
{построение записи многочлена}
function PRecord (Q: PX): String;
Var
K: Real;
P: Integer;
S: String;
Begin
S:="";
While Q <> nil do
begin
K:=Q.K;
P:=Q.P;
f K <> 0 Then
Begin
If K < 0 Then
S:=S + " - " else
If (K > 0) and (S <> "") Then
S:=S + " + ";
If (Abs(K) <> 1) or (P = 0) Then
S:=S + FloatToStr (Abs(K));
If P > 0 Then
Begin
S:=S + "x";
If P > 1 Then
S:=S + "^" + IntToStr(P);
End;
end;
Q:=Q.next;
end;
If S = "" Then
S:="0";
PRecord:=S;
end;
begin
P:=nil;
Q:=nil;
Add (P, 0, SpinEdit1.Value+1);
Add (P, 0, SpinEdit1.Value+1);
S:=StrToFloat (Edit1.Text);
T:=StrToFloat (Edit2.Text);
{Получаем многочлены P и Q}
With StringGrid1 do
Begin
For I: =0 to ColCount-2 do
Begin
K:=StrToFloat(Cells[ColCount-I-1, 1]);
Add (P, K, I);
Add (Q, S*K, I+1);
Add (Q, T*K, I);
Add (Q, I*K, I-1);
End;
End;
Label2.Caption:=PRecord(P);
Label3.Caption:=PRecord(Q);
end;
end.
← →
Desdechado © (2006-02-18 15:30) [1]1. тема не оформлена
2. понятия "блок-схема" не существует уже лет 15
3. схема алгоритма представляет собой последовательность и взаимозависимость действий в нем. Еслои код написан собственноручно, то схема алгоритма рисуется за 2 минуты.
← →
Галинка © (2006-02-18 15:36) [2]ели не жаль, пришли проект. Помогу.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c