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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 20:17   #1
NikePRo
Новичок
Джуниор
 
Аватар для NikePRo
 
Регистрация: 17.03.2011
Сообщений: 2
По умолчанию Система уравнений.

Добрый вечер, уважаемые программисты. Был бы очень вам благодарен, если бы вы помогли мне написать несколько программ на Паскале. Сам пока только учусь, но получается не ахти как...

Вот одна:

Задание такое: решить систему уравнений методом Крамера.

Сама система:
|X2-3X3+4X4=-5
|X1-2X3+3X4=-4 {Цифра после Икса(X) - это номер.
|X1+2X2-5X4=12 {Цифра до Икса(X) - это коэффицент.
|4X1+3X2-5X3=5

Помогите пожалуйста, а то совсем ничего не получается...

Последний раз редактировалось NikePRo; 17.03.2011 в 20:20. Причина: Орфографическая ошибка.
NikePRo вне форума Ответить с цитированием
Старый 17.03.2011, 23:01   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

в методе ориентируетесь? решается СЛАУ всегда только из 4 уравнений? что конкретно не получается?
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 17.03.2011, 23:33   #3
NikePRo
Новичок
Джуниор
 
Аватар для NikePRo
 
Регистрация: 17.03.2011
Сообщений: 2
По умолчанию

Ну про метод читал, применять не приходилось просто. Вот из-за этого и проблемы.
NikePRo вне форума Ответить с цитированием
Старый 18.03.2011, 08:49   #4
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Примените, решите в ручную СЛАУ. Заодно получите результаты промежуточных вычислений (определители), которые пригодятся при отладке программы
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 18.03.2011, 13:27   #5
Lenochek
Новичок
Джуниор
 
Регистрация: 17.03.2011
Сообщений: 2
По умолчанию

Нужно сформировать матрицу 4х4, занести коэффициенты при иксах по правилам матрицы. Получить определитель: можно использовать для этого матрицы 3х3 и 2х2, как вспомогательные. Если определитель равен нулю система решений не имеет или имеет бесконечное множество, насколько я помню. Если <>0 --> решение одно.
Lenochek вне форума Ответить с цитированием
Старый 21.03.2011, 11:44   #6
Lenochek
Новичок
Джуниор
 
Регистрация: 17.03.2011
Сообщений: 2
По умолчанию

Вот вариант решения задачи:

Program SLU;
uses crt;
var
i,j,i1,j1,i2,j2,a,kolStolb,kolStolb 1,kolStr,Opred1,Opred2,Opred3,Opred 4:integer;
Matr4 : array [1..4,1..4] of integer;
Matr3 : array[1..3,1..3] of integer;
Matr2: array[1..2,1..2] of integer;

Function Opred_3x3(a:integer) : integer;
begin
for i2:=1 to 3 do
begin
kolStolb1:=0;
for j2:=1 to 3 do
if (i2<>1) and (j2<>a) then
begin
kolStolb1:=kolStolb1+1;
Matr2[i2-1,kolStolb1]:=Matr3[i2,j2];
end;
end;
{prosmotr matrici 2x2}
writeln('matrica 2x2, el-t a = ',a);
for i2:=1 to 2 do
for j2:=1 to 2 do
if j2 mod 2 = 0 then
writeln('M2[',i2,j2,']=',Matr2[i2,j2])
else
write('M2[',i2,j2,']=',Matr2[i2,j2],' ');
{vozvr znach}
Opred_3x3:=Matr3[1,a]*(Matr2[1,1]*Matr2[2,2]-Matr2[1,2]*Matr2[2,1]);

end;

Function OpredF(var j : integer) : integer;
var
PerSum:integer;
begin
{for i1:=1 to 4 do
for j1:=1 to 4 do
if j1 mod 4 =0 then
writeln('Matr4[',i1,j1,']=',Matr4[i1,j1])
else
write('Matr4[',i1,j1,']=',Matr4[i1,j1],' ');
readln;}
for i1:=1 to 4 do
begin
kolStolb:=0;
for j1:=1 to 4 do
if (i1<>1) and (j1<>j) then
begin
kolStolb:=kolStolb+1;
Matr3[i1-1,kolStolb]:=Matr4[i1,j1];
end;
end;
{prosmotr matrici 3x3}
writeln('massiv ',j);
for i1:=1 to 3 do
for j1:=1 to 3 do
if j1 mod 3 = 0 then
writeln('[',i1,j1,']=',Matr3[i1,j1])
else
write('[',i1,j1,']=',Matr3[i1,j1],' ');

{raschet opredelitely matrici 3x3}
PerSum:=0;
for i1:=1 to 1 do
for j1:=1 to 3 do
begin
{writeln('j1 = ',j1); }
if j1 mod 2 =0 then
PerSum:=PerSum-Opred_3x3(j1)
else
PerSum:=PerSum+Opred_3x3(j1);
writeln('PerSum ',PerSum);
end;

OpredF:=Matr4[1,j]*PerSum;
readln;
end;

begin
clrscr;
for i:=1 to 4 do
for j:=1 to 4 do
begin
write('M4[',i,j,']='); readln(Matr4[i,j]);
end;
for i:=1 to 1 do
for j:=1 to 4 do
begin
if j=1 then Opred1:=OpredF(j);
if j=2 then Opred2:=OpredF(j);
if j=3 then Opred3:=OpredF(j);
if j=4 then Opred4:=OpredF(j);
end;
end.

Не хватает расчета определителя матрицы коэффициентов 4x4 при иксах, но очевидно -> он 0. Я так думаю, т.к. на одной из диагоналей матрицы все нули, есть какое-то правило, чтобы не считать определитель, а на основании этого сделать вывод. Посмотрите в лекциях, мож и ошибаюсь, было давно (училась в смысле)
Lenochek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Система уравнений Katte Помощь студентам 1 08.06.2010 18:17
Система уравнений. С++ iScream Помощь студентам 3 17.03.2010 17:53
система уравнений ioda1986 Помощь студентам 1 23.02.2010 20:42
Графка, система уравнений Sarumjan Помощь студентам 2 23.04.2009 02:09
паскаль система линейных уравнений student77rus Помощь студентам 1 19.11.2008 21:48