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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2009, 23:43   #1
Ge0rGE
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию откорректируйте программу по решению СЛАР методом Гауса

Нашел программку для решения сист.лин.уравнений размерности n методом Гаусса, но нужно еще сделать так,чтобы она не рушилась при введении диагонального элемента равного нулю,как это сделать я не пойму(вероятно как-то переставить столбцы или строки) помогите пожалуйста. И еще один проблем - с блок-схемой не ладится,разветвлений нет,как ее составить для этого кода??



program project2;
var
a:array of array of real;
b,x:array of real;
h:real;
i,j,k,n:integer;
begin
writeln('Vvedute koluchestvo uravnenuy: ');
readln(n);
setlength(a,n+1);
setlength(b,n+1);
setlength(x,n+1);
for i:=1 to n do
begin
setlength(a[i],n+1);
writeln('uravnenue nomer ',i);
writeln('Vvedute koeficientu');
for j:=1 to n do
begin
write('a[',i,',',j,']=');read(a[i,j]);
end;
writeln('Vvedite pravuiu chast uravnenuya');
write('b[',i,']=');read(b[i]);
end;
writeln('Matruca');
for i:=1 to n do
begin
write(i);
for j:=1 to n do
write(a[i,j]);
writeln(b[i])
end;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i] end;
x[n]:=b[n]/a[n,n];
for i:=n-1 downto 1 do
begin
h:=b[i];
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i]; end;
writeln('Kornu uravnenuya');
for i:=1 to n do writeln('x(',i,')=',x[i]);
end.
Ge0rGE вне форума Ответить с цитированием
Старый 12.05.2009, 21:24   #2
Ge0rGE
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию

Ребята,ну помогите!!
Ge0rGE вне форума Ответить с цитированием
Старый 19.05.2009, 21:44   #3
Ge0rGE
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию

Пожалуйста помогите. Это срочно!
Ge0rGE вне форума Ответить с цитированием
Старый 19.05.2009, 22:47   #4
Paul11j
Пользователь
 
Регистрация: 15.03.2008
Сообщений: 19
По умолчанию

поставь условие в цикле
Код:
if (i=j)or(i+j=n+1) then
if a[i,j]=0 then 
writeln('ошибка');
Paul11j вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подтолкните к решению Interesno Общие вопросы C/C++ 3 10.04.2009 00:23
Составить программу численного расчета интеграла методом трапеций J0n1cK Паскаль, Turbo Pascal, PascalABC.NET 0 05.04.2009 00:02
Решение уравнения методом деления отрезка пополам. Методом секущей. Panda196 Паскаль, Turbo Pascal, PascalABC.NET 3 25.11.2008 09:06
матрица 3х4 и надо решить методом Гауса Колян Паскаль, Turbo Pascal, PascalABC.NET 1 04.12.2007 12:09