Advertisement
Guest User

Aminu

a guest
Jan 28th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.20 KB | None | 0 0
  1. использовать Робот
  2.  
  3. алг
  4. нач
  5.  
  6.  
  7. цел а
  8. цел б
  9. размер_поля (а,б)
  10. закрасить_уголок_V(а,б)
  11.  
  12.  
  13. кон
  14.  
  15. алг закрасить_уголок_V (арг цел длина_левого_луча, арг цел длина_правого_луча)
  16. дано длина_левого_луча > 1 и длина_правого_луча > 1
  17. нач
  18. цел к
  19. к:=int((длина_левого_луча+1)/3)
  20. цел д
  21. д:=int((длина_правого_луча+1)/3)
  22. цел п
  23. нц д раз
  24. нц к-2 раз
  25. закрасить_ряд("вниз", 1)
  26. вниз
  27. вправо
  28. закрасить
  29. вправо
  30. вверх
  31. закрасить_ряд("вверх", 1)
  32. вправо
  33. вправо
  34. кц
  35. закрасить_ряд("вниз", 1)
  36. вниз
  37. вправо
  38. закрасить
  39. вправо
  40. вверх
  41. закрасить_ряд("вверх", 1)
  42.  
  43. п := дойти_до_стены("влево")
  44. идти_кол_во_шагов("вниз",3)
  45.  
  46. кц
  47. нц к-2 раз
  48. закрасить_ряд("вниз", 1)
  49. вниз
  50. вправо
  51. закрасить
  52. вправо
  53. вверх
  54. закрасить_ряд("вверх", 1)
  55. вправо
  56. вправо
  57. кц
  58. закрасить_ряд("вниз",1)
  59. вниз
  60. вправо
  61. закрасить
  62. вправо
  63. вверх
  64. закрасить_ряд("вверх", 1)
  65.  
  66.  
  67. кон
  68.  
  69. |Дойти до стены в заданном направлении
  70. алг цел дойти_до_стены(арг лит направление)
  71. | робот в произвольной клетке, направление перемещения
  72. дано направление = "вверх" или направление ="вниз" или направление = "влево" или направление = "вправо"
  73. | робот рядом со стеной в указанном направлении; кол-во пройденных шагов
  74. надо стена_рядом(направление)
  75. нач
  76. знач := 0
  77. нц пока не стена_рядом(направление)
  78. перейти_на_клетку(направление)
  79. знач := знач + 1
  80. кц
  81. кон
  82.  
  83. |Определить, имеется ли рядом стена в заданном направлении
  84. алг лог стена_рядом(арг лит направление)
  85. | робот в произвольной клетке, направление поиска стены
  86. дано направление = "вверх" или направление = "вниз" или направление = "влево" или направление = "вправо"
  87. надо | признак наличия стены в заданном направлении
  88. нач
  89. выбор
  90. при направление = "влево": знач := слева стена
  91. при направление = "вправо": знач := справа стена
  92. при направление = "вверх": знач := сверху стена
  93. при направление = "вниз": знач := снизу стена
  94. все
  95. кон
  96.  
  97. |Перейти на клетку в заданном направлении. Считается, что стены не мешают роботу передвигаться
  98. алг перейти_на_клетку(арг лит направление)
  99. | робот в произвольной клетке; известно направление перемещения;
  100. | предполагается, что стены не мешают роботу перемещаться
  101. дано направление = "вверх" или направление = "вниз" или направление = "влево" или направление = "вправо"
  102. надо | робот в позиции, отстоящей от исходной на одну клетку в заданном направлении
  103. нач
  104. выбор
  105. при направление = "влево": влево
  106. при направление = "вправо": вправо
  107. при направление = "вверх": вверх
  108. при направление = "вниз": вниз
  109. все
  110. кон
  111.  
  112. |Сменить направление робота на противоположное
  113. алг сменить_на_противоположное(аргрез лит направление)
  114. дано |направление движения робота
  115. надо |противоположное направление
  116. нач
  117. выбор
  118. при направление = "влево": направление := "вправо"
  119. при направление = "вправо": направление := "влево"
  120. при направление = "вверх": направление := "вниз"
  121. при направление = "вниз": направление := "вверх"
  122. все
  123. кон
  124.  
  125. |Закрасить до стены в заданном направлении
  126. алг цел закрасить_до_стены(арг лит направление)
  127. | робот в произвольной клетке, направление перемещения
  128. дано направление = "вверх" или направление = "вниз" или направление = "влево" или направление = "вправо"
  129. надо стена_рядом(направление) | закрашен ряд в заданном направлении;
  130. | робот рядом со стеной в указанном направлении; кол-во закрашенных клеток
  131. нач
  132. закрасить; знач := 1
  133. нц пока не стена_рядом(направление)
  134. перейти_на_клетку(направление)
  135. закрасить; знач := знач + 1
  136. кц
  137. кон
  138.  
  139. |Идти в заданном направлении заданное кол-во шагов.
  140. |Считается, что стены не мешают роботу передвигаться
  141. алг идти_кол_во_шагов(лит направление, цел кол_во_шагов)
  142. | робот в произвольной позиции, известно направление движения и кол-во шагов; стены не мешают роботу передвигаться
  143. дано кол_во_шагов >= 0 и (направление = "вверх" или направление = "вниз" или направление = "влево" или направление = "вправо")
  144. надо | робот в позиции, удаленной от исходной на заданное кол-во шагов
  145. нач
  146. нц кол_во_шагов раз
  147. | Переходим на следующую клетку
  148. перейти_на_клетку(направление)
  149. кц
  150. кон
  151.  
  152. |Закрасить ряд в заданном направлени и заданной длины
  153. алг закрасить_ряд(лит направление, цел длина)
  154. | робот на краю ряда; длина и направление закраски ряда
  155. дано длина > 0 и (направление = "вверх" или направление ="вниз" или направление = "влево" или направление = "вправо")
  156. надо | закрашенный ряд; робот на другом краю ряда
  157. нач
  158. закрасить
  159. нц длина-1 раз
  160. | Переходим на следующую клетку
  161. перейти_на_клетку(направление)
  162.  
  163. закрасить
  164. кц
  165. кон
  166.  
  167. |Вычислить размер поля
  168. алг размер_поля (рез цел ширина, рез цел высота)
  169. дано слева стена и сверху стена | робот в левом вехнем углу поля; в верхней строке и левом столбце нет внутренних стен
  170. надо ширина > 0 и высота > 0 | ширина и высота поля; робот в левом верхнем углу поля
  171. нач
  172. цел кол_во_шагов
  173. | расчет ширины поля
  174. ширина := дойти_до_стены("вправо")
  175.  
  176. |возврат в начальную клетку
  177. кол_во_шагов := дойти_до_стены("влево")
  178.  
  179. |расчет высоты поля
  180. высота := дойти_до_стены("вниз")
  181. |возврат в начальную клетку
  182. кол_во_шагов := дойти_до_стены("вверх")
  183. кон
  184.  
  185. |Нахождение минимума
  186. алг цел минимум(арг цел знач1, арг цел знач2)
  187. дано | два целых числа
  188. надо | минимальное значение из двух
  189. нач
  190. если (знач1 < знач2) то
  191. знач := знач1
  192. иначе
  193. знач := знач2
  194. все
  195. кон
  196.  
  197. |Нахождение максимума
  198. алг цел максимум(арг цел знач1, арг цел знач2)
  199. дано | два целых числа
  200. надо | максимальное значение из двух
  201. нач
  202. если (знач1 > знач2) то
  203. знач := знач1
  204. иначе
  205. знач := знач2
  206. все
  207. кон
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement