ParanoidPanda

Untitled

Oct 31st, 2015
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.47 KB | None | 0 0
  1. \documentclass{beamer}
  2. \usepackage{graphics}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage[russian]{babel}
  5. \usepackage{listings}
  6.  
  7. \title{Курсовой проект "Крисс Кросс"}
  8. \author{Пётр Лавренюк}
  9. \institute{СПБ ГУАП кафедра 51}
  10. \date{}
  11.  
  12. \begin{document}
  13.  
  14. \setbeamertemplate{footline}[page number]
  15.  
  16. \defverbatim[colored]\listing{
  17. \begin{lstlisting}
  18. path\crisscross.exe arg1 arg2
  19. \end{lstlisting}
  20. }
  21.  
  22. \begin{frame}[noframenumbering]
  23. \titlepage
  24. \thispagestyle{empty}
  25. \end{frame}
  26.  
  27.  
  28. \begin{frame}
  29. \frametitle{Содержание}
  30. \begin{itemize}
  31. \item Постановка задачи
  32. \item Исследование и анализ задачи
  33. \item Алгоритм
  34. \item Детали реализации
  35. \item Пример работы программы
  36. \item Итоги
  37. \end{itemize}
  38. \end{frame}
  39.  
  40. \begin{frame}
  41. \frametitle{Постановка задачи}
  42.  
  43. Формулировка задания:
  44. \\
  45. Реализовать программу, которая по набору слов создает решетку кроссворда. Решетка
  46. должна быть компактная и красивая, а также иметь максимум пересечений. На вход
  47. программа берет список слов, на выходе записывает решетку в текстовый файл.
  48. \end{frame}
  49.  
  50. \begin{frame}
  51. \frametitle{Исследование и анализ задачи}
  52. Основные замечания/требования:
  53. \begin{itemize}
  54. \item Максимальное количество пересчений
  55. \item Слова не должны слипаться
  56. \item Слова не должны накладываться друг на друга
  57. \item Сделать полный перебор слов
  58. \item Реализовать "слепые зоны"
  59. \end{itemize}
  60. \end{frame}
  61.  
  62. \begin{frame}
  63. \frametitle{Алгоритм}
  64. 1. Подсчет общего количества слов в словаре
  65. \\2. Выделение динамической памяти под все необходимые массивы
  66. \\3. Начинаем перебор с функции startalgo - ставится i-тое слово из списка в центр сетки по горизонтали.
  67. \\4. В теле startalgo() ищем все слова которые можно поставить по вертикале по отношению к первому слову, ставим и начинаем новую ветку рекурсии.
  68. \\5. Начинаем примерять и вставлять слова по горизонтали и вертикале, каждая вставка слова начинает новую рекурсивную ветку.
  69. \\6. Когда в ветке все слова использованы, подсчитываем число пересечений. Если число пересечений больше максимального, копируем в буффер.
  70. \\7. Выводим в файл.
  71. \end{frame}
  72.  
  73. \begin{frame}
  74. \frametitle{Детали реализации}
  75. Для удобства данная курсовая работа реализована на C++, с использованием классов, а также типа enum, который используется в функции void pastit(....,direct dir), как параметр указывающий направление вставки слова.\\
  76. Так называемые "слепые зоны" реализуются по методу вставки вокруг слова символов, для вертикальных слов - "1", для горизонтальных "2" , а также для всех типов слов в начале и в конце - "3".
  77. \end{frame}
  78.  
  79. \begin{frame}
  80. \frametitle{Сложность алгоритма}
  81. Алгоритм по своей сути является полным перебором. И его сложность :
  82. $$
  83. O (n*n^2)
  84. $$
  85. \end{frame}
  86.  
  87. \begin{frame}{C++}
  88. \frametitle{Формат ввода данных}
  89. Словарь храниться в файле формата ".txt". Каждое слово начинается с новой строки.
  90. \\Запуск программы осуществляется вводом команды:
  91. \listing
  92. где первый аргумент - файл со словарем
  93. \\второй аргумент - файл куда будет сохранен результат
  94. \end{frame}
  95.  
  96. \begin{frame}
  97. \frametitle{Примеры работы программы}
  98. \begin{figure}[h!]
  99. \begin{minipage}[h]{0.47\linewidth}
  100. \includegraphics[scale=0.7]{1st.png}
  101. \end{minipage}
  102. \begin{minipage}[h]{0.47\linewidth}
  103. \includegraphics[scale=0.7]{2nd.png}
  104. \end{minipage}
  105. \end{figure}
  106. \end{frame}
  107.  
  108. \begin{frame}
  109. \frametitle{Итоги}
  110. \begin{itemize}
  111. \item Использование динамического программирование
  112. \item Анализ и исследование поставленной задачи
  113. \item Реализация и оптимизация самописного алгоритма
  114. \end{itemize}
  115. \end{frame}
  116.  
  117. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment