Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Помоги 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.016 c
4-1135073467
davinchi
2005-12-20 13:11
2006.03.12
Как дождаться окончания загрузки Win98


6-1133163165
SergP.
2005-11-28 10:32
2006.03.12
WinInet. Узнать размер контента, принимаемого по http/https


4-1135230725
Сергей_1
2005-12-22 08:52
2006.03.12
Прочитать состояния на COM порте


2-1140700066
VitV
2006-02-23 16:07
2006.03.12
Смена цвета кнопки


15-1139831942
VirEx
2006-02-13 14:59
2006.03.12
настройка почты в User Gate! нужно настроить MS Outlook 2002





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