Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 16:47   #1
Falkone
 
Регистрация: 16.05.2010
Сообщений: 3
Восклицание нарисуйте алгоритм!

unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Buttons;

type

Vector = array[1..100] of Double;
Matrix = array[1..100] of Vector;

TForm3 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
BitBtn1: TBitBtn;
Button2: TButton;
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var a: Matrix;
b,x: Vector;
h: Double;
i,j,k,n:integer;
begin
//Ввод данных
//Размерность системы
n := StrToInt( edit1.Text);
//Коэффициенты
for j := 0 to n - 1 do
for i := 0 to n - 1 do
a[i + 1, j + 1] := StrToFloat(StringGrid1.Cells[j, i]);
//Правая часть уравнения
for I := 0 to n - 1 do b[i + 1] := StrToFloat(StringGrid2.Cells[0, i]);
//Прямой ход - исключение переменных
for i:=1 to n-1 do
for j:=i+1 to n do
begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b
end;
x[n]:=b[n]/a[n,n];
//Обратный ход - нахождение корней
for i:=n-1 downto 1 do
begin
h:=b;
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x:=h/a[i,i]
end;
//Вывод результата
for i:=1 to n do MEMO1.Lines.Add('x(' + IntToStr(i) + ')=' + FloatToStr(x));
end;

procedure TForm3.Edit1Change(Sender: TObject);
begin

StringGrid1.ColCount:=strtoint(edit 1.Text);
StringGrid1.RowCount:=strtoint(edit 1.Text);
StringGrid2.RowCount:=strtoint(edit 1.Text);

end;

procedure TForm3.Button2Click(Sender: TObject);
begin
close;
end;

end.

Буду очень благодарен!!!
Falkone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нарисуйте алгоритм для этого кода! Falkone Общие вопросы Delphi 0 16.05.2010 16:17
Волновой алгоритм (алгоритм Ли) MrRockchip Общие вопросы C/C++ 4 10.05.2010 13:26
Алгоритм lonevagrant Общие вопросы C/C++ 0 19.01.2010 22:04
Нарисуйте пожалуйста блок-схему лёгкой задачки, не знаю как,очень нужно... prikolist Паскаль, Turbo Pascal, PascalABC.NET 2 28.11.2008 15:27
Нарисуйте блок-схему за деньги cHEg Фриланс 1 25.11.2008 18:15