Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 01:08   #1
Klik_1602
Пользователь
 
Аватар для Klik_1602
 
Регистрация: 06.09.2010
Сообщений: 51
Печаль Трёхмерный массив.Сортировка

Помогите пожалуйста! что-то совсем голова не варит((
Требуется отсортировать трёхмерный массив по возрастанию.
как я понимаю, проще это будет сделать, преобразовав данный массив в одномерный.
Подскажите, как выполнить преобразование?!
Klik_1602 вне форума Ответить с цитированием
Старый 13.01.2011, 01:17   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от Klik_1602 Посмотреть сообщение
Помогите пожалуйста! что-то совсем голова не варит((
Требуется отсортировать трёхмерный массив по возрастанию.
как я понимаю, проще это будет сделать, преобразовав данный массив в одномерный.
Подскажите, как выполнить преобразование?!
1. Создать одномерный массив размером на все элементы трехмерного . Записать все элементы в массив , пройдя по трехмерному 3-мя for или как удобно .
2. Отсортировать одномерный массив
3. Записать отсортированные элементы обратно в трехмерный .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 13.01.2011 в 01:21.
andrewpalkin вне форума Ответить с цитированием
Старый 13.01.2011, 16:46   #3
Klik_1602
Пользователь
 
Аватар для Klik_1602
 
Регистрация: 06.09.2010
Сообщений: 51
По умолчанию

непонятно только как сделать 3-ий пункт---
3. Записать отсортированные элементы обратно в трехмерный

попробовала сделать по-другому, выходит какай-то бред,
подскажите как лучше всего вывести 3-х мерный массив

Код:
uses
 crt;
var
 n,m,k,i,j,t:integer;
 a:array[1..10,1..10,1..10] of integer;
procedure swap(var x,y,z:integer);
   var t,q:integer;
 begin
    t := x;
    x := y;
    y := z;
    z := t;
 end;
begin
 clrscr;
 writeln ('vvod poryadok matrica n');
 readln (n);
 m:=n; k:=n; 
 randomize;
   for i := 1 to n do
   for j := 1 to m do
   for t := 1 to k do
   a[i, j, t] := Random(10);
      for i := 1 to n do
      begin
      for j := 1 to m do
      begin
      for t := 1 to k do
      write(a[i,j,t]);
      writeln;
      end;
      end;
   for k:=1 to n-1 do
   for j:=1 to n-k do
   for i:=1 to n-j do
   begin
   if (a[i,j,k] > a[i+1,j,k]) and (a[i,j,k] > a[i+2,j,k])  then
   swap(a[i,j,k],a[i+1,j,k],a[i+2,j,k]);
   end;
     for i := 1 to n do
     begin
     for j := 1 to m do
     begin
     for t := 1 to k do
     write(a[i,j,t]);
     writeln;
     end;
     end;
end.

Последний раз редактировалось Stilet; 14.01.2011 в 23:24.
Klik_1602 вне форума Ответить с цитированием
Старый 14.01.2011, 01:36   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Код:
uses
 crt;
var
 n,m,k,i,j,t,num,temp:integer;
 a:array[1..10,1..10,1..10] of integer;
 b:array[1..1000] of integer;

begin
 clrscr;
 writeln ('vvod poryadok matrica n');
 readln (n);
 randomize;
   for i := 1 to n do
    for j := 1 to n do
     for t := 1 to n do
      a[i, j, t] := Random(10);
      
   num:=1;
   for i := 1 to n do
    begin
      for j := 1 to n do
        begin
          for t := 1 to n do
            begin
              write(a[i,j,t]);
              b[num]:=a[i,j,t];
              inc(num);
            end;
         writeln;
        end;
      writeln;
    end;
   
   for i:=1 to n*n*n-1 do
     for j:=i+1 to n*n*n do
     begin
        if(b[i]>b[j]) then
        begin
          temp := b[i];
          b[i]:=b[j];
          b[j]:=temp;
        end;
      end;
   num:=1;
    for i := 1 to n do
      begin
        for j := 1 to n do
          begin
            for t := 1 to n do
              begin
                a[i,j,t]:=b[num];
                inc(num);
                write(a[i,j,t]);
              end;
           writeln;
          end;
        writeln;
     end;
end.
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 14.01.2011, 19:17   #5
Klik_1602
Пользователь
 
Аватар для Klik_1602
 
Регистрация: 06.09.2010
Сообщений: 51
Радость

спасибо огромнейшее))))
Klik_1602 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Сортировка (C++) cudalover Помощь студентам 10 08.11.2012 19:28
одномерный массив сортировка Шелла Zhuk. Паскаль, Turbo Pascal, PascalABC.NET 0 01.12.2010 23:00
как сделать трёхмерный звук??? alex(21) Свободное общение 7 27.09.2010 16:48
Массив структур - сортировка на C#(мини бд) littlecoder Помощь студентам 3 02.03.2010 11:22
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57