Решение систем линейных уравнений

Автор работы: Пользователь скрыл имя, 10 Февраля 2011 в 19:43, курсовая работа

Описание работы

Основной целью написания этой курсовой работы была разработка программного продукта осуществляющего решение систем линейных уравнений. Для написания программного продукта была выбрана среда программирования Delphi от компании Borland версии 7.

Файлы: 1 файл

Курсовая 1 кан.doc

— 95.00 Кб (Скачать файл)

        if sto2=2 then

        begin

          Label10.Caption:='X1='+(floattostr(x1));

        end;

        if sto2=3 then

        begin

          Label11.Caption:='X2='+(floattostr(x1));

        end;

        if sto2=4 then

        begin

          Label12.Caption:='X3='+(floattostr(x1));

        end;

       

      Результаты  отображаются напротив соответствующего X на форме. 

3. Схема взаимодействия компонентов 
 

 

 

 

 

 
 
 

 
 

Заключение 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Список использованных источников

  1. Гофман В. Э., Хомоненко А. Д., Delphi. Быстрый старт. — СПб.: БХВ-Петербург, 2003. — 288 с: ил
  2. Дарахвелидае П. Г., Марков Е. П., Программирование в Delphi 7. — СПб.: БХВ-Петербург, 2003. — 784 с: ил.
  3. Флеиов М. Е., Профаммирование в Delphi глазами хакера. — СПб.: БХВ-Петербург, 2003. - 368 с: ил.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение  №1

(дискета  с программным  продуктом) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение  №2

(текст  программы на языке  Borland Delphi 7) 

unit Unit1; 

interface 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Grids; 

type

  TForm1 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Edit5: TEdit;

    Edit6: TEdit;

    Edit7: TEdit;

    Edit8: TEdit;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Edit9: TEdit;

    Edit10: TEdit;

    Edit11: TEdit;

    Edit12: TEdit;

    Button1: TButton;

    Button2: TButton;

    StringGrid1: TStringGrid;

    Label10: TLabel;

    Label11: TLabel;

    Label12: TLabel;

    procedure Button2Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1; 
 

implementation 

{$R *.dfm} 

procedure TForm1.Button2Click(Sender: TObject);

begin

  Form1.Close;

end; 

procedure TForm1.FormCreate(Sender: TObject);

var

i,j:integer;

begin

  stringgrid1.Cells[0,0]:=' ';

  stringgrid1.Cells[1,0]:='mi';

  stringgrid1.Cells[2,0]:='X1';

  stringgrid1.Cells[3,0]:='X2';

  stringgrid1.Cells[4,0]:='X3';

  stringgrid1.Cells[5,0]:='b';

  stringgrid1.Cells[6,0]:='E';

  stringgrid1.Cells[7,0]:='E''';

  stringgrid1.Cells[0,1]:='A';

  stringgrid1.Cells[0,2]:='A';

  stringgrid1.Cells[0,3]:='A';

  stringgrid1.Cells[0,4]:='B';

  stringgrid1.Cells[0,5]:='B';

  stringgrid1.Cells[0,6]:='C'; 

  for j:=1 to 6 do

  begin

    for i:=1 to 7 do

    begin

      stringgrid1.Cells[i,j]:='-';

    end;

  end; 

end; 

procedure TForm1.Button1Click(Sender: TObject);

var

i,j,str,sto,str1,sto1,str2,sto2,k:integer;

m,x1,x2,x3:real;

begin

  i:=0;

  j:=0;

  k:=0;

  sto:=0;

  str:=0;

  sto1:=0;

  str1:=0;

  m:=0;

  x1:=0;

  x2:=0;

  x3:=0; 

  stringgrid1.Cells[2,1]:=Edit1.text

  stringgrid1.Cells[3,1]:=Edit2.text;

  stringgrid1.Cells[4,1]:=Edit3.text;

  stringgrid1.Cells[2,2]:=Edit4.text;

  stringgrid1.Cells[3,2]:=Edit5.text;

  stringgrid1.Cells[4,2]:=Edit6.text;

  stringgrid1.Cells[2,3]:=Edit7.text;

  stringgrid1.Cells[3,3]:=Edit8.text;

  stringgrid1.Cells[4,3]:=Edit9.text; 

  stringgrid1.Cells[5,1]:=Edit10.text;

  stringgrid1.Cells[5,2]:=Edit11.text;

  stringgrid1.Cells[5,3]:=Edit12.text; 

  m:=strtofloat(stringgrid1.Cells[2,1]);

  sto:=2;

  str:=1; 

  for j:=1 to 3 do

  begin

    for i:=2 to 4 do

    begin

      if strtofloat(stringgrid1.Cells[i,j])>m then

      begin

        m:=strtofloat(stringgrid1.Cells[i,j]);

        sto:=i;

        str:=j;

      end;           

    end;

  end; 
 

  for j:=1 to 3 do

  begin //заполняет mi и Е (в строках А)

    stringgrid1.Cells[1,j]:=floattostr(-(strtofloat(stringgrid1.Cells[sto,j]))/m);

    stringgrid1.Cells[6,j]:=floattostr((strtofloat(stringgrid1.Cells[2,j]))+(strtofloat(stringgrid1.Cells[3,j]))+(strtofloat(stringgrid1.Cells[4,j]))+(strtofloat(stringgrid1.Cells[5,j])));

  end; 

  k:=0;

  for j:=1 to 3 do

  begin

    for i:=2 to 6 do

    begin

      if (i<>sto) and (j<>str) {strtofloat(stringgrid1.Cells[1,j])<>-1} then

      begin

        k:=k+1;

        if k<=4 then

        begin

          if k=4 then

          begin

            stringgrid1.Cells[7,4]:=floattostr(strtofloat(stringgrid1.Cells[i,str])*strtofloat(stringgrid1.Cells[1,j])+strtofloat(stringgrid1.Cells[i,j]));

          end

          else

          begin

            stringgrid1.Cells[i,4]:=floattostr(strtofloat(stringgrid1.Cells[i,str])*strtofloat(stringgrid1.Cells[1,j])+strtofloat(stringgrid1.Cells[i,j]));

          end;

        end

        else

        begin

          if k=8 then

          begin

            stringgrid1.Cells[7,5]:=floattostr(strtofloat(stringgrid1.Cells[i,str])*strtofloat(stringgrid1.Cells[1,j])+strtofloat(stringgrid1.Cells[i,j]));

          end

          else

          begin

            stringgrid1.Cells[i,5]:=floattostr(strtofloat(stringgrid1.Cells[i,str])*strtofloat(stringgrid1.Cells[1,j])+strtofloat(stringgrid1.Cells[i,j]));

          end;

        end;

      end;                 

    end;

  end; 

  m:=strtofloat(stringgrid1.Cells[2,4]);

  sto1:=2;

  str1:=4; 

  for j:=4 to 5 do

  begin

    for i:=2 to 4 do

    begin

      if stringgrid1.Cells[i,j]<>'-' then

      begin

        if strtofloat(stringgrid1.Cells[i,j])>m then

        begin

          m:=strtofloat(stringgrid1.Cells[i,j]);

          sto1:=i;

          str1:=j;

        end;           

      end;

    end;

  end; 

  stringgrid1.Cells[6,4]:='0';

  stringgrid1.Cells[6,5]:='0';

  for j:=4 to 5 do

  begin

    stringgrid1.Cells[1,j]:=floattostr(-(strtofloat(stringgrid1.Cells[sto1,j]))/m);

    for i:=2 to 5 do

    begin

      if stringgrid1.Cells[i,j]<>'-' then

      begin

        stringgrid1.Cells[6,j]:=floattostr((strtofloat(stringgrid1.Cells[6,j]))+(strtofloat(stringgrid1.Cells[i,j])));

      end;

    end;

  end; 

  k:=0;

  for j:=4 to 5 do

  begin

    for i:=2 to 6 do

    begin

      if (i<>sto) and (j<>str) and (i<>sto1) and (j<>str1) then

      begin

        k:=k+1;

        if k<=3 then

        begin

          if k=3 then

          begin

            stringgrid1.Cells[7,6]:=floattostr(strtofloat(stringgrid1.Cells[i,str1])*strtofloat(stringgrid1.Cells[1,j])+strtofloat(stringgrid1.Cells[i,j]));

          end

          else

          begin

            stringgrid1.Cells[i,6]:=floattostr(strtofloat(stringgrid1.Cells[i,str1])*strtofloat(stringgrid1.Cells[1,j])+strtofloat(stringgrid1.Cells[i,j]));

          end;

        end;

      end;                 

    end;

  end; 

  stringgrid1.Cells[6,6]:='0';

  j:=6;//заполняет Е (в строке С)

  str2:=6;

  k:=0;

  for i:=2 to 5 do

  begin

    if stringgrid1.Cells[i,j]<>'-' then

    begin

      k:=k+1;

      if k=1 then

      begin

        sto2:=i;

      end;

      stringgrid1.Cells[6,j]:=floattostr((strtofloat(stringgrid1.Cells[6,j]))+(strtofloat(stringgrid1.Cells[i,j])));

    end;

  end; 
 

  x1:=(strtofloat(stringgrid1.Cells[5,6]))/(strtofloat(stringgrid1.Cells[sto2,6]));

  if sto2=2 then

  begin

    Label10.Caption:='X1='+(floattostr(x1));

  end;

  if sto2=3 then

Информация о работе Решение систем линейных уравнений