Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 664

/ вопрос открыт /

Здраствуйте! уважаемые эксперты ! Помогите пожалуйста !!!!!!!!!
Программа решает матрицу с помощью метода гаусса,все правильно работает ,кроме процедуры проверки. Исправте пожалуйста код, процедуру( которая делает проверку). Заранее спасибо. !!!

Приложение:
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils ;
  7. const n=3;
  8. type matrix=array[1..n,1..n] of real;
  9. vector=array[1..n] of real;
  10. var a:matrix;
  11. b,x,g:vector;
  12.  
  13.  
  14. procedure gen(var m:matrix; var v:vector);
  15. var i,j:integer;
  16. begin
  17. for i:=1 to n do begin
  18. for j:=1 to n do m[i,j]:=random(10);
  19. v[i]:=random(10);
  20. end;
  21. end;
  22.  
  23. procedure show(var a:matrix; var b:vector);
  24. var i,j:integer;
  25. begin
  26. for i:=1 to n do begin
  27. for j:=1 to n do write(a[i,j]:3:0);
  28. writeln(b[i]:3:0);
  29. end;
  30. writeln;
  31. end;
  32.  
  33. var i,j:integer; c,l:real;
  34. begin
  35. for j:=1 to n do
  36. a[i,j]:=c;
  37. x[i]:=l;
  38. g[i]:=l*c;
  39. writeln(g[i]:10:3);
  40. write;
  41. end;
  42.  
  43. procedure showx(x:vector {J;vector} );
  44. var i:integer;
  45. begin
  46. for i:=1 to n do writeln(x[i]:10:3);
  47. {j[i]:=x[i];
  48. writeln(j[i]:10:3);}
  49. write;
  50. end;
  51.  
  52. procedure Gauss(var a:matrix; var b,x:vector);
  53. var i,j,k:integer; c,d,f :real;
  54. begin
  55. for k:=1 to n-1 do begin
  56.  
  57. if a[k,k]=0 then
  58. for i:=k+1 to n do
  59. if a[i,k]<>0 then begin
  60. for j:=1 to n do begin c:=a[k,j]; a[k,j]:=a[i,j]; a[i,j]:=c; end;
  61. c:=b[k]; b[k]:=b[i]; b[i]:=c;
  62. break;
  63. end;
  64. for i:=k+1 to n do begin
  65. c:=-a[i,k]/a[k,k];
  66. for j:=1 to n do a[i,j]:=a[i,j]+c*a[k,j];
  67. b[i]:=b[i]+c*b[k];
  68. end;
  69. end;
  70. for k:=n downto 2 do
  71. for i:=k-1 downto 1 do begin
  72. c:=-a[i,k]/a[k,k];
  73. for j:=1 to n do a[i,j]:=a[i,j]+c*a[k,j];
  74. b[i]:=b[i]+c*b[k];
  75. end;
  76. for k:=1 to n do x[k]:=b[k]/a[k,k];
  77. end;
  78.  
  79. begin
  80. randomize;
  81. gen(a,b);
  82. show(a,b);
  83. gauss(a,b,x);
  84. showx(x);
  85. proverca(g,x,a);
  86. readln ;
  87. { TODO -oUser -cConsole Main : Insert code here }
  88. end.


Джон Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Джон (статус: Посетитель)
Вопрос отправлен: 17 октября 2010, 15:32
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 17 октября 2010, 18:49; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 17 октября 2010, 16:53 [#1]:

У меня дежавю?
А как же вопрос №4657? Уже не актуален?

Цитата (min@y™):

Я уж хотел повторно спросить "что не получается", но... Остальной код писал не ты, да? Признайся... Так бы и сказал: "напишите за меня лабу". Грустно... Но возможно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Джон

Джон (статус: Посетитель), 17 октября 2010, 18:24 [#2]:

Вот так должно быть ???? ил по другому ???
procedure proverca(a:matrix;x,b:vector;var y:vector);
var i,j:integer;
f:boolean;
begin
writeln('Проверка:');
f:=true;
for i:=1 to n do
begin
y[i]:=0;
for j:=1 to n do
y[i]:=y[i]+a[i,j]*x[j];
writeln('y[',i,']=',y[i]:3:0);
if abs(b[i]-y[i])>t then f:=false;
end;
if f then writeln('Система решена верно!')
else writeln('Система решена не верно!');
end;
min@y™

min@y™ (статус: Доктор наук), 17 октября 2010, 18:35 [#3]:

Цитата (Джон):

Вот так должно быть ???? ил по другому ???

Чо так мало вопросительных знаков????????????????????????
И вообще, зачем ты спрашиваешь?????????????????????????? Сам проверить не можешь????????????????????
Почему??????????????????!!!!!!!!!!!!!!!!!!!!11111111111111
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Джон

Джон (статус: Посетитель), 17 октября 2010, 18:42 [#4]:

Проверил. Работает.Извини, если что не так. Я просто плохо
соображаю в этом деле.Еще не очень хорошо знаю синтаксис языка.
min@y™

min@y™ (статус: Доктор наук), 17 октября 2010, 18:47 [#5]:

Цитата (Джон):

Еще не очень хорошо знаю синтаксис языка.

Это ты про русский язык, да?
Я так и знал! :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 17 октября 2010, 18:49 [#6]:

Главное, что концепция, изложенная мной в форуме вопроса 4657, помогла тебе включить мозг. И это меня радует (©).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:50
Выполнено за 0.03 сек.