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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2014, 20:31   #1
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию Решение системы методом Гаусса-Жордана / PascalABC.NET

Задания
I. Напишите программу решения системы линейных уравнений
методом Жордана-Гаусса.
II. Решите систему линейных уравнений и осуществите проверку
найденного решения.

на 1 рис. сама система
на 2 рис. третье условие
на 3 рис.задание к третьему условию
Изображения
Тип файла: jpg Безымянный.jpg (6.5 Кб, 124 просмотров)
Тип файла: jpg Безымянный1.jpg (12.0 Кб, 125 просмотров)
Тип файла: jpg Безымянный2.jpg (2.7 Кб, 134 просмотров)
now2 вне форума Ответить с цитированием
Старый 15.04.2014, 20:32   #2
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

вот программа , проверьте плиз она написана в турбо паскаль как ее переделать на PaskalABC.NET а то она не работает указывает на ошибку Program1.pas(41) : Нельзя изменять значение переменной цикла внутри этого цикла


program labI4;
Uses crt;
Label m1;
Var a,a5: array [1..25,1..25] of real;
b,b5: array [1..25] of real;
k,i,m,n,st:integer;
t,x,x1,x2,x3,a1,b1,c1:real;
BEGIN
clrscr;
write('Vvedite razmernost');
readln(n);
For i:=1 to n do
For k:=1 to n do begin
write('a[',i,',',k,']=');readln(a[i,k]);a5[i,k]:=a[i,k];
end;
writeln('Vvedite svobodnye chleny B');
For i:=1 to n do begin
write('b[',i,']=');readln(b[i]);b5[i]:=b[i];
end;
writeln('Nachalnaya matriza');
For i:=1 to n do begin
For k:=1 to n do begin
write('a[',i,',',k,']=',a[i,k]:5:2,'':4);
end;
writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
st:=k;
For i:=k to n do
If a[st,k]<=a[i,k] Then st:=i;
For i:=1 to n do begin
t:=a[k,i];
a[k,i]:=a[st,i];
a[st,i]:=t;
end;
t:=b[k];
b[k]:=b[st];
b[st]:=t;
For i:=1 to n do begin
If i=k Then i:=i+1;
If i=n+1 Then goto m1;
t:=a[i,k]/a[k,k];
For m:=1 to n do
a[i,m]:=a[i,m]-t*a[k,m];
b[i]:=b[i]-t*b[k];
end;
m1:
end;
writeln(' Konechnaya matriza');
For i:=1 to n do begin
For k:=1 to n do begin
write('a[',i,k,']=',a[i,k]:5:2,'':4);
end;
writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
x:=b[k]/a[k,k];
writeln('x(',k,')=',x:5:2);
a[1,k]:=x;
end;
readkey
END.
now2 вне форума Ответить с цитированием
Старый 15.04.2014, 21:15   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Смените цикл на while.
Что-то я тут вводил, вроде считает.
Код:
program labI4;
Uses crt;
Label m1;
Var a,a5: array [1..25,1..25] of real;
b,b5: array [1..25] of real;
k,i,m,n,st:integer;
t,x,x1,x2,x3,a1,b1,c1:real;
BEGIN
clrscr;
write('Vvedite razmernost');
readln(n);
For i:=1 to n do
For k:=1 to n do begin
write('a[',i,',',k,']=');readln(a[i,k]);a5[i,k]:=a[i,k];
end;
writeln('Vvedite svobodnye chleny B');
For i:=1 to n do begin
write('b[',i,']=');readln(b[i]);b5[i]:=b[i];
end;
writeln('Nachalnaya matriza');
For i:=1 to n do begin
For k:=1 to n do begin
write('a[',i,',',k,']=',a[i,k]:5:2,'':4);
end;
writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
st:=k;
For i:=k to n do
If a[st,k]<=a[i,k] Then st:=i;
For i:=1 to n do begin
t:=a[k,i];
a[k,i]:=a[st,i];
a[st,i]:=t;
end;
t:=b[k];
b[k]:=b[st];
b[st]:=t;
i:=1;
while i<=n do
//For i:=1 to n do 
  begin
    If i=k Then 
      i:=i+1;
    If i=n+1 Then 
      goto m1;
    t:=a[i,k]/a[k,k];
    For m:=1 to n do
      a[i,m]:=a[i,m]-t*a[k,m];
    b[i]:=b[i]-t*b[k];
    i:=i+1;
  end;
  m1:
end;
writeln(' Konechnaya matriza');
For i:=1 to n do begin
For k:=1 to n do begin
write('a[',i,k,']=',a[i,k]:5:2,'':4);
end;
writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
x:=b[k]/a[k,k];
writeln('x(',k,')=',x:5:2);
a[1,k]:=x;
end;
readkey
END.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 15.04.2014, 21:30   #4
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Смените цикл на while.
Что-то я тут вводил, вроде считает.
Код:
program labI4;
Uses crt;
Label m1;
Var a,a5: array [1..25,1..25] of real;
b,b5: array [1..25] of real;
k,i,m,n,st:integer;
t,x,x1,x2,x3,a1,b1,c1:real;
BEGIN
clrscr;
write('Vvedite razmernost');
readln(n);
For i:=1 to n do
For k:=1 to n do begin
write('a[',i,',',k,']=');readln(a[i,k]);a5[i,k]:=a[i,k];
end;
writeln('Vvedite svobodnye chleny B');
For i:=1 to n do begin
write('b[',i,']=');readln(b[i]);b5[i]:=b[i];
end;
writeln('Nachalnaya matriza');
For i:=1 to n do begin
For k:=1 to n do begin
write('a[',i,',',k,']=',a[i,k]:5:2,'':4);
end;
writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
st:=k;
For i:=k to n do
If a[st,k]<=a[i,k] Then st:=i;
For i:=1 to n do begin
t:=a[k,i];
a[k,i]:=a[st,i];
a[st,i]:=t;
end;
t:=b[k];
b[k]:=b[st];
b[st]:=t;
i:=1;
while i<=n do
//For i:=1 to n do 
  begin
    If i=k Then 
      i:=i+1;
    If i=n+1 Then 
      goto m1;
    t:=a[i,k]/a[k,k];
    For m:=1 to n do
      a[i,m]:=a[i,m]-t*a[k,m];
    b[i]:=b[i]-t*b[k];
    i:=i+1;
  end;
  m1:
end;
writeln(' Konechnaya matriza');
For i:=1 to n do begin
For k:=1 to n do begin
write('a[',i,k,']=',a[i,k]:5:2,'':4);
end;
writeln('b[',i,']=',b[i]:5:2,'':4);
end;
readln;
For k:=1 to n do begin
x:=b[k]/a[k,k];
writeln('x(',k,')=',x:5:2);
a[1,k]:=x;
end;
readkey
END.
а программа написана точно методом Жордана-Гаусса.?????
now2 вне форума Ответить с цитированием
Старый 15.04.2014, 21:42   #5
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Вот этого я не знаю. Не настолько я помню методы решения слау, чтобы с одного взгляда определить, какой это метод. По той ссылке, откуда вы взяли программу утверждается, что это метод Г-Ж?
А на своих данных проверили? Корректно решает?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 15.04.2014, 21:45   #6
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Вот этого я не знаю. Не настолько я помню методы решения слау, чтобы с одного взгляда определить, какой это метод. По той ссылке, откуда вы взяли программу утверждается, что это метод Г-Ж?
А на своих данных проверили? Корректно решает?
ну да ) все вроде решает спасибо ). а что делать с третьим заданием не подскажите ?
now2 вне форума Ответить с цитированием
Старый 15.04.2014, 21:49   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

IВместо ввода данных вбить заполнение массива по правилу, например для а
Код:
N:=12;
For i:=1 to n do
  For j:=1 to n do
     A[i,j]:=-1/(i+j);
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 15.04.2014, 21:51   #8
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

это вставить туда где "введите размерность" да ?
now2 вне форума Ответить с цитированием
Старый 15.04.2014, 21:57   #9
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Да-да. Только вместо readln(n) напишите n:=12; вместо readln(a[i,k])
Написать a[i,k]:=-1/(i+k);
И т.д.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 15.04.2014, 21:59   #10
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
IВместо ввода данных вбить заполнение массива по правилу, например для а
Код:
N:=12;
For i:=1 to n do
  For j:=1 to n do
     A[i,j]:=-1/(i+j);
это после "введите размерность "для а, а для b после "введите свободный член" , только не подскажите как b правильно записать сумму
now2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Программа для решения СЛАУ методом Жордана-Гаусса Reminaru Помощь студентам 6 30.05.2013 09:02
Решение системы линейных уравнений методом Гаусса. maliyusha Помощь студентам 16 18.02.2013 15:44
решить методом Гаусса — Жордана moren Помощь студентам 0 11.12.2011 14:47
Решение системы линейных уравнений методом Гаусса wizion Фриланс 4 20.11.2011 22:05
Pascal. Решение СЛАУ методом Гаусса-Жордана 2easy4me Помощь студентам 5 23.03.2011 18:56