Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите алгоритм 
:(
    Опции темы
Fighter
Дата 10.2.2006, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Дан произвольный одномерный массив. Нужно вывести его элементы по спирали.
PM MAIL   Вверх
karataev
Дата 10.2.2006, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 28.1.2006
Где: Россия, Нижний Но вгород

Репутация: нет
Всего: нет



Это как это так - "по спирали"? smile
PM MAIL WWW ICQ   Вверх
Fighter
Дата 10.2.2006, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Дан массив 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Нужно вывести


1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Добавлено @ 01:26
Вообще это может быть не массив, а, например, числа могут быть заданы в цикле, ну например:

Код

  ...
  for i := 1 to 16 do
  begin
  ...
  end;
  ...


Это сообщение отредактировал(а) Fighter - 10.2.2006, 01:25
PM MAIL   Вверх
volvo877
Дата 10.2.2006, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Fighter, так пойдет:
Код
uses crt;
const
  n = 6;
type
   TMx = array[1..n, 1..n] of integer;

procedure Print(mx : TMx);
var
   i,j : byte;
begin
   writeln; writeln;
   for i := 1 to n do begin
      writeln;
      for j := 1 to n do write(mx[i,j]:2,' ');
   end;
end;

procedure SpiralFill(var mx : TMx);
var
   i,j,c, count : byte;
begin

   i := 1;
   j := 1;
   c := 0;
   count := 1;

   repeat

       while (j <= n - c) do begin mx[i,j] := count; inc(count); inc(j); end;

       inc(i); dec(j);

       while (i <= n - c) do begin mx[i,j] := count; inc(count); inc(i); end;

       dec(j); dec(i);

       while (j >= 1 + c) do begin mx[i,j] := count; inc(count); dec(j); end;

       inc( c ); inc(j); dec(i);

       while (i >= 1 + c) do begin mx[i,j] := count; inc(count); dec(i); end;

       inc(j); inc(i);

   until c > n div 2;

end;

var
   m : TMx;

begin
   clrscr;
   SpiralFill(m);
   Print(m);
   readln;
end.

?

Здесь просто числа 1 .. N^2 "закручиваются" в спираль...
PM MAIL   Вверх
Innuendo
Дата 19.2.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



плин, зря я не пошел на дополнительные сегодня smile
друг сказал что они как раз это проходили)


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Mayk
Дата 19.2.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Цитата(Fighter @ 10.2.2006, 05:15 Найти цитируемый пост)
Дан произвольный одномерный массив. Нужно вывести его элементы по спирали.

Пардон муа, а как вывести по спирали вот такой массив:
1,2,3,4,5,6

Весьма произовльный и весьма одномерный
Добавлено @ 18:15
Или даже вот такой(не менее произвольный и не менее одномерный):
1,2

Это сообщение отредактировал(а) Mayk - 19.2.2006, 18:16


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
cardinal
Дата 19.2.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Название темы должно отражать ее суть!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.