8 Разработка программы решения системы уравнения методом Гаусса при помощи TurboPascal
programGauss;
const
N=3;
A:array[1..N,1..N] of real = ((9.1, 5.6, 7.8),
(3.8, 5.1, 2.8),
(4.1, 5.7, 1.2));
B:array[1..N] of real = (9.8,
6.7,
5.8);
type
matrtype=array[1..N,1..N+1] of real;
var
i,j:byte;
matr:matrtype;
procedure Gausse(var matr:matrtype; N:byte);
var i,j,k:byte;
begin
for i:=1 to N-1 do
for j:=i+1 to N do
for k:=N+1 downto i do
matr[j,k]:=matr[j,k]-matr[i,k]/matr[i,i]*matr[j,i];
for i:=N downto 1 do
begin
for j:=i+1 to N do
Matr[i,N+1]:=Matr[i,N+1]-Matr[i,j]*Matr[j,N+1];
Matr[i,N+1]:=Matr[i,N+1]/Matr[i,i];
end;
end;
begin
clrscr;
writeln('reshenie sistemi iz ',N,' linear yravnenii');
for i:=1 to N do
begin
writeln('vvodim yravnenie',i,':');
for j:=1 to N do
begin
write('A[',i
,',',j,']=');
read(A[i,j]);
end;
write('B[',i,']=');
readln(B[i]);
end;
writeln('Sistema linear yravnenii');
for i:=1 to N do
begin
for j:=1 to N do
write(A[i,j]:5:2);
writeln(B[i]:5:2);
end;
for i:=1 to N do
begin
for j:=1 to N do
matr[i,j]:=A[i,j];
matr[i,N+1]:=B[i];
end;
Gausse(matr,N);
writeln('reshenie sistemi yravnenii:');
for i:=1 to N do
writeln('X',i,'=',matr[i,N+1]:5:2);
readkey;
end.
9 Разработка программы решения уравнения методом Ньютона при помощи TurboPascal
uses crt;
var
a,b,Exp,s : real;
i : integer;
function Func(x : real) : real;
begin
Func:=2*x*x*x-3*x*x-12*x+10;
end;
function PFunc(x : real) : real;
begin
PFunc:=6*x*x-6*x-12;
end;
Begin
clrscr;
Writeln('Vvedite verhnij predel:');
readln(b);
Writeln('Vvedite to4nost'':');
readln(Exp);
i:=0;
repeat
a:=b-Func(b)/PFunc(b);
s:=b;
b:=a;
i:=i+1;
Writeln('Shag ',s:5:2,' X-',a:5:2,' f(x)=',Func(b));
until(abs(a-s)>Exp);
Writeln('Otvet: ',b:5:2);
readln;
end.
10 Разработка программы решения уравнения методом Хорд при помощи TurboPascal
program hord;
var x,a,b,eps,s:real;
function f(x:real):real;
begin
f:=2*x*x*x-3*x*x-12*x+10;
end;
begin
write('vvedite levuiu granicu');
readln(a);
write('vvedite pravuiu granicu');
readln(b);
write('vvedite epsilon');
readln(eps);
while f(b)-f(a)>=eps do
begin
s:=b-f(b)/(f(b)-f(a))/(b-a);
a:=b; b:=s;
end;
writeln(s:5:2);
readln;
end.
Заключение
В соответствии с заданием курсовой работы была осуществлена программная реализация задачи. В ходе выполнения работы были получены навыки программирования системы уравнений.
Список используемых источников
1) Блашкин И.И., Буров А.А. Новые возможности Turbo-Pascal 7.1. — Спб.: Изд-во “Макет”, 2005.
2) Бородич Ю.С. и др. Паскаль для персональных компьютеров: Справ. Пособие/ Ю.С. Бородич, А.Н. Вальвачев, А.И.Кузьмич. — Мн.: Выш. Шк.: БФ ГИТМП “НИКА”, 2001.
3)Васильев П.П. Турбо Паскаль — мой друг: М.: Компьютер, ЮНИТИ, 2006.
4) Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT, AT: Пер. с англ./ Предисл. Н.В.Гайского. — М.: Финансы и статистика, 2001.
5) Зуев Е.А. Язык программирования Turbo Pascal 7.1. — М.: Унитех, 2005.