Coolb

05. Mask - exam 11.03.2018 softUni

Apr 20th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.66 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _04.Balls
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. // Изпит по "Основи на програмирането" – 2018
  14. //Задача 5.Кукерска маска
  15. //Да се напише програма, която прочита от конзолата цяло число n и чертае кукерска маска с размери като в примерите по - долу.Ширината на фигурата е(2 * n) + 2.
  16. //Вход
  17. //Входът е цяло, нечетно число n в интервала[5…59].
  18. //Изход:
  19. // Текстови редове, изобразяващи кукерска маска, точно както в примерите.
  20. /*
  21. ВХОД ИЗХОД ВХОД ИЗХОД
  22. 5 7
  23. /| |\ /| |\
  24. / | | \ / | | \
  25. / | | \ / | | \
  26. / | | \ / | | \
  27. ------------ / | | \
  28. | _ _ | / | | \
  29. | @ @ | ----------------
  30. | | | _ _ |
  31. | | | @ @ |
  32. | OO | | |
  33. | / \ | | |
  34. | |||| | | |
  35. \``````````/ | OO |
  36. \\````````// | / \ |
  37. \\\``````/// | |||| |
  38. \\\\````//// \``````````````/
  39. \\\\\``///// \\````````````//
  40. \\\\\\////// \\\``````````///
  41. \\\\````````////
  42. \\\\\``````/////
  43. \\\\\\````//////
  44. \\\\\\\``///////
  45. \\\\\\\\////////
  46.  
  47.  
  48. */
  49.  
  50.  
  51. // Решението на задача MASK (Кукерска маска) съм разделил на няколко части (етапи).
  52. // Разяснения относно промениливите които съм избрал и изборът им на именуване:
  53. //
  54. // например промениливата int numberSpace1FirstPart = n - 2;
  55. // numberSpace1FirstPart ----- > number = брой, Space = Празно пространство номер 1, FirstPart = от Първа част
  56. //
  57. // аналогично за int numberSpace2FirstPart = 0;
  58. // numberSpace2FirstPart ------> number = брой, Space = Празно пространство номер 2, FirstPart = от Първа част
  59. // Така пуснат кода с Visual Studio съвпада с решението на задачата, но Съдията дава 0/100.
  60. // Къде е грешката?
  61.  
  62. // задачата в Съдията може да се тества тук https://judge.softuni.bg/Contests/Practice/Index/968#12
  63.  
  64. int n = int.Parse(Console.ReadLine());
  65. int numberSpace1FirstPart = n - 2;
  66. string slash = "/";
  67. int numberSpace2FirstPart = 0;
  68. string tower = "| |";
  69. string backSlash = "\\";
  70. string border = "|";
  71. int numberSpace1ThirdPart = n / 3;
  72. string downdash = "_";
  73. int numberSpace2ThirdPart = ((2 * n) + 2) - 2 - (2 * numberSpace1ThirdPart) - 2;
  74. string mail = "@";
  75. int numberSpaceFifthPart = (2 * n) + 2 - 2;
  76. int numberSpace1SixthPart = (n - 1);
  77. string bigO = "O";
  78. string slashBackslash = "/ \\";
  79. int numberSpace1SeventhPart = (((n * 2) - 2) - 2) / 2;
  80. string borders = "||||";
  81. int numberSpace1EighthPart = (((n * 2) - 2) - 2) / 2;
  82. int numbersDotsNinthPart = n * 2;
  83.  
  84. if (n % 2 == 0 || n<5 || n>59)
  85. {
  86. n = int.Parse(Console.ReadLine());
  87. }
  88. else
  89. {
  90.  
  91. //Start firtsPart
  92. for (int rows = 0; rows < n - 1; rows++)
  93. {
  94. Console.WriteLine("{0}{1}{2}{3}{2}{4}", new string(' ', numberSpace1FirstPart), slash, new string(' ', numberSpace2FirstPart), tower, backSlash);
  95. numberSpace1FirstPart--;
  96. numberSpace2FirstPart++;
  97. }
  98. //End firstPart
  99.  
  100. //Start secondPart
  101. Console.WriteLine(new string('-', (n * 2) + 2));
  102. //End SecondPart
  103.  
  104. //Start thirdPart
  105. Console.WriteLine("{0}{1}{2}{3}{2}{1}{0}", border, new string(' ', numberSpace1ThirdPart), downdash, new string(' ', numberSpace2ThirdPart));
  106. //End thirdPart
  107.  
  108.  
  109. //Start fourthdart
  110. Console.WriteLine("{0}{1}{2}{3}{2}{1}{0}", border, new string(' ', numberSpace1ThirdPart), mail, new string(' ', numberSpace2ThirdPart));
  111. //End fourthdart
  112.  
  113. //Start fifthPart
  114. for (int rows = 0; rows < (n / 2); rows++)
  115. {
  116. Console.WriteLine("{0}{1}{0}", border, new string(' ', numberSpaceFifthPart));
  117. }
  118. //End fifthPart
  119.  
  120.  
  121. //Start sixthPart
  122. Console.WriteLine("{0}{1}{2}{2}{1}{0}", border, new string(' ', numberSpace1SixthPart), bigO);
  123. //end sixthPart
  124.  
  125. //Start seventhPart
  126. Console.WriteLine("{0}{1}{2}{1}{0}", border, new string(' ', numberSpace1SeventhPart), slashBackslash);
  127. //end seventhPart
  128.  
  129. //Start eighthPart
  130. Console.WriteLine("{0}{1}{2}{1}{0}", border, new string(' ', numberSpace1SeventhPart), borders);
  131. //end eighthPart
  132.  
  133. //Start ninthPart
  134. for (int rows = 0; rows < n + 1; rows++)
  135. {
  136. Console.WriteLine("{0}{1}{2}", new string('\\', rows + 1), new string('`', numbersDotsNinthPart), new string('/', rows + 1));
  137. numbersDotsNinthPart = numbersDotsNinthPart - 2;
  138. }
  139. //end ninthPart
  140. }
  141. }
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment