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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2009, 22:52   #11
Саша Дорощук
Новичок
Джуниор
 
Регистрация: 07.10.2009
Сообщений: 6
По умолчанию

вот у меня есть метод крамера но у меня не получается вставить его в меню которое мне дал Serge_Bliznykov
Цитата:
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);{перестановка строк если главный элемент = 0}
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{создаем вспомогательные матрицы, где i-товый столбец - свободные члены}
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('Корни сиcтемы:');
for i:=1 to n do
writeln('x',i,'=',x[i]:7:3);
readln
end.
end.
Саша Дорощук вне форума Ответить с цитированием
Старый 08.10.2009, 22:53   #12
Саша Дорощук
Новичок
Джуниор
 
Регистрация: 07.10.2009
Сообщений: 6
По умолчанию

поможите? пожалуста подскажите
Саша Дорощук вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оформление меню (вытекает из другого меню) TilerDerton Общие вопросы Delphi 3 20.08.2009 02:20
Меню bygoga Общие вопросы C/C++ 7 04.05.2009 10:57
Для доступа к пунктам главного меню клавиши ALT + подчеркнутая буква меню в офис 2007? Окоча Юра Microsoft Office Word 1 24.02.2009 12:29
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20
Меню Witaliy Общие вопросы Delphi 4 27.04.2008 22:45