Автор работы: Пользователь скрыл имя, 13 Июня 2013 в 19:21, курсовая работа
Данная программа писалась на языке Delphi в бесплатной среде Lazarus. Lazarus — свободная среда разработки программного обеспечения для компилятора Free Pascal (часто используется сокращение FPC— свободно распространяемый компилятор языка программирования Pascal) на языке Object Pascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении. На данный момент является единственным инструментом быстрой разработки приложений (RAD), позволяющим Delphi-программистам создавать приложения с графическим интерфейсом для Linux (и других не-Windows) систем.
Позволяет достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows, Android. Начиная с Delphi XE2 в самом Delphi имеется возможность компиляции программ для Mac OS X и iOS.
1. Введение 3
2. Содержательная часть 4
2.1. История 4
2.2. Описание метода 4
2.3. Условие совместности 5
3. Практическая часть. 6
3.1. Постановка задачи 6
3.2. Методы решения линейных уравнений 6
3.3. Руководство пользователя 7
3.4. Листинг 9
4. Заключение 17
5. Список литературы 18
ipz2:=pz1*(-px2/px1)+pz2;
ipo2:=po1*(-px2/px1)+po2;
ipx3:=px1*(-px3/px1)+px3;
ipy3:=py1*(-px3/px1)+py3;
ipz3:=pz1*(-px3/px1)+pz3;
ipo3:=po1*(-px3/px1)+po3;
if ipy2=0 then showmessage ('Нет решений! Проверьте систему уравнений!') else
begin
kipy3:=ipy2*(-ipy3/ipy2)+ipy3;
kipz3:=ipz2*(-ipy3/ipy2)+ipz3;
kipo3:=ipo2*(-ipy3/ipy2)+ipo3;
end;
end;
if px1=0 then VX1:='' else // Вывод на экран уравнений
if px1=1 then VX1:=''+'X' else
if px1=-1 then VX1:=''+'-X' else
begin
if px1>0 then VX1:=''+IntToStr(px1)+'X' else VX1:=IntToStr(px1)+'X';
end;
if py1=0 then VY1:='' else
if py1=1 then if px1=0 then VY1:=''+'Y' else VY1:=''+'+Y' else
if py1=-1 then VY1:='-Y' else
begin
if py1>0 then
begin
if px1=0 then VY1:=''+IntToStr(py1)+'Y' else VY1:='+'+IntToStr(py1)+'Y';
end else VY1:=IntToStr(py1)+'Y';
end;
if pz1=0 then VZ1:='' else
begin
if pz1>0 then
if pz1=1 then if px1=0 then if py1=0 then VZ1:=''+'Z' else VZ1:=''+'+Z' else VZ1:=''+'+Z' else
if pz1=-1 then VZ1:='-Z' else
begin
if px1=0 then
if py1=0 then Vz1:=IntToStr(pz1)+'Z'
else Vz1:='+'+IntToStr(pz1)+'Z'
else Vz1:='+'+IntToStr(pz1)+'Z';
end else VZ1:=IntToStr(pz1)+'Z';
end;
if px2=0 then VX2:='' else
if px2=1 then VX2:=''+'X' else
if px2=-1 then VX2:='-X' else
begin
if px2>0 then VX2:=''+IntToStr(px2)+'X' else VX2:=IntToStr(px2)+'X';
end;
if py2=0 then VY2:='' else
if py2=1 then if px2=0 then VY2:=''+'Y' else VY2:=''+'+Y' else
if py2=-1 then VY2:='-Y' else
begin
if py2>0 then
begin
if px2=0 then VY2:=''+IntToStr(py2)+'Y' else VY2:='+'+IntToStr(py2)+'Y';
end else VY2:=IntToStr(py2)+'Y';
end;
if pz2=0 then VZ2:='' else
if pz2=1 then if px2=0 then if py2=0 then VZ2:=''+'Z' else VZ2:=''+'+Z' else VZ2:=''+'+Z' else
if pz2=-1 then VZ2:='-Z' else
begin
if pz2>0 then
begin
if px2=0 then
if py2=0 then Vz2:=IntToStr(pz2)+'Z'
else Vz2:='+'+IntToStr(pz2)+'Z'
else Vz2:='+'+IntToStr(pz2)+'Z';
end else VZ2:=IntToStr(pz2)+'Z';
end;
if px3=0 then VX3:='' else
if px3=1 then VX3:=''+'X' else
if px3=-1 then VX3:='-X' else
begin
if px3>1 then VX3:=''+IntToStr(px3)+'X' else VX3:=IntToStr(px3)+'X';
end;
if py3=0 then VY3:='' else
if py3=1 then if px3=0 then VY3:=''+'Y' else VY3:=''+'+Y' else
if py3=-1 then VY3:='-Y' else
begin
if py3>1 then
begin
if px3=0 then VY3:=''+IntToStr(py3)+'Y' else VY3:='+'+IntToStr(py3)+'Y';
end else VY3:=IntToStr(py3)+'Y';
end;
if pz3=0 then VZ3:='' else
if pz3=1 then if px3=0 then if py3=0 then VZ3:=''+'Z' else VZ3:=''+'+Z' else VZ3:=''+'+Z' else
if pz3=-1 then VZ3:='-Z' else
begin
if pz3>1 then
begin
if px3=0 then
if py3=0 then Vz3:=IntToStr(pz3)+'Z'
else Vz3:='+'+IntToStr(pz3)+'Z'
else Vz3:='+'+IntToStr(pz3)+'Z';
end else VZ3:=IntToStr(pz3)+'Z';
end;
Label1.caption:=VX1+VY1+VZ1+'=
Label2.caption:=VX2+VY2+VZ2+'=
Label3.caption:=VX3+VY3+VZ3+'=
Label4.caption:=FloatToStr(
Label8.caption:=FloatToStr(
Label9.caption:=FloatToStr(
Label16.caption:=FloatToStr(
Label17.caption:=FloatToStr(
Label18.caption:=FloatToStr(
end; // дополнительные функции показа «спуска»
procedure TForm1.Button1Click(Sender: TObject);
begin
RZ:=kipo3/kipz3; //вывод ответов
RY:=(ipo2-ipz2*RZ)/ipy2;
RX:=(po1-py1*RY-pz1*RZ)/px1;
OtvetX.caption:=FloatToStr(RX)
OtvetY.caption:=FloatToStr(RY)
OtvetZ.caption:=FloatToStr(RZ)
end;
end.
В ходе выполнения данного курсового проекта была составлена программа для решения систем линейных уравнений методом Гаусса. Программу можно модернизировать, введя такую инновацию, как отображение «спуска» и «подъема» системы уравнений. Также возможно оптимизировать «ловушки» ошибок и исключений. В некоторых случаях рациональное введение - замена структуры if…else на switch…case, что соответствовало бы требованиям структурного программирования.