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

Вниз

Помоги gj;fkeqcnf Freeker   Найти похожие ветки 

 
VanDet ©   (2006-02-20 10:43) [0]

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}
9
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); {Присвоение I ,в строковом виде к Cells[ColCount-I-1, 0]}
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

10

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;
11

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
12

 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.


 
Amoeba ©   (2006-02-20 16:13) [1]

Ну, и в чем, собственно, проблема?


 
clickmaker ©   (2006-02-20 17:11) [2]

gj;fkeqcnf Freeker наверно в отпуске...


 
Гаврила ©   (2006-02-20 17:19) [3]

"gj;fkeqcnf" переводится как "пожалуйста"



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.012 c
2-1141027882
veb
2006-02-27 11:11
2006.03.12
Delphi.NET


2-1140779871
Saveliy
2006-02-24 14:17
2006.03.12
Соединение с интернетом


15-1140089165
wiki
2006-02-16 14:26
2006.03.12
c# и линукс


4-1134982464
Chaser
2005-12-19 11:54
2006.03.12
При закрытии программы - минимизация в трей


15-1140096437
DELORAC
2006-02-16 16:27
2006.03.12
Защита программы!





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