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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2013, 21:32   #1
Gino4ka
Новичок
Джуниор
 
Регистрация: 02.05.2013
Сообщений: 1
По умолчанию Ришить систему линейных уравнений методом Крамера.

Очень нужно!объясните мне вот эту программку пожалуйста,а то учителю надо будет ее объяснить,а я вообще понять не могу что в ней происходит((

uses crt;
type
Tmass=array[1..20] of real;
Tmatrix=array[1..20] of Tmass;
procedure Per(k,n:integer;var a:Tmatrix;var p:integer);
var
z:Real;j,i:integer;
begin
z:=abs(a[k,k]);
i:=k;
p:=0;
for j:=k+1 to n do
begin
if abs(a[j,k])>z then
begin
z:=abs(a[j,k]);
i:=j;
p:=p+1;
end;
end;
if i>k then
for j:=k to n do
begin
z:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=z;
end;
end;
function Znak(p:integer):integer;
begin
if p mod 2=0 then
Znak:=1
Else
Znak:=-1;
end;
procedure Opr(n:integer;a:tmatrix;var det:real);
var
k,i,j,p:integer;r:real;
begin
det:=1.0;
for k:=1 to n do
begin
if a[k,k]=0 then Per(k,n,a,p);
det:=znak(p)*det*a[k,k];
for j:=k+1 to n do
begin
r:=a[j,k]/a[k,k];
for i:=k to n do
begin
a[j,i]:=a[j,i]-r*a[k,i];
end;
end;
end;
end;
var
a:Tmatrix;
c:array[1..20] of Tmatrix;
b,x:Tmass;
det,det1:real;
n,k,j,i:integer;
begin
clrscr;
write('порядок системы n=');
readln(n);
writeln('введите коэфицмэнт системы:');
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
readln;
writeln('введите свободные члены:');
for i:=1 to n do
read(b[i]);
readln;
clrscr;
writeln('расширенная мтрица системы:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:7:2);
write(b[i]:9:2);
writeln;
end;
Opr(n,a,det);
for i:=1 to n do
begin
for k:=1 to n do
begin
for j:=1 to n do
c[i][k,j]:=a[k,j];
c[i][k,i]:=b[k];
end;
Opr(n,c[i],det1);
if(det=0)and(det1=0) then
begin
writeln(системв не определена!');
readln;
exit;
end;
if(det=0)and(det1<>0) then
begin
writeln('система не имеет решения!');
readln;
exit;
end;
x[i]:=det1/det;
end;
writeln('корни системы:');
for i:=1 to n do
writeln('x',i,'=',x[i]:7:0);
readln
end.
end.
Gino4ka вне форума Ответить с цитированием
Старый 02.05.2013, 21:43   #2
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

Gino4ka, программа решает СЛАУ методом Крамера, найдите этот метод и там все станет ясно
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на систему 2х линейных уравнений в паскаль katyawapka Паскаль, Turbo Pascal, PascalABC.NET 10 17.10.2012 22:09
Решить систему линейных уравнений WVBR Паскаль, Turbo Pascal, PascalABC.NET 5 10.10.2011 22:48
Решение системы линейных уравнений. методы Крамера и Гаусса Lumos Помощь студентам 3 05.12.2010 12:22
Решить систему линейных уравнений методом простых итераций на Delphi Кнопик Помощь студентам 2 22.10.2009 16:11
Решить систему линейных уравнений, которая содержит до 200 переменных, методом Гаусса. Etlau Помощь студентам 5 05.05.2008 07:50