Помощь в учёбе, очень быстро...
Работаем вместе до победы

Кодирование. 
Разработка программы для создания кроссвордов

РефератПомощь в написанииУзнать стоимостьмоей работы

Класс tStringList представляет собой список строк и ассоциированных с каждой строкой указателя на объект. В данном случае вместо указателя хранится совместимое по типу с указателем 4-х байтного целочисленного числа Integer, значением которого в программе является количество встречаемых слов в тексте. Этот класс прост в работе. Особым его достоинством является быстрый поиск по содержимому. Поиск… Читать ещё >

Кодирование. Разработка программы для создания кроссвордов (реферат, курсовая, диплом, контрольная)

В Delphi 7 имеется специальный класс tIniFile, максимально упрощающий программистам работу с файлами такого формата. При создании данного класса необходимо указать имя файла. По умолчанию, если не указывать путь к файлу, подставляется путь к системной директории windows. Данный класс предоставляет набор операций по чтению и записи параметров, максимально упрощая работу программиста. Значения параметров могут записываться и считываться в формате строки, целого, дробного или логического значения. Также допустима интерпретация как дата и время, но данный подход снижает показатели переносимости из-за возможных различных форматов даты времени на различных компьютерах. Программисту также предоставляются методы по работе с секциями в целом, а также по проверке существования значений и секций.

Файлы с конфигурацией кроссворда будем называть файлом схемы (*.scm). В таблице 1 представлены секции и ключи этого файла.

Таблица 1 — Секции и ключи.

Секция.

Ключ.

Пример

Описание.

[main].

width.

Ширина кроссворда.

height.

высота.

words.

количество слов.

[matrix].

1,2…N.

шаблон кроссворда.

  • 0 — нет буквы
  • 1 — там должна быть буква

[words].

2,1,v.

слова.

I=X, Y, N.

Iномер от 1 до words.

X, Y — координаты первого символа слова.

N — направление v-вертикальное h-горизонтальное.

Класс tStringList представляет собой список строк и ассоциированных с каждой строкой указателя на объект. В данном случае вместо указателя хранится совместимое по типу с указателем 4-х байтного целочисленного числа Integer, значением которого в программе является количество встречаемых слов в тексте. Этот класс прост в работе. Особым его достоинством является быстрый поиск по содержимому. Поиск может осуществляться как по строкам, так и по указателю. Методы SaveToFlile и LoadFomFile позволяют соответственно сохранить и загрузить содержимое в файл.

Будем использовать этот файл для работы со словарем.

Для реализации основной функции подбора вариантов заполнения кроссворда разработана процедура interior.

//основная процедура рекурсивного перебора вариантов.

//на входе список уже вставленных слов.

//и номер вставляемого слова.

procedure TFrmMain. interior (used:tStringList;CurWord:integer);

var i: integer;

begin.

if endOfFind then exit; //выход если юзер не хочет больше.

if CurWord=MaxWords+1 then //все слова вставлены.

begin.

inc (FindCount);

OutKrossw (used); // можно выводить.

exit; // да и нечего больше вставлять.

end;

for i:=0 to words. Count-1 do //по всем словам из словаря слов.

begin.

if used. IndexOf (words[i])-1 then continue; //в одном кроссворде одно слово дважды не встречается.

used.InsertObject (0,words[i], pointer (CurWord)); //вставим в начало списка используемых слов.

if valid (used) then //проверка на правильность.

interior (used, CurWord+1); //прошло-ищем следующее слово.

if endOfFind then exit; //выход если не надо больше.

used.delete (0); //теперь удалим последнее слово, т.к. на его место в следующем обороте.

end; //цикла вставим новое.

end;

На рисунке 1 представлена блок схема алгоритмов этой процедуры.

автоматизация кроссворд программирование.

Показать весь текст
Заполнить форму текущей работой