Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе




Скачать 306.4 Kb.
НазваниеАвтоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе
страница2/7
Дата публикации24.03.2013
Размер306.4 Kb.
ТипПояснительная записка
www.vbibl.ru > Информатика > Пояснительная записка
1   2   3   4   5   6   7
^

1 СИСТЕМОТЕХНИЧЕСКАЯ ЧАСТЬ

1.1Функциональная спецификация


Разработанная система выполняет следующие функции:

  • автоматическая генерация кроссворда (подсистема автоматической генерации кроссворда). На входе – параметры кроссворда, подключенные словари, на выходе – сгенерированный кроссворд;

  • Ручное составление кроссворда (подсистема ручного составления кроссворда). На входе – параметры кроссворда, на выходе – готовый кроссворд;

  • Автоматическое разгадывание кроссворда (подсистема автоматического разгадывания кроссворда). На входе – параметры кроссворда для разгадывания из файла , на выходе – разгаданный кроссворд;

  • Ручное разгадывание кроссворда (подсистема ручного разгадывания кроссворда). На входе – готовый кроссворд для разгадывания из файла , на выходе – разгаданный кроссворд;

  • сохранение созданного кроссворда в файле на диск (файловая подсистема). На входе – сгенерированное поле, составленный кроссворд и путь к словарю, на выходе – файл, содержащий необходимую информацию;

  • загрузка ранее сохраненного кроссворда из файла на диске (файловая подсистема). На выходе - файл, содержащий сгенерированное поле, составленный кроссворд и путь к словарю, на выходе – поле кроссворда для разгадывания.

  • работа со словарями (подсистема работы со словарями). На входе – файл словаря, на выходе – модифицированный файл словаря.

Структурная схема ПС приведена на рисунке 1.


ПС Управления

Файловая подсистема

Подсистема помощи

Подсистема работы со словарями



Рисунок 1 - Структурная схема ПС

Ф
F0-1
ункциональная схема программной системы представлена на рисунке 2.


F3-0

F1-0

F1-5


F11-8

F18-2

F13-8

F1-11

F1-10

F8-17

F10-13

f17-8

F14-2

F17-12

F6-7

F2-17

F7-8

F12-17

F0-3

F5-6

F4-0

F2-18

F5-1

F1-9


F1-16

F12-1

F8-9

F9-8

F16-12

F1-18

F17-2

F2-14

F15-8

F19-8

F1-15

F1-12

F1-19

F1-14


состояния

Название состояния

0

Исходное состояние программы. Главное меню.

1

Активна п/с “Файловая система”

2

Активна п/с “Редактирования словарей”.

3

Подключение словарей.

4

Активна п/с “Помощи”.

5

Параметры кроссворда заданы.

6

Запуск “алгоритм автоматического составления кроссворда”

7

Выбор кроссворда, подтверждение ввода.

8

Активна п/с редактирования кроссворда.

9

Сохранение кроссворда.

10

Активна п/с “Ручного составления кроссворда”

11

Активна п/с “Автоматического разгадывания кроссворда”

12

Активна п/с “Ручного разгадывания кроссворда”.

13

Выбор языка.

14

Сохранение словаря.

15

Открытие кроссворда.

16

Открытие словаря.

17

Визуализация.

18

Новый словарь.

19

Новый кроссворд.



функции

Название функции

1-19

Создание нового кроссворда

1-18

Создание нового словаря

1-14

Сохранение словаря

1-16

Открытие словаря

1-9

Сохранение кроссворда

1-15

Открытие кроссворда

1-10

Ручное составление кроссворда

1-11

Автоматическое разгадывание кроссворда

1-0

возврат в гл. меню

0-1

Условный переход в файловую систему

1-5

Задание параметров кроссворда

5-6

Запуск алгоритма автоматического составления

6-7

Выбор одного из кроссвордов

7-8

Переход к редактированию кроссворда

19-8

Переход к редактированию кроссворда

9-8

Переход к редактированию кроссворда

15-8

Переход к редактированию кроссворда

13-8

Переход к редактированию кроссворда

11-8

Переход к редактированию кроссворда

17-8

Переход к редактированию кроссворда

10-13

Выбор языка

8-9

Сохранение кроссворда

2-14

Сохранение словаря

2-18

Создание нового словаря

12-1

Доступ к главному меню

2-17

Визуализация

12-17

Визуализация

8-17

Визуализация

17-2

Возврат к редактированию словарей

17-12

Возврат к ручному отгадыванию кроссворда

17-8

Возврат к редактированию кроссвордов

0-4

Показ помощи

4-0

Возврат из помощи в исходное состояние

2-14

Сохранение словаря

2-18

Создание нового словаря

14-2

Возврат к редактированию словарей

18-2

Возврат к редактированию словарей
^

1.2Описание структур данных


В разработанной программе большинство объектов предназначены для качественной визуализации процессов создания кроссворда и его дальнейшего разгадывания. Следовательно, вышеупомянутые объекты никак не влияют на «рабочие» данные – основную информацию в программе. Промежуточные (или обслуживающие) данные сформированы таким образом, что их структура позволяет беспрепятственно передавать их из методов одного служебного класса в методы другого служебного класса. Так, например, при работе с объектами визуального отображения процесса используется графическая структура Delphi TPaint, позволяющая очень быстро и легко создавать, изменять и передавать графические данные. Но основной структурой данных в любой программе считается структура, которую имеют «рабочая» информация программной системы.

Основной алгоритм нашего проекта, связанный с генерацией кроссворда заданной длины, работает с отдельными словами из словаря. Следовательно, для работы алгоритму необходимо передать массив слов (или массив строковых величин). Но такой массив будет занимать очень много места в памяти и динамика такого массива весьма ограничена. Решение лежит на поверхности – необходимо предавать в алгоритм текстовый файл, из которого в самом алгоритме будет сформирован рабочий строковый массив. Это очень удобно, так как многотысячные словари целесообразно хранить на диске в виде текстовых файлов, которые обеспечивают:

  • легкий и быстрый допуск к файлу;

  • простота операций над текстовой информацией;

  • сравнительно небольшой объём на диске.

По завершении работы основного алгоритма программной системы в нём формируется выходной список подобранных слов – строковый список. В качестве результирующего списка мы взяли список стандартного типа Delphi TStringList, который занимает мало места в памяти и при этом позволяет хранить очень большие объёмы данных в упорядоченном по определённому признаку виде. Далее этот результирующий список сохраняется на диск в виде того же текстового файла для дальнейшего разгадывания. Это позволяет разгадывать ранее загаданный кроссворд.

Итак, в нашей разработанной программной системе используются две структуры данных – строковые массивы и строковые списки. Для удобства передачи информации из подсистемы создания кроссворда в подсистему его разгадывания используются потоки данных – текстовые файлы.
^

1.3Классы объектов


В разработанной программе существует всего 2 класса TMainForm и TKross.

TMainForm отвечает за визуализацию всех процессов происходящих в программе, а также за работу со словарями. Класс TKross отвечает за работу с кроссвордами.

TMainForm = class(TForm)

MainControlBar: TControlBar;

MainStatusLine: TStatusBar;

DialogOpen: TOpenDialog;

DialogSave: TSaveDialog;

DialogFind: TFindDialog;

GridDic: TStringGrid;

KrossBox: TScrollBox;

ButtonNew: TToolButton;

ButtonOpen: TToolButton;

ButtonSave: TToolButton;

ButtonHelp: TToolButton;

ButtonAbout: TToolButton;

ButtonDicInsert: TToolButton;

ButtonDicDelete: TToolButton;

ButtonDicRedact: TToolButton;

ButtonDicSeparator1: TToolButton;

ButtonDicFind: TToolButton;

ButtonDicSeparator2: TToolButton;

ButtonDicInclude: TToolButton;

ButtonKrossViewLine: TToolButton;

ButtonKrossViewSnake: TToolButton;

ButtonKrossViewSpiral: TToolButton;

ButtonKrossViewZabor: TToolButton;

ButtonKrossViewSeparator1: TToolButton;

ButtonKrossViewHeight: TSpinEdit;

ButtonKrossViewWidth: TSpinEdit;

ButtonKrossViewLabelWidth: TLabel;

ButtonKrossViewLabelHeight: TLabel;

ButtonKrossSizeSpinMax: TSpinEdit;

ButtonKrossSizeSpinOstatok: TSpinEdit;

ButtonKrossSizeLabelMax: TLabel;

ButtonKrossSizeLabelOstatok: TLabel;

ButtonKrossSizeStart: TToolButton;

ButtonKrossSizeSeparator1: TToolButton;

ButtonKrossSizeSpinCheck: TSpinEdit;

ButtonKrossSizeLabelCheck: TLabel;

ButtonKrossSizeSeparator2: TToolButton;

ButtonKrossSizeStop: TToolButton;

ButtonKrossSizeCheck: TToolButton;

ButtonEdit: TEdit;

ButtonMenuFile: TToolButton;

ButtonMenuKross: TToolButton;

ButtonMenuDic: TToolButton;

ButtonMenuHelp: TToolButton;

ImagesFile: TImageList;

ImagesKrossView: TImageList;

ImagesKrossSize: TImageList;

ImagesDic: TImageList;

ImagesHelp: TImageList;

ImagesOnOff: TImageList;

ImagesNew: TImageList;

ImagesOpen: TImageList;

MenuFileNew: TMenuItem;

MenuFileOpen: TMenuItem;

MenuFileSave: TMenuItem;

MenuFileSaveAs: TMenuItem;

MenuFileSeparator1: TMenuItem;

MenuFileExit: TMenuItem;

MenuFileNewDic: TMenuItem;

MenuFileNewKross: TMenuItem;

MenuFileOpenKross: TMenuItem;

MenuFileOpenDic: TMenuItem;

MenuKrossView: TMenuItem;

MenuKrossViewLine: TMenuItem;

MenuKrossViewSnake: TMenuItem;

MenuKrossViewSpiral: TMenuItem;

MenuKrossViewZabor: TMenuItem;

MenuKrossSeparator1: TMenuItem;

MenuKrossRun: TMenuItem;

MenuDicInsert: TMenuItem;

MenuDicDelete: TMenuItem;

MenuDicRedact: TMenuItem;

MenuDicSeparator1: TMenuItem;

MenuDicFind: TMenuItem;

MenuDicSeparator2: TMenuItem;

MenuDicInclude: TMenuItem;

MenuHelpAbout: TMenuItem;

MenuHelpSeparator1: TMenuItem;

MenuHelpHelp: TMenuItem;

PopUpFile: TPopupMenu;

PopUpKross: TPopupMenu;

PopUpDic: TPopupMenu;

PopUpHelp: TPopupMenu;

PopUpNew: TPopupMenu;

PopUpNewKross: TMenuItem;

PopUpNewDic: TMenuItem;

PopUpOpen: TPopupMenu;

PopUpOpenKross: TMenuItem;

PopUpOpenDic: TMenuItem;

PopUpToolBar: TPopupMenu;

PopUpToolBarFile: TMenuItem;

PopUpToolBarView: TMenuItem;

PopUpToolBarSize: TMenuItem;

PopUpToolBarEdit: TMenuItem;

PopUpToolBarDic: TMenuItem;

PopUpToolBarHelp: TMenuItem;

ToolBarFile: TToolBar;

ToolBarKrossView: TToolBar;

ToolBarKrossSize: TToolBar;

ToolBarEdit: TToolBar;

ToolBarDic: TToolBar;

ToolBarHelp: TToolBar;

PaintBox: TPaintBox;

RefreshButton: TButton;

ButtonKrossSizeLabelNalogenie: TLabel;

ButtonKrossSizeSpinNalogenie: TSpinEdit;

AnimateMain: TAnimate;

ToolBarClose: TToolBar;

ButtonClose: TToolButton;

ImagesClose: TImageList;

ToolBarCaption: TToolBar;

EditCaption: TEdit;

MenuKrossSeparator2: TMenuItem;

MenuKrossAns: TMenuItem;

ButtonKrossAnsAuto: TToolButton;

cbVisual: TCheckBox;

ButtonCloseSeparator1: TToolButton;

ButtonKrossAnsMan: TToolButton;

ButtonKrossSizeCheckMan: TToolButton;

procedure FormCreate(Sender: TObject);

procedure ShowHint(Sender: TObject);

//Обработчики команд

procedure FileNew(Sender : TObject;

Messager : LongWord);

function CheckDicFile(Name : string;

var Size : integer;

var lng : LongWord;

var Mean : string):boolean;

procedure FileOpen(Sender : TObject;

Messager : LongWord);

procedure FileSave(Sender : TObject;

Messager : LongWord);

procedure FileSaveAs(Sender : TObject;

Messager : LongWord);

procedure KrossView(Messager : LongWord);

procedure KrossRun;

function AnswerRun(FileName : string;

var CurLang : LongWord) : boolean;

procedure KrossRefresh(View : LongWord;

KrossStr : AnsiString;

StartPos, EndPos : integer);

procedure HelpHelp(Sender: TObject;

Messager : LongWord);

procedure InsertInGrid(Wrd : String; Mean : String);

procedure DeleteFromGrid(pos : integer);

procedure RedactInGrid(Wrd : String; Mean : String);

procedure FindInGrid(Wrd : String);

procedure FormCloseQuery(Sender: TObject;

var CanClose: Boolean);

//Обработчики сообщений от мышки и меню

procedure MenuFileNewKrossClick(Sender: TObject);

procedure MenuFileNewDicClick(Sender: TObject);

procedure MenuFileOpenKrossClick(Sender: TObject);

procedure MenuFileOpenDicClick(Sender: TObject);

procedure MenuFileSaveClick(Sender: TObject);

procedure MenuFileSaveAsClick(Sender: TObject);

procedure MenuFileExitClick(Sender: TObject);

procedure MenuDicInsertClick(Sender: TObject);

procedure MenuDicDeleteClick(Sender: TObject);

procedure MenuDicRedactClick(Sender: TObject);

procedure MenuDicFindClick(Sender: TObject);

procedure MenuDicIncludeClick(Sender: TObject);

procedure MenuKrossViewLineClick(Sender: TObject);

procedure MenuKrossViewSnakeClick(Sender: TObject);

procedure MenuKrossViewSpiralClick(Sender: TObject);

procedure MenuKrossViewZaborClick(Sender: TObject);

procedure MenuKrossRunClick(Sender: TObject);

procedure MenuKrossAnsAutoClick(Sender: TObject);

procedure MenuHelpHelpClick(Sender: TObject);

procedure MenuHelpAboutClick(Sender: TObject);

procedure PopUpToolBarClick(index : byte);

procedure PopUpToolBarFileClick(Sender: TObject);

procedure PopUpToolBarViewClick(Sender: TObject);

procedure PopUpToolBarSizeClick(Sender: TObject);

procedure PopUpToolBarEditClick(Sender: TObject);

procedure PopUpToolBarDicClick(Sender: TObject);

procedure PopUpToolBarHelpClick(Sender: TObject);

procedure GridDicSelectCell(Sender: TObject;

ACol, ARow: Integer;

var CanSelect: Boolean);

procedure GridDicKeyDown(Sender: TObject;

var Key: Word;

Shift: TShiftState);

procedure FormKeyDown(Sender: TObject;

var Key: Word;

Shift: TShiftState);

procedure DialogFindFind(Sender: TObject);

procedure RefreshButtonClick(Sender: TObject);

procedure ButtonKrossSizeCheckClick(Sender: TObject);

procedure ButtonKrossSizeSpinCheckChange(Sender: TObject);

procedure ButtonCloseClick(Sender: TObject);

procedure ButtonEditKeyDown(Sender: TObject;

var Key: Word;

Shift: TShiftState);

procedure ButtonEditKeyUp(Sender: TObject;

var Key: Word;

Shift: TShiftState);

procedure ButtonEditKeyPress(Sender: TObject;

var Key: Char);

procedure ButtonEditMouseUp(Sender: TObject;

Button: TMouseButton;

Shift: TShiftState;

X, Y: Integer);

procedure ButtonEditClick(Sender: TObject);

procedure ButtonEditDblClick(Sender: TObject);

procedure ToolBarCaptionResize(Sender: TObject);

procedure EditCaptionKeyPress(Sender: TObject;

var Key: Char);

procedure ButtonKrossAnsManClick(Sender: TObject);

procedure ButtonKrossSizeCheckManClick(Sender: TObject);

private

LetW, LetH : integer;

View : LongWord;

end;
TTmpKross = ^PTmpKross;

PTmpKross = record

StartPos, //начальная и конечная

EndPos : integer; //позиция в строке редактирования

Wrd : string;

Mean : string;

Ans : boolean;

Next : TTmpKross;

end;
TKrossList = ^PKrossList;

PKrossList = record

Krs : TTmpKross;

next : TKrossList;

end;
TDic = ^PDic;

PDic = record

FileName,

DicCaption : string;

Dic : TStringList;

next : TDic;

end;
TKross = class(TObject)

MaxLet, //Максимум букв

Rest, //остаток

Jount : integer; //Наложение

DicDir : string; //'C:\...\'-Путь к словарям

IncludeDic : TStrings; //Имена файлов словарей

//Инициализация

constructor KrossInit;

//Делает текущий кроссворд основным

procedure DoKrossCurrently;

//Вставка словаря в список

procedure InsertDicInList(var Elem : TDic);

//Удаление словаря из списка

procedure DeleteDicFromList(FileName : string);

//Удаление всех словарей из списка

procedure DeleteAllDicFromList;

//Удаление текущего словаря

procedure DeleteCurKross;

function CheckExistingWord : integer;

//Возвращает строку кроссворда

function GetKrossLine(Num : integer) : AnsiString;

//Автоматическое составление

function CreateAuto : integer;

//Разгадывает кроссворд, но перед вызовом этой процедуры необходимо

//вызвать процедуру CheckAnsFile, а также Ans = false. Процедура

//если разгадает кроссворд в Ans возвратит true

procedure DoAnswerKross(var Ans : boolean;

Count : integer;

RightWay : AnsiString);

//забивает определения из файлов

procedure DoCaptionsFromDic;

//Возвращает определение по позиции указателя в строке, начиная с 1 или

//меняет его

function GetChangeCaption(GC : boolean;

NewS : string;

Pos : integer;

var StartPos : integer;

var EndPos : integer) : string;

//проверка на принадлежность буквы пересечению

function InExt(Pos : integer) : boolean;

//Сохранение кроссворда

procedure SaveKross(FileName : string;

Lang : string); //@Lang Rus

//Чтение и проверка файла кроссворда на правильность записи

function ReadAndCheck(FileName : string;

var Lang: string) : integer;

//Проверка строки на принадлежность языку

function CheckForLang(S : string;

Lang : string) : boolean;

//Удаление буквы из кроссворда по указанной позиции

procedure DeleteLetter(Pos : integer);

//Вставляет букву в кроссворд

function InsertLetterInKross(Pos : integer;

Letter : char) : boolean;

//Проверка на правильность формата файла для разгадывания

//Язык должен быть настроен извне (CurrentLang)

function CheckAnsFile(FileName : string) : integer;

public

//Удаление класса из памяти

destructor Destroy; override;

private

//Голова списка словарей

HeadDicList : TDic;

//Голова списка кроссвордов

HeadKrossList : TKrossList;

//Голова текущего видимого кроссворда

HeadCurKross : TTmpKross;

WrdCount : integer;

//Строка текущего кроссворда

KrossStr : AnsiString;

//Количество кроссвордов

KrossCount : integer;

//Номер текущего кроссворд

CurrentKross : integer;

//Функция проверяет, отгадан ли кроссворд полностью?

function CheckForAnswer : boolean;

//Функция имеет два состояния определяемых параметром ToCheck:

//True: пометить слово кроссворда отгаданным

//False: проверить, помечено ли слово

function WrdCheck(Pos : integer;

ToCheck : boolean) : boolean;

//Возвращает слово по позиции в кроссворде

function GetWordByPos(Pos : integer) : string;

//Возвращает координаты слова в строке кроссворда по позиции в списке

procedure GetWordPosByNum(Pos : integer; //позиция в кроссворде

var x1, x2 : integer);//коор-ты слова

//Проверка: Относится ли буква из KrossLine к отгаданным?

function IsAnswered(Pos : integer) : boolean;

//Нахождение свободного пути для выбора

function GetEmptyPos(RightWay,

WrongWay : AnsiString) : integer;

//Проверка слов на совместимость начала и конца

function CmpWrdExt(Ext : string) : boolean;

//Вставка нового кроссворда в список

procedure InsertNewKross;

//Рекурсивная функция составления кроссвордов

procedure DoKross(Count : integer;

Krosslen : integer;

RightWay : AnsiString);

//Получение слова по индексу из списка слов словарей

function GetWrd(Index : integer) : string;

//Удаление одного кроссворда из списка кроссвордов

procedure DeleteOneKross(Elem : TTmpKross);

//Вставка определения

procedure InsertCaption(Wrd : string;

Cap : string);

//Выделение слова в TS из S

procedure ReadWord(var S : string;

var TS : string);

//Переставляет элементы в обратном порядке и устанавливает границы

//Изначально слова в списке идут с начала

procedure DoKrossBorder;

//Беря исходный список HeadCurKross в формате StartPos = кол-ву букв

//в слове. Слов идут с конца, т.е. голова содержит последнее слово

//в кроссворде. Затем приводит кроссворд в божеский вид.

//Не устанавливает поля СЛОВО и ОПРЕДЕЛЕНИЕ

function DoKrossBorderAns : boolean;

//Устанавливает границы, т.е. уменьшает значения StartPos и EndPos

//на еденицу до Elem включительно

//Изначально слова в списке идут с конца(нормальный порядок)

procedure DoKrossBorderNormalDec(Elem : TTmpKross);

//Устанавливает границы, т.е. увеличивает значения StartPos и EndPos

//на еденицу до Elem включительно

//Изначально слова в списке идут с конца(нормальный порядок)

procedure DoKrossBorderNormalInc(Elem : TTmpKross);

//Вставка еще одного наложения

function InsertJount(Pos : integer) : boolean;

//Разбиение слова на два

procedure DivideWord(Elem : TTmpKross;

Pos : integer);

//Попытка вставить слово в разгадываемый кроссворд, true - успешно

function TryToInsert(Wrd : string) : boolean;

//Проверка на составление кроссворда, True - составлен

function KrossIsReady : boolean;

//Удаляет последнее вставленное слово в кроссворде

procedure DeleteLastWord;

end;

Иерархия классов представлена на рисунке 3.

1.4И
TScrollBox

TCustomMemo

TMemo

TObject

TPersistent

TComponent

TControl

TWinControl

TScrollingWinControl

TGraphicControl

TApplication

TForm

TMenu

TMainMenu

TEdit

TCustomEdit

TCustomControl

TCustomGroupBox

TCustomRadioGroup

TRadioGroup

Рисунок 3 – Иерархическая зависимость классов, используемых в ПС

TKross

TMainForm
ерархия классов

^

1.5Обоснование основных алгоритмов

1   2   3   4   5   6   7

Похожие:

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Пояснительная записка: с., рис., схем программ и алгоритмов, библиограф. Источник, приложения

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconПояснительная записка к курсовой работе по дисциплине «Интеллектуальные подсистемы сапр»
Пояснительная записка к курсовой работе 10 страниц, 2 рисунка, 1 таблица, 3 источника

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Произвести анализ предметной области по методологии объектной декомпозиции и разработать логический проект системы по технологии...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Произвести анализ предметной области по методологии объектной декомпозиции и разработать логический проект системы по технологии...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Произвести анализ предметной области по методологии объектной декомпозиции и разработать логический проект системы по технологии...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Произвести анализ предметной области по методологии объектной декомпозиции и разработать логический проект системы по технологии...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Произвести анализ предметной области по методологии объектной декомпозиции и разработать логический проект системы по технологии...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет по лабораторной работе по дисциплине "Технологии программирования"...
Произвести анализ предметной области по методологии объектной декомпозиции и разработать логический проект системы по технологии...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconОтчет о лабораторной работе должен содержать
Разработать экспертную систему, реализующую алгоритм обратной цепочки рассуждений на основе базы знаний, разработанной в лабораторной...

Автоматизированная система генерирования линейных кроссвордов Пояснительная записка к лабораторной работе iconПояснительная записка к курсовому проекту по дисциплине: «Процессоры...
Вычислительная система цифровой обработки сигналов в реальном времени пояснительная записка

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
www.vbibl.ru
Главная страница