IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Метод Гаусса с динамическим массивом., динамические структуры
seat
сообщение 6.02.2008 2:47
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Привет! Помогите пожалуйто! Я написал программу для решения ур-ений методом Гаусса, но мне надо, чтоб размер задовался пользователем( любой велечины), короче говоря с использованием динамических массивов.


Program gaus;
uses crt;
const n=3; n2=n+1;
var a,b,p:array[1..n,1..n2] of real;
x:array[1..n] of real;
i,j,k:integer;
q,c:real;

begin
randomize;
textbackground(0);
clrscr;
textcolor(3);
write('ICXODHAYA MATRIX');
for i:=1 to n do
begin
writeln;
for j:=1 to n2 do
begin
a[i,j]:=random(50);
if j=n2 then textcolor(3) else textcolor(15);
write(a[i,j]:9:2);
end;
end;
for i:=1 to n do
begin
k:=0;
if a[1,1]=0 then
while k<n2 do
begin
k:=k+1;
c:=a[i,k]; a[i,k]:=a[i+1,k]; a[i+1,k]:=c;
end;
end;

for i:=1 to n do
for j:=1 to n2 do
b[i,j]:=a[i,j];

for k:=1 to n do
for i:=k+1 to n do
if a[i,k]<>0 then
begin
q:=a[i,k]/a[k,k]*(-1);
for j:=1 to n2 do
a[i,j]:=a[i,j]+q*a[k,j];
end;

for i:=1 to n do
begin
c:=a[i,i];
for j:=1 to n2 do
a[i,j]:=a[i,j]/c;
end;

for k:=n downto 1 do
for i:=k-1 downto 1 do
if a[i,k]<>0 then
begin
q:=a[i,k]/a[k,k]*(-1);
for j:=n2 downto 1 do
a[i,j]:=a[i,j]+q*a[k,j];
end;

writeln;
writeln;
write('NEW MATRIX');
for i:=1 to n do
begin
writeln;
for j:=1 to n2 do
begin
if j=n2 then textcolor(3) else textcolor(15);
write(a[i,j]:9:2);
end;
end;
writeln;
writeln;
textcolor(10);
for i:=1 to n do
writeln('x',i,'=',a[i,n2]:9:2);
textcolor(3);

for i:=1 to n do
x[i]:=a[i,n2];

for i:=1 to n do
for j:=1 to n do
for k:=1 to n do
p[i,j]:=p[i,j]+b[i,k]*x[k];

writeln;
writeln('IIPOBEPKA');
textcolor(10);
for i:=1 to n do
writeln(p[i,j]:9:2);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
seat
сообщение 6.02.2008 15:46
Сообщение #2





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Спс, просто тупо не воспользовался поиском)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:23
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"