Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Здравствуйте помогите пожалуйста   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.01 c
3-1136992846
franchuk
2006-01-11 18:20
2006.03.05
передача данных из БД в Microsoft Excel


1-1138963801
tytus
2006-02-03 13:50
2006.03.05
Добрый день ВСЕМ! Как ускорить поиск в списке TList?


1-1138891522
ZbarKiy
2006-02-02 17:45
2006.03.05
Перехват закрытия приложения?


3-1136982771
tytus
2006-01-11 15:32
2006.03.05
ХЕЛППП!!! BDEError Record/Key Deleted


2-1139922518
pound
2006-02-14 16:08
2006.03.05
Помогите с графикой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский