![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Решение СЛУ методом Дулитла |
|
Разное - [решено] Решение СЛУ методом Дулитла
|
Новый участник Сообщения: 40 |
Вот нашлась программа, подскажите пожалуйста для чего здесь используется массив int ?
Program laba4; uses crt; const N=3; type typ_matr=array[1..N,1..N] of real; type typ_mas=array[1..N] of real; type typ_m=array[1..N] of integer; var a: typ_matr; b,a0,x: typ_mas; int: typ_m; i,j,p,k: integer; macheps,s: real; retcod: byte; function machineeps: real; var mach: real; begin mach:=1; while 1+mach>1 do mach:=mach/2; machineeps:=mach*2; end; procedure vvod_matr(var Z:typ_matr); begin writeln; for i:=1 to N do for j:=1 to N do begin writeln('a[',i,',',j,']'); readln(Z[i][j]); end; end; procedure vvod_mass(var Y:typ_mas); begin writeln; for i:=1 to N do begin writeln('b[',i,']'); read(Y[i]); end; end; procedure vivod_matr(var Z:typ_matr); begin writeln; for i:=1 to N do begin for j:=1 to N do begin write(Z[i][j]); write(''); end; writeln; end; end; procedure normmatr(var z0:typ_mas;var Z:typ_matr); begin for i:=1 to N do begin z0[i]:=Z[1,i]; for j:=2 to N do if abs(Z[j,i])>z0[i] then z0[i]:=abs(Z[j,i]); for j:=1 to N do Z[j,i]:=Z[j,i]/z0[i]; end; write('matr A!!!:'); vivod_matr(A); end; procedure dulitdecomp(var Z:typ_matr; var z0:typ_mas; var int:typ_m; var mach:real; var ret:byte); var amax,dd:real; var imax: integer; begin normmatr(z0,z); for i:=1 to N do int[i]:=i; for k:=1 to N do begin amax:=abs(Z[int[k],k]); for i:=k+1 to N do if abs(Z[int[k],k])>amax then begin amax:=abs(Z[int[k],k]); imax:=i; end; if imax<>k then begin j:=int[k]; int[k]:=int[imax]; int[imax]:=j; end; if abs(Z[int[k],k])<n*mach then begin ret:=1; break; end; for i:=1 to k do begin for j:=1 to k do begin A[int[k],i]:=A[int[k],i]-A[int[k],j]*A[int[j],i]; end; end; for i:=k+1 to n do begin for j:=1 to k-n do begin A[int[k],i]:=A[int[k],i]- A[int[k],j]*A[int[j],i]; end; A[int[k],i]:=A[int[k],i]/A[int[k],k]; end; end; end; procedure dulitslu(var A: typ_matr; var b:typ_mas; var int: typ_m; var x: typ_mas); begin for i:=1 to N do x[i]:=b[i]; for i:=1 to N do begin if int[i]<>i then begin s:=x[i]; x[i]:=x[int[i]]; x[int[i]]:=s; end; end; for i:=1 to N do begin s:=0; for j:=1 to i-1 do s:=s+A[i,j]*x[j]; x[i]:=(x[i]-s)/A[i,i]; end; for i:=N downto 1 do begin s:=0; for j:=i+1 to N do s:=s+A[i,j]*x[i]; x[i]:=x[i]-s; end; for i:=1 to N do x[i]:=x[i]/a0[i]; end; {Osnovnaya proga} begin clrscr; retcod:=0; macheps:=machineeps; writeln('macheps=',macheps); vvod_matr(A); vvod_mass(b); vivod_matr(A); for i:=1 to N do write(b[i],''); dulitdecomp(A,a0,int,macheps,retcod); if retcod=0 then write('Razlozhenie uspechno'); dulitslu(A,b,int,x); writeln; writeln('matr A:'); vivod_matr(a); writeln('MATS A0;'); for i:=1 to n do begin write(a0[i]); write(''); end; writeln('reshenie x:'); for i:=1 to n do begin write(x[i]); write(''); end; readkey; end. |
|
Отправлено: 07:10, 05-12-2010 |
Старожил Сообщения: 295
|
Профиль | Отправить PM | Цитировать Бред какой-то... Одни и те же имена глобальных переменных и параметров процедур явно не способствуют корректной работе программы.
|
Отправлено: 09:46, 05-12-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать По заданию нужно составить программу в процедурах
|
Отправлено: 10:18, 05-12-2010 | #3 |
Старожил Сообщения: 295
|
Профиль | Отправить PM | Цитировать Это Вы сами написали? Или нашли в инете?
|
Отправлено: 14:07, 05-12-2010 | #4 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать Написали) но не это важно, просто подскажите "для чего здесь используется массив int" ну или вообще такие массивы применяются с какой целью
|
|
Отправлено: 16:04, 06-12-2010 | #5 |
Старожил Сообщения: 295
|
Профиль | Отправить PM | Цитировать Если писали сами - сами и должны знать. Я не пойму, как поведёт себя компьютер, ибо нельзя, чтобы имена параметров функций совпадали с именами глобальных переменных.
|
Отправлено: 17:28, 06-12-2010 | #6 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать Дело даже не в программе, уже жалею что ее написал(
Я задаю общий вопрос "В алгоритме Дулитла используется массив Int, i-ый элемент которого фиксирует порядок перестановки строк на i-ом шаре алгоритма " Впринципе можно обойтись и без этого массива, но вчем удачность его использования? в чем минусы? в чем плюсы? Так то он занимает лишнюю память в программе, тогда какой смысл в его использовании? |
Отправлено: 14:38, 09-12-2010 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Решение СЛУ Аx=b с нижней треугольной матрицей | dasha131 | Программирование и базы данных | 12 | 01-12-2010 12:31 | |
VBS/WSH/JS - Считать Установить IP программным методом | overlocker | Скриптовые языки администрирования Windows | 1 | 30-12-2008 15:19 | |
Вопрос - Не проходят запросы с методом GET | snake-as | Защита компьютерных систем | 2 | 09-06-2008 02:54 | |
Сжатие страниц методом gzip | benya | Вебмастеру | 13 | 03-05-2006 02:35 | |
Решение СЛАУ методом квадратного корня | JCooper | Программирование и базы данных | 2 | 27-11-2003 02:35 |
|