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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 13:36   #1
zenid
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 47
По умолчанию метод гаусса в паскале

помогите исправить программу., она не правильно считает и не работает, выдает ошибку деление на ноль или что то в этом роде.
код программы:

Код:
program Gayss;
const n=3;
var i,j,k:integer;
c,s:real;
a:array [1..n,1..n] of real;
b:array [1..n] of real;
x:array [1..n] of real;
begin
for i:=1 to n do
for j:=1 to n do read (a[i,j]);
writeln ('vvedite koaf cvobodnih chlenov');
for i:=1 to n do read (b[i]);
k:=1;
repeat i:=k;
repeat c:=a[i+1,k]/a[k,k];
j:=1;
repeat a[i+1,j]:=a[i+1,j]-c*a[k,j];
j:=j+1;
until j>=n;
b[i+1]:=b[i+1]-c*b[k];
i:=i+1
until i>n-1;
k:=k+1;until k>=(n-1);
x[n]:=b[n]/a[n,n];
i:=n-1;
repeat s:=0;
j:=i+1;
repeat s:=s+x[j]*a[i,j];
j:=j+1 until j>n;
x[i]:=(b[i]-s)/a[i,i];
i:=i-1;
until i<0;
for i:=1 to n do writeln ('x[',i,']=',x[i]:9:7);
readln;
readln; 
end.

Последний раз редактировалось Stilet; 15.11.2012 в 14:35.
zenid вне форума Ответить с цитированием
Старый 15.11.2012, 21:39   #2
zenid
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 47
По умолчанию

ребят, помогите пожалуйста
zenid вне форума Ответить с цитированием
Старый 15.11.2012, 21:59   #3
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Вроде так, но вручную не проверял
Код:
program Gayss;

const
  n = 3;

var
  i, j, k: integer;
  h: real;
  a: array [1..n, 1..n] of real;
  b: array [1..n] of real;
  x: array [1..n] of real;

begin
  for i := 1 to n do
    for j := 1 to n do read(a[i, j]);
  writeln('vvedite koaf cvobodnih chlenov');
  for i := 1 to n do read(b[i]);
  
  for i := 1 to n do
  begin
    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;
  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('Решение системы:');
  for i := 1 to n do
    writeln('X(', i, ')=', x[i]:3:5);
  readln;
end.
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 16.11.2012, 09:10   #4
zenid
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 47
По умолчанию

спасибо большое
zenid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Гаусса Symple me Общие вопросы C/C++ 2 14.10.2012 10:31
метод простых операций и метод гаусса зейделя tarasman11 Паскаль, Turbo Pascal, PascalABC.NET 1 23.09.2012 14:46
метод Гаусса aank10 Общие вопросы C/C++ 0 22.06.2011 16:25
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08
Help!!! Метод Гаусса Надя Microsoft Office Excel 7 07.05.2008 00:45