Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Динамика

Автор: skAmZ 13.06.2006 4:52

Вот задание:
2.С помощью динамических переменных реализуйте вещественную матрицу размером 200 x 100. Каждому элементу матрицы присвойте случайное значение из заданного диапазона. Отсор-тируйте элементы в строках и строки по значению первого элемента. Выдайте на экран первую подматрицу размером 20 x 10.


Код

uses crt;
type
  mn=-6500..6500;
  mas1:array[1..200] of Integer;
  mas:array[1..100] of ^mas1;
var i,j,min,max:Integer;
      masiv:^mas;
begin
clrscr;
readln(min); {минимальное значение диопазона}
readln(max); {максимально значение диопазона}
Getmem(masiv,4*Sizeof(Real));
For i:=1 to 100 do
  For j:=1 to 200 do
      masiv^[i]^[j]:=random(max-min)+min-1;

{сюда не доходит}


Не знаю в чем дело, дальше не пишу потому что он даже заполнение не проходит.

Автор: lapp 13.06.2006 8:45

1. В определении типа используй "=" а не ":"
2. В процедуре GetMem ты неверно указал размер, поэтому у тебя выходит за границы памяти. Сделай так:

  GetMem(masiv,Sizeof(mas));

3. После этого ты должен затребовать память для каждого элемента masiv[i]^, например так:
for i:=1 to 100 do GetMem(masiv^[i],SizeOf(mas1));

- либо вставь это в основной цикл:
For i:=1 to 100 do begin
GetMem(masiv^[i],SizeOf(mas1));
For j:=1 to 200 do
masiv^[i]^[j]:=random(max-min)+min-1;
end;

Автор: volvo 13.06.2006 11:59

Послушай внимательно, skAmZ...

Соизволь в следующий раз все-таки прочесть http://forum.pascal.net.ru/rules.html (особенно пункт 2) и то, что написано в рамочке

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

Это - последнее предупреждение тебе... Не надо захламлять форум! mad.gif

http://forum.pascal.net.ru/index.php?s=&showtopic=6730&view=findpost&p=28387

Автор: skAmZ 14.06.2006 16:20

Прости, больше такого не повториться. Чесно говоря меня взбесил отвой ответ на самое перове мое сообщение.
На счет проги, ":" это опечатка, все остальное зделал) все норм).