Помощь - Поиск - Пользователи - Календарь
Полная версия: Трехмерный динамический массив в Pascal
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
4итер
Создать трехмерный динамический массив типа real 10*10*10. Заполнить случайными числами от 0 до 100, в цикле перемножить все элементы и поделить на их количество.
Массив вроде как описать смог, а дальше не пойму.
type TMass1=array of real;
TMass2=array of TMass1;
TMass3=array of TMass2;
var i,j:real;
Setlength(FMass,10);
for i:=Low(FMass) to High(FMass) and
begin
Setlength(FMass[i],10);
for j:=Low(FMass[i] to High(FMass[j]
Setlength(FMass[i][j],10);
end;
Rian
я бы наверно тип объявил попроще...

type TMass1=array of array of array of real;


после того как объявил обошел все элементы да и сделал что нужно например заполнить случайными где проблема?

mas[x][y][z]:=random(100)


Ромаха
Цитата
Заполнить случайными числами от 0 до 100


Цитата
mas[x][y][z]:=random(100)

Боюсь автор задачи предполагал, что верхняя граница должна быть тоже включена, поэтому, наверное, стоит писать Random (101);

Далее.. Наверное не стоит использовать динамику.
Код

type
       TArr = array [1..10] of array [1..10] of array [1..10] of Integer;


Далее нам нужно перемножить все элементы. Всего их 10^3. Предположим худший вариант, всё числа приняли значение 100. Тогда их произведение будет 100^(1000). Это не влезет никуда. (не рассматриваю вариант с длинной арифметикой)...
Rian
Цитата
Тогда их произведение будет 100^(1000). Это не влезет никуда.

ну если на первых ста вывалится 0 то и не страшно ;)
а вобще как обычно хотелось бы услышать об этой проблеме от автора...
APAL
Цитата(Rian @ 9.06.2013 22:58) *

ну если на первых ста вывалится 0 то и не страшно ;)
а вобще как обычно хотелось бы услышать об этой проблеме от автора...


Боюсь, что 0 при типе Real никогда не вылезет - всегда будет какая-то дробная часть (ну или практически всегда)
Ромаха
Что-то я проглядел что массив вещественный..
Тогда Random должен выглядеть так :
Код
mas[x][y][z] := Random(100)+Random
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.