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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 22:24   #1
dima1257
Пользователь
 
Аватар для dima1257
 
Регистрация: 16.11.2012
Сообщений: 66
По умолчанию массивы. delphi. симплекс-метод. нахождение дельта.

имеем массивы csv[i], x[i,j], c[i].

csv[i]= [60][0]

x[i,j]= [0,5][1][0,2][0]
[2,5][0][ -2][1]

c[i]= [16][60][0][0]

необходимо найти значения delta[i] по такой системе

deita[0]:= (csv[0] * x[0,0]) + (csv[1] * x[0,1]) - c[0];
delta[0]:= (60 * 0,5) + (0 * 2,5) - 16 = 14;

delta[1]:= (csv[0] * x[1,0]) + (csv[1] * x[1,1]) - c[1];
delta[1]:= (60 * 1 ) + ( 0 * 0) - 60 = 0;

delta[2]:= (csv[0] * x[2,0]) + (csv[1] * x[2,1]) - c[2];
delta[2]:= (60 * 0,2) +( 0 * (-2) ) -0 =12;

delta[3]:= (csv[0] * x[3,0]) + (csv[1] * x[3,1]) - c[3];
delta[3]:= ( 60 * 0 ) + ( 0 * 0) -0 =0;

в результате в массиве delta значения должны быть такими.

delta[i]=[14][0][12][0]



p.s.: по сути тут ничего сложного, но мне не хватает "толчка" чтоб это решить.
Выдержка из правил форума: Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.

Последний раз редактировалось dima1257; 11.12.2012 в 22:39.
dima1257 вне форума Ответить с цитированием
Старый 12.12.2012, 04:42   #2
dima1257
Пользователь
 
Аватар для dima1257
 
Регистрация: 16.11.2012
Сообщений: 66
По умолчанию

а я сам догадался.смотрите кому интересно))
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    StringGrid2: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    StringGrid3: TStringGrid;
    Label3: TLabel;
    StringGrid4: TStringGrid;
    Label4: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    StringGrid7: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  massX, xz: array of array of double;
  massCSV, massC, delta, x1, x2: array of double;
  i, j, x: integer;
  omg: double;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=0 to x+(x-1) do
begin
  for j:=0 to x-1 do
  begin
    StringGrid1.cells[i,j]:= FloatToStr(massX[i,j]);
  end;

for i:=0 to x-1 do
begin
  StringGrid2.Cells[i,0]:=FloatToStr(massCSV[i]);
end;

for i:=0 to x+(x-1) do
begin
  StringGrid3.cells[i,0]:= FloatToStr(massC[i]);
end;

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

setLength(massX, 10, 10);
setLength(xz, 10, 10);

setLength(massCSV, 10);
setLength(massC, 10);
setLength(delta, 10);
setLength(x1, 10);
setLength(x2, 10);

StringGrid1.RowCount:= 2;
StringGrid1.ColCount:= 4;

StringGrid1.Cells[0,0] := '0,5';
StringGrid1.Cells[1,0] := '1';
StringGrid1.Cells[2,0] := '0,2';
StringGrid1.Cells[3,0] := '0';

StringGrid1.Cells[0,1] := '2,5';
StringGrid1.Cells[1,1] := '0';
StringGrid1.Cells[2,1] := '-2';
StringGrid1.Cells[3,1] := '1';
//##################################

StringGrid2.RowCount:= 2;
StringGrid2.ColCount:= 0;
StringGrid2.Cells[0,0] := '60';
StringGrid2.Cells[0,1] := '0';

//##################################

StringGrid3.RowCount:= 0;
StringGrid3.ColCount:= 4;
StringGrid3.Cells[0,0] := '16';
StringGrid3.Cells[1,0] := '60';
StringGrid3.Cells[2,0] := '0';
StringGrid3.Cells[3,0] := '0';

StringGrid4.RowCount:= 0;
StringGrid4.ColCount:= 4;

StringGrid7.RowCount:= 2;
StringGrid7.ColCount:= 4;

x:=2;

for i:=0 to x+(x-1) do
begin
  for j:=0 to x-1 do
  begin
  massX[i,j]:=StrToFloat(StringGrid1.cells[i,j]);
  end;
end;

for i:=0 to x-1 do
begin
  massCSV[i]:=StrToFloat(StringGrid2.Cells[0,i]);
end;

for i:=0 to x+(x-1) do
begin
  massC[i]:=StrToFloat(StringGrid3.cells[i,0]);
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
for i:= 0 to x+(x-1) do
begin
  for j:=0 to x-1 do
  begin
    xz[i, j]:= massCSV[j] * massX[i,j];
  end;
end;

for i:= 0 to x+(x-1) do
begin
  for j:=0 to x-1 do
  begin
    StringGrid7.Cells[i,j]:= FloatToStr(xz[i, j]);
  end;
end;

omg:=0;
for i:=0 to x+(x-1) do
begin
  for j:= 0 to x-1 do
  begin
  omg:= omg + xz[i,j];
  end;
  delta[i]:=omg - massC[i];
  omg:=0;
end;

for i:=0 to x+(x-1) do
begin
  StringGrid4.Cells[i, 0]:= FloatToStr(delta[i]);
end;


end;

end.
интересно... правильное решение комне приходит в 4-5ч утра))) мб бури магнитные утихают)))
Выдержка из правил форума: Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.

Последний раз редактировалось dima1257; 12.12.2012 в 04:49.
dima1257 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Симплекс метод Delphi исходник rpy3uH Общие вопросы Delphi 39 31.10.2017 17:15
Симплекс метод.Delphi Дед Помощь студентам 21 04.06.2012 04:49
Delphi+ симплекс-метод Studento4ka Общие вопросы Delphi 2 27.04.2010 10:25