Курсовая

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

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.11.2024





Министерство образования и науки Российской Федерации

Филиал Владивостокского государственного университета

экономики и сервиса в г. Артеме

Кафедра информационных систем и компьютерных технологий

Курсовая работа


по дисциплине: высокоуровневые методы обработки информации и

программирования
тема:     Решение систем линейных уравнений
Выполнил:    студент группы ИПИ-05-01

                      Вербицкий М.С.
Проверил:     ассистент кафедры ИСКТ

                      Кан Н.Э.
Артем 2007
Техническое задание

Общая часть:

1.     Разработать алгоритм решения поставленной задачи, используя методы объектно-ориентированного программирования.

2.     Описать объектную модель поставленной задачи.

3.     Предоставить исходный программный код.

Задание:

Написать программу осуществляющую решение систем линейных уравнений.
Содержание

Введение........................................................................................................... 4

1.. Среда программирования........................................................................... 5

2.. Разработка программного продукта........................................................... 7

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

Заключение.........................................................................................................

Список литературы............................................................................................

Приложение №1 (дискета с программным продуктом)………………………..

Приложение №2 (текст программы на языке Borland Delphi 7)……………….
Введение

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




1. Среда программирования

MS-Windows предоставляет пользователям оболочку графического интерфейса (GUI), которая обеспечивает стандартную среду пользователя и программиста. (GUI) предлагает более сложное и дружелюбное окружение пользователя, чем командно-управляемый интерфейс DOS. Работа в Windows основана на интуитивно понятных принципах. Вам легко переключиться с задачи на задачу и осуществлять обмен информацией между ними. Однако разработчики приложений традиционно сталкиваются с трудностями программирования, поскольку организация среды Windows является чрезвычайно сложной.

Delphi - язык и среда программирования, относящаяся к классу RAD- (Rapid Application Development ‑ “Средство быстрой разработки приложений”) средств CASE - технологии. Delphi сделала разработку мощных приложений Windows быстрым процессом, доставляющим вам удовольствие. Приложения Windows, для создания которых требовалось большое количество человеческих усилий например в С++, теперь могут быть написаны одним человеком, использующим Delphi.

Интерфейс Windows обеспечивает полное перенесение CASE-технологий в интегрированную систему поддержки работ по созданию прикладной системы на всех фазах жизненного цикла работы и проектирования системы.

Delphi обладает широким набором возможностей, начиная от проектировщика форм и кончая поддержкой всех форматов популярных баз данных. Среда устраняет необходимость программировать такие компоненты Windows общего назначения, как метки, пиктограммы и даже диалоговые панели. Работая вы неоднократно видели одинаковые “объекты” во многих разнообразных приложениях. Диалоговые панели (например Choose File и Save File) являются примерами многократно используемых компонентов, встроенных непосредственно в Delphi, который позволяет приспособить эти компоненты к имеющийся задаче, чтобы они работали именно так, как требуется создаваемому приложению. Также здесь имеются предварительно определенные визуальные и невизуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно, например, обеспечить ввод данных просто несколькими нажатиями кнопок мыши, не прибегая к программированию. Это наглядная реализация применений CASE-технологий в современном программировании приложений. Та часть, которая непосредственно связана с программированием интерфейса пользователя системой получила название визуальное программирование

Выгоды от проектирования АРМ в среде Windows с помощью Delphi:

*                    Устраняется необходимость в повторном вводе данных;

*                    Обеспечивается согласованность проекта и его реализации;

*                    Увеличивается производительность разработки и переносимость программ.

Визуальное программирование как бы добавляет новое измерение при создании создании приложений, давая возможность изображать эти объекты на экране монитора до выполнения самой программы. Без визуального программирования процесс отображения требует написания фрагмента кода, создающего и настрающего объект “по месту”. Увидеть закодированные объекты было возможно только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели себя заданным образом, становится утомительным процессом, который требует неоднократных исправлений программного кода с последующей прогонкой программы и наблюдения за тем, что в итоге получилось.

Благодаря средствам визуальной разработки можно работать с объектами, держа их перед глазами и получая результаты практически сразу. Способность видеть объекты такими, какими они появляются в ходе исполнения программы, снимает необходимость проведения множества операций вручную, что характерно для работы в среде не обладающей визуальными средствами — вне зависимости от того, является она объектно-ориентированной или нет. После того, как объект помещен в форму среды визуального программирования, все его атрибуты сразу отображаются в виде кода, который соответствует объекту как единице, исполняемой в ходе работы программы.

Размещение объектов в Delphi связано с более тесными отношениями между объектами и реальным программным кодом. Объекты помещаются в вашу форму, при этом код, отвечающий объектам, автоматически записывается в исходный файл. Этот код компилируется, обеспечивая существенно более высокую производительность, чем визуальная среда, которая интерпретирует информацию лишь в ходе исполнения программы.


2. Разработка программного продукта

Объектно-ориентированное программирование имеет одно неоспоримое преимущество: способ создания программы путем “сбора ее по кусочкам” очень прост и нагляден. Чтобы использовать объект, достаточно перетащить его на форму и с ним уже можно работать. Визуальный интерфейс прост в освоении, к тому же среда сама создает “скелет” будущего программного продукта, освобождая программиста от необходимости писать все вручную, чем очень упрощает работу. Прежде чем начать писать программу необходимо разместить на форме все компоненты (объекты), которые собираемся использовать и представить приблизительный алгоритм ее работы.  Алгоритм работы следующий.

 Программа производит расчет наиболее простым способом, а использование таблицы, показывающей промежуточные результаты, делает его более наглядным.

При запуске программы первым делом происходит создание формы со всем что на ней находится (FormCreate), создание и заполнение таблицы (пустые ячейки заполняются символом “-”)
procedure TForm1.FormCreate(Sender: TObject);

var

i,j:integer;

begin

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

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

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

 

  for j:=1 to 6 do

  begin

    for i:=1 to 7 do

    begin

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

    end;

  end;

end;
При нажатии кнопки “Выход” – происходит выход из программы (закрытие формы)
procedure TForm1.Button2Click(Sender: TObject);

begin

  Form1.Close;

end;
Далее следует заполнить соответствующие поля числами. После нажатии кнопки “Считать” происходит зануление используемых переменных, заполнение расчет и заполнение таблицы:

procedure TForm1.Button1Click(Sender: TObject);

var



begin

  i:=0;

  j:=0;

  k:=0;

  sto:=0;

  str:=0;

  sto1:=0;

  str1:=0;

  m:=0;

  x1:=0;

  x2:=0;

  x3:=0;


Заполнение таблицы происходит в несколько этапов (хотя пользователь получает результат почти мгновенно).

1)сначала в таблицу вносятся введенные ранее числа (строки А) и находится наибольшее:
  stringgrid1.Cells[2,1]:=Edit1.text;

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

 

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

 

  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;
2)Заполняет mi и Е в строках А:
  for j:=1 to 3 do

  begin

    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;
3)После соответствующих вычислений заполняются строки В:
  for j:=1 to 3 do

  begin

    for i:=2 to 6 do

    begin

      if (i<>sto) and (j<>str) 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


4)Аналогичным методом из значений строк В находится строка С.

5)После этого происходит вычисление X1, X2, X3. В зависимости от того какой X вычисляется первым, программа определяет способ нахождения остальных X:
  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

  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

  begin

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

  end;

  if sto2=4 then

  begin

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

  end;
  x2:=((strtofloat(stringgrid1.Cells[5,str1]))-x1*(strtofloat(stringgrid1.Cells[sto2,str1])))/(strtofloat(stringgrid1.Cells[sto1,str1]));

  if sto1=2 then

  begin

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

  end;

  if sto1=3 then

  begin

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

  end;

  if sto1=4 then

  begin

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

  end;
  x3:=((strtofloat(stringgrid1.Cells[5,str]))-x1*(strtofloat(stringgrid1.Cells[sto2,str]))-x2*(strtofloat(stringgrid1.Cells[sto1,str])))/(strtofloat(stringgrid1.Cells[sto,str]));

  if sto=2 then

  begin

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

  end;

  if sto=3 then

  begin

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

  end;

  if sto=4 then

  begin

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

  end;
end;
end.

1. Реферат на тему Життєвий та творчий шлях М М Коцюбинського
2. Доклад на тему Методы анализа производственного травматизма
3. Реферат на тему Night And Eliezer Essay Research Paper Eliezer
4. Реферат Від соціального стану до соціальної дії
5. Курсовая на тему Предпринимательство формы и методы организации предпринимательства
6. Реферат на тему Heart Of Darkness Essay Research Paper It
7. Реферат Процедура банкротства предприятий
8. Реферат на тему Ламинария сахарная ламинария сахаристая
9. Курсовая Психологическая безопасность образовательной среды
10. Реферат Монополия 4