Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.01 c
1-1138962770
zema
2006-02-03 13:32
2006.03.05
как узнать высоту всплывающего меню?


3-1137068778
начинающий5
2006-01-12 15:26
2006.03.05
Запрос


2-1140249308
drink
2006-02-18 10:55
2006.03.05
Переменная в двух модулях (Unit).


15-1139385308
Mozart
2006-02-08 10:55
2006.03.05
что такое ИМХО!!!


4-1134560930
kami
2005-12-14 14:48
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский