fork(3) download
  1. <?php
  2.  
  3.  
  4. $phrase = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
  5.  
  6. /*Подсчитываем длину фразы. */
  7. $phraseLength = mb_strlen($phrase);
  8.  
  9. /* Произвольно устанавливаем длину радиуса - вычисляем её опытным путём. Желательно иметь возможность каким-либо образом вычислить длину радиуса из длины фразы. */
  10. $radius = 14.2;
  11.  
  12. /* Создаём массив со вложенными массивами, наполненными ключами и пробелами в значениях. Опытным путём вычислили количество ключей со значениями во вложенных массива. Желательно каким-либо образом вычислить это количество из длины фразы. */
  13. $screen = array();
  14. for ($x = 0; $x < $phraseLength; $x++) {
  15. $screen[$x] = array_fill(0, 75, ' ');
  16. }
  17.  
  18. /* Находим угол между буквами и переводим градусы в радианы. */
  19. $angleBetweenLettersDegrees = 360 / $phraseLength;
  20. $angleBetweenLettersRadians = deg2rad($angleBetweenLettersDegrees);
  21.  
  22. /* Устанавливаем координаты x и y, заполняем многомерный массив $screen буквами в соответствии с этими координатами. Координату y приходится каждый раз множить на определённое опытным путём число, а также прибавлять опять же полученное опытным путём число. К координате x также приходится прибавлять такое число. Желательно каким-либо образом вычислять это всё из имеющихся данных! */
  23. $angle = 0;
  24. for ($i = 0; $i < $phraseLength; $i++) {
  25. $y = (round($radius * cos($angle)) * 2.65) + 37;
  26. $x = round($radius * sin($angle)) + 15;
  27. $angle += $angleBetweenLettersRadians;
  28. $screen[$x][$y] = mb_substr($phrase, $i, 1);
  29. }
  30.  
  31. /* Заполненный массивами с пробелами и буквами массив представляем как строки, склеиваем их и выводим одну за другой. */
  32. foreach ($screen as $strings) {
  33. $result = implode('', $strings);
  34. echo "$result\n";
  35. }
  36.  
  37. ?>
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
                                                                           
                               Ч       Ш    Щ                              
                       Ц                            Ъ                      
                  Х                                       Ы                
             Ф                                                             
                                                               Ь           
       У                                                                   
                                                                    Э      
  Т                                                                        
                                                                           
                                                                       Ю   
С                                                                          
                                                                          Я
                                                                           
Р                                                                          
                                                                          А
П                                                                          
                                                                           
                                                                          Б
О                                                                          
                                                                       В   
                                                                           
  Н                                                                        
                                                                    Г      
       М                                                                   
                                                               Д           
             Л                                                             
                  К                                       Е                
                       Й                            Ё                      
                               И       З    Ж