Имя: Пароль:
1C
Админ
Заполнить таблицу значений числами по спирали
,
0 GUOhelen
 
13.04.12
20:33
Помогите пожалуйста! Нужно при нажатии кнопки вывести таблицу значений 10 на 10, числами от 1,2,3 и т.д по спирали
1 ВотОнЯ
 
13.04.12
20:36
(13) тестовое задание при приеме на работу? ;)
2 Живой Ископаемый
 
13.04.12
20:37
помочь чем?
3 Lama12
 
13.04.12
20:37
Задаешь параметрически уравнение архимедовой спирали. Коэффициенты подбираешь имперически.Значение счетчика в переменную t функции.
4 ВотОнЯ
 
13.04.12
20:39
Ну он же ясно написал, ща жмакнеца кнопка и мы должны вывести числа по спирали))))))
Видимо игра такая ))
5 catena
 
13.04.12
20:40
Кто поспирал числа из таблицы?
6 Живой Ископаемый
 
13.04.12
20:42
ок.. пусть тогда скажет, когда он уже кнопку нажмет, чтобы я вывел
7 ВотОнЯ
 
13.04.12
20:44
Молчит... видимо уже давно кнопку держит... тормозим, скорее выводите числа!!!!!!!
8 Живой Ископаемый
 
13.04.12
20:45
ну окей... вывожу таблицу...
вывел
===

мы справились? получилось? помогли?
9 ВотОнЯ
 
13.04.12
20:47
(8) да все, не суетись, период ожидания истек )))
10 GUOhelen
 
13.04.12
20:48
Да, тестовое задание. С чего начать. Ну помогите
11 catena
 
13.04.12
20:48
Надо же, уже 10 постов, а фотку до сих пор никто не просил...
12 Lama12
 
13.04.12
20:48
(0) Кстати, а спираль раскрывающаяся должна быть или сворачивающаяся?
13 acsent
 
13.04.12
20:49
помница такие задания давали на уроках информатики
14 GUOhelen
 
13.04.12
20:49
Сворачивающая
15 acsent
 
13.04.12
20:50
(10) хочешь наипать работоодателя?
16 Lama12
 
13.04.12
20:50
Сворачивающуюся самое простое сделать. Начиная с левого верхнего угла.
Такие матрицы рисовал в школе на спектруме.
17 GUOhelen
 
13.04.12
20:50
может быть и давали, мне от этого не легче
18 Lama12
 
13.04.12
20:51
(17) Какая должна быть спираль?
19 Живой Ископаемый
 
13.04.12
20:51
(10)я бы сначала нарисовал кнопку.. или уже есть?
20 Один С
 
13.04.12
20:52
(18) так и просится ответ , внутриматочная
21 GUOhelen
 
13.04.12
20:52
(18) матрица 10 на 10 числами от 1, 2, 3 и т.д
22 Lama12
 
13.04.12
20:53
А фотка уже есть?
23 Один С
 
13.04.12
20:53
спирали?
24 GUOhelen
 
13.04.12
20:54
(20) смешно вам
25 ВотОнЯ
 
13.04.12
20:54
(21) ты про архимедову спираль уже все прочла и поняла?
26 Lama12
 
13.04.12
20:55
(21) Пля... спиралей разных видов целая куча. У них разные параметры.
Какой шаг, какой вид и т.д.
27 ВотОнЯ
 
13.04.12
20:57
(24)полностью процитируй как звучит задание?
28 GUOhelen
 
13.04.12
20:58
1 2 3 4 5 6 7 8 9 10
                 11
                 12
                 13
                 14
                 15
                 16
                 17
                 18
         22  21  19
29 Живой Ископаемый
 
13.04.12
20:59
2(28)так-так... и в чем же сложность вывести такую муйню? тяжело открыть пофигуратор?
30 catena
 
13.04.12
20:59
И, Жи, ПравыйКрайИ, ЛевыйКрайИ, ПравыйКрайЖ, ЛевыйКрайЖи.
Увеличиваем И, пока не дойдем до крайИ, потом увеличиваем Жи. Потом уменьшаем. Так пока края не сойдутся.
31 catena
 
13.04.12
21:00
(26)Не усложняйте.
32 GUOhelen
 
13.04.12
21:00
На форме внешней обработки вывести таблицу значений 10 на 10. Запонить по нажатию кнопки на форме данную таблицу значенийчислами от 1,2 и т.д по спирали
33 Lama12
 
13.04.12
21:00
(28) Ээээ... это же задачка из школьного курса программирования для обхода поля роботом и измерения радиации.
Может лучше профессию сменить?
34 Живой Ископаемый
 
13.04.12
21:01
2(32) на каком месте споткнулись?
35 GUOhelen
 
13.04.12
21:07
Спасибо, вы очень добрые
36 marvak
 
13.04.12
21:38
(35)
Вы очень неконкретные..
спираль может быть всякая, в т.ч. и внутриматочная
37 дущ
 
13.04.12
22:03
(35) Ну а что ты хочешь? Классическая задача на программирование, кстати, очень интересная, после всяких кредитов-сальдо интересно такую решить. Если хочешь готовый алгоритм, то 700 рублей мне на телефон и напишу.
38 zak555
 
13.04.12
22:05
поменять кнопки местами ?
39 vs7719
 
13.04.12
23:32
Перем Колонок, Строк, НачалоСтроки, НачалоКолонки;

Процедура ПолучитьАдрес(стр, кол, вправо, влево, вниз, вверх)
   
   Если Вправо Тогда
       кол = кол + 1;
       Если кол = Колонок Тогда
           Вниз = 1;
           Колонок = Колонок - 1;
           Вправо = 0;
       КонецЕсли;
       Возврат;
   КонецЕсли;
   
   Если Вниз Тогда
       стр = стр + 1;
       Если стр = строк Тогда
           Строк = Строк - 1;
           Влево = 1;
           Вниз = 0;
       КонецЕсли;
       Возврат;
   КонецЕсли;
   
   Если Влево Тогда
       кол = кол - 1;
       Если кол = НачалоКолонки Тогда
           Вверх = 1;
           НачалоКолонки = НачалоКолонки + 1;
           Влево = 0;
       КонецЕсли;
       Возврат;
   КонецЕсли;
   
   Если Вверх Тогда
       стр = стр - 1;
       Если стр = НачалоСтроки Тогда
           Вправо = 1;
           НачалоСтроки = НачалоСтроки + 1;
           Вверх = 0;
       КонецЕсли;
       Возврат;
   КонецЕсли;
   
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   СформироватьТаблицуЗначений();
   
   Колонок = 10;
   Строк = 10;
   
   НачалоСтроки = 2;
   НачалоКолонки = 1;
   
   Размерность = 10*10;
   
   стр = 1;
   кол = 0;
   
   Вправо = 1;
   Влево = 0;
   Вниз = 0;
   Вверх = 0;
   
   для сч = 1 по Размерность цикл
       
       ПолучитьАдрес(стр, кол, вправо, влево, вниз, вверх);
       
       Таб.Получить(стр-1)[кол-1] = сч;
       
   КонецЦикла;
   
КонецПроцедуры

Процедура СформироватьТаблицуЗначений()
   
   для сч = 1 по 10 Цикл
       
       Таб.Колонки.Добавить("Кол"+сч, ,сч);
       Таб.Добавить();
       
   КонецЦикла;
   
   //Таб - пустая таблица значений на форме
   
   ЭтаФорма.ЭлементыФормы.Таб.СоздатьКолонки();    
   
КонецПроцедуры
40 vs7719
 
13.04.12
23:44
Было бы интересно посмотреть другой вариант решения: через некую функцию, а не через "ручное" указание направления через "Если".
41 Tatitutu
 
14.04.12
00:43
(40)


Процедура Заполнить(x)        
   
       Для Стр=1 По 10 Цикл
           
           Для Кол=1 По 10 Цикл
               
               Таб.Получить[стр][кол] = Прав(x,1);
               
           КонецЦикла;
           x=x+2;
       КонецЦикла;        
   
КонецПроцедуры
42 дущ
 
14.04.12
00:45
(40) можно было бы и через функцию. Начинать из середины, толкнуть точку в любое направление, а затем все смежные свободные ячейки из точки проверять на наименьшее расстояние из центра, а затем перемещать туда точку.
43 vs7719
 
14.04.12
01:03
(41) Не совсем то, что требуется
Вот, что получилось:
http://files.mail.ru/Q6I4V9
44 vs7719
 
14.04.12
01:18
(42) "Формула! Нужна формула!" (с)
45 Wern
 
14.04.12
02:03
тз[А][Б]=(10-2*А)*(9-2*А)+(А-Б)*((А<=Б)*(4*(А+Б-10)+2)*(2*(А+Б<=9)-1)+1+4*(А+Б<=9)*(9-А-Б))+1;
Вот нашел для разворачивающийся спирали. Осталось переделать под сворачивающуюся.