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

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

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

> Помогите решить задачу, динамичсекие матрицы
Wanderer
сообщение 9.09.2007 17:39
Сообщение #1





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

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


Дана матрица 200х200, найти сумму ее элементов по главной и побочной диагоналям.
Первый раз столкнулся с динамическими переменными вчера на лабораторной, и ни как не могу их понять.
Написал программу по шаблону, но только она не работает, если размерность матрицы сделать 200х200.
{$R-}
Type
TType=Word;
Type
PVector = ^TVector;
TVector = Array [1..1] of TType;

PDynMatrix = ^TDynMatrix;
TDynMatrix = Array [1..1] of PVector;

Var
mxDynamic:PDynMatrix;
n,i,j,s:word;

Begin
Write('n='); Readln(n);
GetMem(mxDynamic^[i], n*SizeOf(PVector));
for i:=1 to n do
GetMem (mxDynamic^[i], n*SizeOf(TType));

for i:=1 to n do begin
writeln;
for j:=1 to n do
begin
mxDynamic^[i]^[j]:=random(23);
write(mxDynamic^[i]^[j]:3);
end;
end;
s:=0;
j:=1;
for i:=1 to n do begin
s:=mxDynamic^[i]^[j]+s;
j:=j+1;
end;

writeln(' ', 'Summa glawnoj diagonali=',s);
readln;
for i:=1 to n do
FreeMem (mxDynamic^[i], n*SizeOf(TType));
FreeMem (mxDynamic, n*SizeOf (pVector));
end.


Сообщение отредактировано: Wanderer - 9.09.2007 20:03
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
volvo
сообщение 9.09.2007 18:12
Сообщение #2


Гость






GetMem(mxDynamic, n*SizeOf(PVector));
Вместо того, что было написано у тебя...

Заметь, возвращается память правильно... С чего бы это? wink.gif
 К началу страницы 
+ Ответить 
Sensitive
сообщение 9.09.2007 18:18
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

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


Я бы эту задачу наверное вот так делала:
uses crt;
type TType=word;
type PVector=^TVector;
TVector=array [1..100,1..100] of TType;
var a:^TVector;
n,i,j:byte;
S:real;
begin
clrscr;
New(a);
Writeln('Vvedite rozmirnist');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
a^[i,j]:=random(99)+1;
end;
writeln;writeln;
for i:=1 to n do
begin
for j:=1 to n do write (a^[i,j]:5);
writeln;
end;
writeln;
S:=0;
for i:=1 to n do S:=S+a^[i,i];
writeln('S=',S:7:3);
dispose(a);
readln;
end.


P.S. Или так будет не верно??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 9.09.2007 18:18
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


М

Wanderer ,

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [ code=pas ] ... [ /code ].

Исправь пожалуйста.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.09.2007 18:29
Сообщение #5


Гость






Юля, а при размерности матрицы 200*200 - вот так:

TVector=array [1..200,1..200] of TType;
? smile.gif

А ошибки компилирования не боишься?
 К началу страницы 
+ Ответить 
Sensitive
сообщение 9.09.2007 18:41
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

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


а, ну да... прошу прощения тогда rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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