
- •Рыбинск 2005
- •1 Постановка задачи
- •2 Спецификация
- •3 Метод решения
- •Для этого необходимо
- •4 Организация данных
- •5 Описание процедур и функций
- •6 Описание алгоритма
- •6.1 Общий алгоритм
- •6.2 Частные алгоритмы
- •6.2.1 Алгоритм проверки возможности составления кроссворда
- •6.2.3 Алгоритм поиска слов в шаблоне
- •7 Методика тестирования
- •Имя файла
- •8 Текст программы
- •9 Результаты тестирования.
- •10 Литература
Образец оформления курсовой работы по дисциплине ПРОГРАММИРОВАНИЕ НА ЯВУ
4 Организация данных
Размер матрицы шаблона кроссворда: константа N целого типа.
Для хранения шаблона кроссворда используется двумерный массив: kword : array[1..N,1..N] of masWord;
Для хранения множества слов – одномерный массив слов: words : array[1..100] of masWord;
Тип masWord представлет собой запись: masWord = record
number:integer; - номер слова word : string[30]; - слово
pr : Boolean – признак использования (true – вписано в кроссворд)
end;
Для подготовки варианта заполнения используется массив: krword : mas;
Тип mas – двумерный массив: mas = array[1..N, 1..N] of masKWord;
Каждый элемент массива представляет собой запись: masKWord = record
ch : char; - символ из слова numberWord : integer – номер слова
end;
Для организации удобного поиска незанятых позиций в кроссворде организован массив слов кроссворда:
List : array [1..N*N] of ListWord;
Каждый элемент массива – запись.
Тип ListWord: ListWord = record
InI, InJ : integer; - номер по вертикали, номер по горизонтали
Dlina : integer; - длина
Horizont : boolean; - ориентация (true – по горизонтали)
end;
Для организации возвратов необходимо организовать стек использованных слов. В стек помещается номер вписанного в шаблон слова. Организуем динамический стек:
top : ref; Тип ref: ref = ^z; z = record
next : ref; NumberWord : integer;
end;
num – количество слов в шаблоне
Образец оформления курсовой работы по дисциплине ПРОГРАММИРОВАНИЕ НА ЯВУ
5 Описание процедур и функций
Procedure InitMenu; - процедура инициализации верхней строки меню. function InitFile:boolean; - функция чтения данных из файла. Возвращает True, если файл прочитан успешно, false, если при попытке чтения произошла ошибка. Ошибки могут возникать либо при попытке открыть несуществующий файл, либо при попытке чтения файла, структура которого не соответствует требуемой.
procedure InitError; - процедура вывода сообщения об ошибке при чтении файла данных.
Procedure InitDialog; - ввод шаблона кроссворда и слов в режиме диалога Function InitMenuUp:boolean; - функция вывода выпадающего меню ДАННЫЕ. Возвращает true, если входные данные были заданы, false в противном случае.
procedure pop(var top:ref; a:integer); - добавление в стек номеров использованных слов, top – указатель на вершину стека, a – номер слова. function push(var top:ref):integer; - извлечение из стека номеров использованных слов, top – указатель на вершину стека. Функция возвращает номер последнего добавленного слова.
Procedure Test; - процедура проверки возможности создания кроссворда на основе заданного шаблона с использование заданного набора слов. Procedure PrintError; - вывод сообщения о невозможности составить кроссворд.
Procedure PrintRez; - вывод кроссворда.
function testword:boolean; - проверка, можно ли вписать слова в шаблон, возвращает true – если возможно, false в противном случае.
function newword(i:integer;l:integer):integer; - функция осуществляет выбор из списка слов не занятого слова подходящей длины, функция возвращает номер слова в списке, i - с какого по счету слова в списке начинать поиск, l - длина искомого слова.
Procedure Init; - процедура инициализации экрана, верхней строки меню и организации работы с меню.
procedure TestError; - процедура вывода сообщения об ошибке при попытке вызова процедуры нахождения варианта построения кроссворда при незаданных начальных условиях.