Обзор средств программирования. Описание и свойства языка Delphi. Основания для разработки, ее назначение, предъявляемые требования, стадии разработки. Описание схемы основного модуля, процедур, программы. Используемые технические и программные средства.
Аннотация к работе
Автоматическим: исходные данные автоматически считываются с внешнего устройства (например, с файла на диске) и обрабатываются программой. Так как все классы наследуют функции базового класса TOBJECT, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом CLASSTYPE и функцией TYPEINFO, которые и обеспечат интроспекцию. Соответственно объект, имеющий тип какого-либо класса, является экземпляром (instance) этого класса или переменной этого типа. Если необходимо переименовать название проекта, нужно перезаписать этот файл, выбрав в меню File команду Save Project As: При задании имени следует придерживаться правил задания имен в Object Pascal. И так, любая программа всегда состоит из уже знакомого нам файла проекта (такой файл имеет расширение.dpr) и одного или нескольких модулей (файлы с расширением.pas) Файл проекта не предназначен для редактирования пользователем и создается автоматически самой системой программирования Delphi.Разработанная в ходе выполнения курсового проекта программа удовлетворяет всем требованиям задания, что подтверждается протоколом испытаний.
Введение
В настоящее время компьютеры широко применяются в самых разных областях: науке, промышленности, медицине, образовании. Применение компьютеров в лингвистике в настоящее время позволяет произвести глубокий анализ лингвистических особенностей различных языков, автоматизировать получение статистики встречаемости слов или букв того или иного языка.
Созданная в данном курсовом проекте программа частотного анализа текста (пословного) может быть использована для выявления наиболее часто встречающихся слов разных языков, для формирования словарей, для получения статистической информации.
1. Теоретические основы разработки.
1.1 Описание предметной области
Частотность - термин лексикостатистики, предназначенный для определения наиболее употребительных слов. Расчет осуществляется по формуле:
Где - частотность слова «х», - количество словоупотреблений слова «х», а - общее количество слов. В большинстве случаев, частотность выражается в процентах.
Аналогичным образом, определяется частотность для букв. Большая частотность согласных на данном отрезке текста (например, в стихотворениях) получила название аллитерация. Высокие показатели частотности гласных называются ассонансом. Частотный анализ текста (посимвольный) используется в криптографии для выявления наиболее частотных букв того или иного языка. Частотный анализ текста (пословный) используется для выявления наиболее часто употребляемых слов того или иного языка. В словарях частотность слов может отражаться пометами - употребительное, малоупотребительное и т.д.
1.2 Анализ методов решения
Частотный анализ текста может быть реализован следующими способами: Ручным: этот способ является трудоемким и требует больших затрат времени.
Автоматизированным: исходные данные вводятся вручную, а результат рассчитывается программой на компьютере.
Автоматическим: исходные данные автоматически считываются с внешнего устройства (например, с файла на диске) и обрабатываются программой.
Автоматический способ может быть использован, если требуется обрабатывать большие объемы текстов, в таком случае можно заранее подготовить файл исходных данных и затем использовать его в качестве входных данных программы. В нашем случае более целесообразно использовать автоматический способ, то есть вводить исходные данные из файла. При этом, можно предусмотреть возможность также и ручного ввода данных с клавиатуры.
1.3 Обзор средств программирования
Язык Pascal, в настоящее время это язык имеет более широкую сферу применения, чем предусматривалось при его создании. Свое признание Паскаль получил с появлением пакета Турбо Паскаль (Turbo Pascal). Этот язык отличается простотой понимания, стройностью и структурностью алгоритмов, быстротой компилятора и удобными средствами создания и отладки программ.
Достоинствами языка Паскаль являются: 1. Простой синтаксис языка. Небольшое число базовых понятий. Программы на Паскале достаточно легко читаемы.
2. Достаточно низкие аппаратные и системные требования как самого компилятора, так и программ, написанных на Паскале.
3. Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования.
4. Поддержка структурного програмирования, программирования «сверху-вниз», а также объектно-ориентированного программирования.
Delphi - среда программирования, в которой используется язык программирования Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.
Мечта программистов о среде программирования, в которой бы простота и удобство сочетались с мощью и гибкостью, стала реальностью с появлением среды Delphi. Она обеспечивала визуальное проектирование пользовательского интерфейса, имела развитый объектно-ориентированный язык Object Pascal (позже переименованный в Delphi) и уникальные по своей простоте и мощи средства доступа к базам данных. Язык Delphi по возможностям значительно превзошел язык Basic и даже в чем-то язык C , но при этом он оказался весьма надежным и легким в изучении (особенно в сравнении с языком C ). В результате, среда Delphi позволила программистам легко создавать собственные компоненты и строить из них профессиональные программы. Среда оказалась настолько удачной, что по запросам любителей C была позже создана среда C Builder - клон среды Delphi на основе языка C (с расширенным синтаксисом).
1.4 Описание языка Delphi программирование модуль язык delphi
Object Pascal - результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией - данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TOBJECT, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом CLASSTYPE и функцией TYPEINFO, которые и обеспечат интроспекцию.
Также отличительным свойством Object Pascal от С является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NEWINSTANCE и FREEINSTANCE класса TOBJECT. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу - там и буду лежать». Соответственно организуется и «многокучность».
Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal.
Delphi оказал огромное влияние на создание концепции языка C# для платформы.NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.
?Объектно-ориентированные особенности языка
Инкапсуляция
Объединение и скрытие объектных данных, а также обрабатывающих их методов внутри конкретного класса от пользователя называется инкапсуляцией.
Наследование
При создании новых объектов получить все свойства и методы от своих предков называют наследованием. Такие объекты унаследывают после своего создания все поля, свойства, события, методы и прочее от своих предков. Наследование часто избавляет разработчиков от рутинной работы и позволяет не мешкая приступить к разработке чего-то нового.
Полиморфизм
Это методы различных объектов, которые могут иметь одинаковые имена, но по внутреннему содержимому отличаются друг от друга.
Операторы
Список операторов через пробел: - * / div mod not and or xor shl shr ^ = >= @ in is as
Типы данных
Обрабатываемые в программе данные подразделяются на переменные, константы и литералы. Константы представляют собой данные, значения которых установлены в разделе объявления констант и не изменяются в процессе выполнения программы.
Объекты
Объекты как экземпляры класса объявляются в программе в разделе var как обычные переменные. Например: var
CCIRCLEL: TCOLORCIRCLE;
CIRCLEA: TCIRCLE;
Как и в случае записей, для обращения к конкретному элементу объекта (полю; свойству или методу) указывается имя объекта и имя элемента, разделенные точкой, то есть имя элемента является составным.
Классы
В языке Object Pascal классы - это специальные типы данных, используемые для описания объектов. Соответственно объект, имеющий тип какого-либо класса, является экземпляром (instance) этого класса или переменной этого типа.
Класс представляет собой особый тип записи, имеющий в своем составе такие элементы (члены, member), как поля, свойства и методы. Поля класса аналогичны полям записи и служат для хранения информации об объекте. Методами называются процедуры и функции, предназначенные для обработки полей. Свойства занимают промежуточное положение между полями и методами.
Алфавит языка
Алфавит - это совокупность допустимых в языке символов [2, С. 15]. Алфавит Турбо Паскаль включает следующий набор основных символов: · строчные и прописные латинские буквы: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
· пробел
· подчеркивание: _
· арабские цифры: 0 1 2 3 4 5 6 7 8 9
· знаки операций: - * / = =:= @
· ограничители: " () [] (.) {} (* *).:;
· спецификаторы: ^ # $
Служебные (зарезервированные) слова
ABSOLUTE EXPORTS LIBRARY SET
ASSEMBLER EXTERNAL MOD SHL
AND FAR NAME SHR
ARRAY FILE NIL STRING
ASM FOR NEAR THEN
ASSEMBLER FORWARD NOT TO
BEGIN FUNCTION OBJECT TYPE
CASE GOTO OF UNIT
CONST IF OR UNTIL
CONSTRUCTOR IMPLEMENTATION PACKED USES
DESTRUCTOR IN PRIVATE VAR
DIV INDEX PROCEDURE VIRTUAL
DO INHERITED PROGRAM WHILE
DOWNTO INLINE PUBLIC WITH
ELSE INTERFACE RECORD XOR
END INTERRUPT REPEAT
EXPORT LABEL RESIDENT
Структура проекта
Файл проекта представляет собой программу, написанную на языке Object Pascal и предназначенную для обработки компилятором. Программа Delphi-это несколько связанных между собой файлов.
Главный файл проекта, изначально называется PROJECT1.DPR. Если необходимо переименовать название проекта, нужно перезаписать этот файл, выбрав в меню File команду Save Project As: При задании имени следует придерживаться правил задания имен в Object Pascal. Имя не должно содержать пробелов (используйте в таком случае знак подчеркивания), должно начинаться с буквы (цифры допустимы, но со второй позиции), не должно содержать других символов, кроме букв и цифр. Под каким именем вы сохраняете проект, под таким именем и будет создаваться исполняемый EXE файл, который вы всегда сможете самостоятельно переименовать.
Модуль программы, который автоматически появляется в начале работы Unit1. Файл называется UNIT1.PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN.PAS. Это делается аналогично переименованию названия проекта. Необходимо выбрать в меню File команду Save As: Сохраняется активный модуль в редакторе кода. Файл главной формы, который по умолчанию называется UNIT1.DFM, используется для сохранения информации о внешнем виде формы (окна разрабатываемого приложения). При переименовании названия модуля автоматически меняет свое название. Файл PROJECT1.RES изначально содержит иконку для проекта. Создается автоматически. Имеет одноименное название с названием проекта. Файл PROJECT1.DSK содержит информацию о состоянии рабочего пространства. Состояние окон во время разработки приложения. Исполняемый EXE файл, который создается в процессе компиляции проекта. Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES и DSK. После компиляции программы получаются файлы с расширениями: DCU - скомпилированные модули PAS для последующей быстрой компиляции некоторые файлы не перезаписываются
EXE - исполняемый файл
~PA, ~DP - backup файлы редактора. Автоматически создаются и содержат информацию, перед последним сохранением.
И так, любая программа всегда состоит из уже знакомого нам файла проекта (такой файл имеет расширение.dpr) и одного или нескольких модулей (файлы с расширением.pas) Файл проекта не предназначен для редактирования пользователем и создается автоматически самой системой программирования Delphi. Для того, чтобы увидеть содержимое файла проекта, необходимо выполнить команду Project|View Source. Содержимое файла проекта может быть, например, следующим: program Project1;
uses
Forms, unit in "Unit1.pas" {Form};
{$R *.RES} begin
Application. Initialize;
Application. CREATEFORM (TFORM1, Form1);
Application. Run;
end.
Файл проекта (главный модуль) начинается словом program, за которым следует имя программы, совпадающее с именем проекта. Далее за словом uses следуют имена используемых модулей: стандартного модуля Forms и модуля формы Unit1. Похожая на комментарий директива {$R *.RES} указывает компилятору, что нужно использовать файл ресурсов, который содержит описание ресурсов приложения, например, пиктограммы. Звездочка указывает, что имя файла ресурсов такое же, как и у файла проекта, но с раширением.res. Исполняемая часть главного модуля находится между операторными скобками begin:end. Операторы исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна. Помимо главного модуля каждая программа включает как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающи* * *аботу процедур. В Delphi каждой форме соответствует свой модуль. Для переключения между формой и окном редактора кода, содержащего соответствующий модуль, следует нажать на клавишу F12. Модули-это программные единицы, служащие для размещения фрагментов программ. При помощи содержащихся в них текстов программ и реализуется решаемая пользователем задача.
Методы
Методами называются инкапсулированные в классе процедуры и функции. Например: type
TCHILDCLASS = CLASSFONE: Integer;
Ftwo: string;
Fthree: Tobject;
function FIRSTFUNS (x: real): real;
procedure SECONDPROC;
end
Для того чтобы обратиться к методам, как и для полей, необходимо использовать составные имена: var
MYOBJECT: TCHILDCLASS;
y: real;
begin
MYOBJECT. SECONDPROC;
y:= MYOBJECT. FIRSTFUNC (3.14);
end;
Методы, определенные в классе, могут быть статическими, виртуальными, динамическими или абстрактными. Тип метода определяется механизмом перекрытия его в потомках. Для статических методов перекрытие осуществляется компилятором. Например, пусть у нас имеется описание родительского класса Tbase и его потомка Tdescedant, содержащих одноименный метод
MYJOY: type
Tbase = class procedure MYJOY;
end;
Tdescedant = class(Tbase) procedure MYJOY;
end;
var
FIRSTOBJECT: Tbase;
SECONDOBJECT: Tdescedant;
begin
FIRSTOBJECT. MYJOY;
SECONDOBJECT. MYJOY;
end;
В соответствии с принципом полиморфизма в операторе FIRSTOBJECT. MYJOY; вызывается метод, описанный в классе Tbase, а в операторе SECONDOBJECT. MYJOY; Вызывается метод, описанный в классе Tdescedant. По умолчанию все методы, описанные в классе, являются статическими. Динамические и виртуальные методы отличаются от статических тем, что замещение родительских методов методами потомков происходит на этапе выполнения прогрммы. Для обьявления виртуального метода в родительском классе необходимо использовать зарезервированное слово virtual, а для обьявления динамического метода-зарезервированное слово dynamic.В классе-потомке в загаловке замещающего метода должно быть указано зарезервированное слово override. Например: type
Если бы мы захотели, чтобы метод MYJOY в классе Tbase был динамическим, слово virtual в заголовке процедуры следует заменить словом dynamic. Различие между виртуальными и динамическими методами невилико и связано с особенностями реализации их вызовов. Можно сказать, что виртуальные методы более эффективны с точки зрения затрат времени, а динамические методы позволяют более рационально использовать оперативную память. Абстрактными называются виртуальный или динамические методы, которые определены в классе, но не содержат никаких действий, никогда не вызываются и обязательно должны быть переопределены в классах-потомках. Обьявляется абстрактный метод при помощи зарезервированного слова abstract, расположенного после слов virtual или dynamic, например: procedure MYMETOD; virtual; abstrat; Основное предназначение абстрактных методов-быть родоначальником иерархий конкретных методов в классах-потомках. В любом классе содержатся два специальных метода-конструктор и деструктор. Эти методы содержатся в классе-родоначальнике всех остальных классов-Tobject и, следовательно, наследуются потомками. Как и другие методы, они могут быть изменины в классах-потомках, т.е.перекрыты. В классе Tobject и в большинстве его потомков конструктор и деструктор называются Create и Destroy соответственно. Конструкторы предназначены для создания и инициализации обьекта. Дело в том, что обьект в языке Object Pascal является динамической структурой и переменная-обьект содержит не сами данныые, а ссылку на них. Конструктор распределяет обьект в динамической памяти и присваивает полям обьекта начальные значения. При этом поля порядковых типов в качестве начального значения получают 0, строкового-пустую строку, поля-указатели-значения nil, поля-варианты-Unassigned. Кроме того, конструктор помещает ссылку на созданный обьект в переменную Self, которая автоматически обьявляется в классе. Из сказанного следует, что обращение к полям, свойствам и методам обьекта должно осуществляться только после вызова конструктора. Деструктор освобождает динамическю память и разрушает обьект. Для обьявления конструктора и деструктора используются зарезервированные слова constructor и destructor соответственно. Например: type
Tsample = CLASSTEXT: string;
constructor Create;
destructor Destroy;
end;
Для того, чтобы создать обьект, необходимо применить метод-конструктор к классу обьекта: VARMYOBJECT: TSAMPLE;
begin
MYOBJECT:= TSAMPLE. Create;
end;
Если создается класс-потомок и при его создании планируется осуществить некоторые дополнительные действия, отсутствующие у класса-родителя, то в конструкторе класса-потомка следует сначала вызвать конструктор своего родителя, а уже потом осуществлять дополнительные действия. Вызвать любой перекрытый метод родительского класса можно при помощи зарезервированного слова inherited(унаследованный). Например, если в классе TDESCEDANT имеется свой собственный конструктор TYPETDESCEDANT = class(TBASE) FMARK: Boolean;
constructor Create (Mark: Boolean);
end;
то его реализация могла бы быть такой: constructor TDESCEDANT. Create (Mark: Boolean);
begin inherited Create;
Emark:= Mark;
end;
где вызов родительского конструктора осуществляется оператором inherited Create; а оператор Emark:= Mark; Осуществляет дополнительные действия. Кроме деструктора Destroy, в базовом классе Tobject определен метод Free, который прежде проверяет, был ли обьект на самом деле реализован и только потом вызывает метод Destroy. Если обьект не был создан конструктором, то обращение к деструктору, приведет к генерации исключительной ситуации. Следовательно, для уничтожения ненужного обьекта удобнее использовать метод Free, например: MYOBJECT. Free; В классе могут быть определены методы, которые могут вызываться без создания и инициализации обьекта. Эти методы называются методами класса, и для их обьявления используется зарезервированное слово class. Например: type
TCHILDCLASS = class(Tobject) class function CHILDCLASSINFO: string;
end;
vary: string;
begin y:= CHILDCLASSINFO;
end;
Как правило, методы класса предназначены для справочной информации о классе-имени класса, предке класса, размере класса и т.д.
События
Событие-это то, что происходит в процессе работы программы. В Delphi определенно несколько десятков типовых событий. Рассмотрим, что представляют собой события с точки зрения языка Object Pascal. Событие-это свойство процедурного типа, и его значением является указатель на некоторый метод. Присвоить такому свойству значение означает указать адрес метода, который будет выполняться в момент наступления события. Такие методы называются обработчиками событий. В качестве примера рассмотрим, как описаны стандартные события ONDBLCLICK (возникает при двойном щелчке левой кнопкой мыши), ONMOUSEDOWN (возникает при нажатии кнопки мыши) и ONMOUSEMOVE (возникает при перемещении мыши) в классе TCONTROL: Tcontrol = class(Tcomponent) Private FONDBLCLICK: TNOTIFYEVENT; FONMOUSEDOWN: TMOUSEEVENT; FONMOUSEMOVE: TMOUSEMOVEEVENT protected property ONDBLCLICK: Tnotify read FONDBLCLICK WRITEFONDBLCLICK; Property ONMOUSEDOWN: TMOUSEEVENT read FONMOUSEDOWN WRITEPROPERTY ONMOUSEMOVE: TMOUSEMOVEEVENT read FONMOUSEMOVE WRITEFONMOUSEMOVE; end; Назначение зарезервированных слов private и protected мы рассотрим позже, а пока отметим следующее. Поля FONDBLCLICK, FONMOUSEDOWN и FONMOUSEMOVE, используемые при описании свойств-событии, предназначенны для хранения указателя на метод, являющийся обработчиком соответствующего события. Используемые при описаний полей процедурные типы определяются следующим образом: TYPETNOTIFYEVENT = procedure (Sender: Tobject) of object; TMOUSEEVENT = procedure (Sender: Tobject; Button: TMOUSEBUTTON; Shift: TSHIFTSTATE; x, y: Integer) of object; TMOUSEMOVEEVENT = procedure (Sender: Tobject; Shift: TSHIFTSTATE; X, y: Integer) of object; Общим для всех процедурных типов является параметр Sender, содержащий указатель на обьект-источник события. Параметр Button содержит информацию, какая клавиша мыши была нажата. Параметр Shift содержит код клавиши, нажатой на клавиатуре.x и y - текущие координаты мыши в пределах компонента.
Поля
Полями называются инкапсулированные в классе данные. Поля класса подобны полям записи, но в отличие от них могут быть любого типа, в том числе классами, например: type TCHILDCLASS = class Fone: Integer; Ftwo: String; Fthree: TOBJECT; end; Исходя из принципа инкапсуляции, обращение к полям должно осуществляется при помощи методов и свойств класса. Вместе с тем, в Object Pascal допускается обращаться к полям и непосредственно. Для того чтобы обратиться к полю, необходимо записать составные имя, состоящее из имени класса и имени поля, разделенных точкой, например: var MYOBJECT: TCHILDCLASS; begin MYOBJECT. Fone:= 16; MYOBJECT. Ftwo:= "Некоторое строковое значение"; end; Обычно имя поля такое же, как и имя соответствующего свойства, но к имени поля в качестве первой буквы добавляют букву F.
2. Практическая часть
2.1 Постановка задачи
Частотный анализ текста (пословный). (Подсчитывается относительная частота встречаемости каждого слова в тексте; границами слов являются символы: точка, запятая, двоеточие, точка с запятой, пробел, скобки, тире, вопросительный и восклицательный знаки.)
А) Текст вводится из текстового файла произвольной длины; вывод результатов на экран, принтер или в файле по желанию пользователя.
Б) Текст вводится с клавиатуры, должна быть возможность записи его в файл; вывод результатов на экран, принтер или в файл по желанию пользователя.
В) Текст вводится по выбору пользователя с клавиатуры (при этом должна быть возможность записи его в файл), либо из текстового файла; вывод результатов - на экран, принтер или в файл по желанию пользователя.
Г) Текст вводится по выбору пользователя с клавиатуры (при этом должна быть возможность записи его в файл), либо из текстового файла; должна быть возможность анализа как всего текста, так и любой его части (часть, подлежащая анализу, выделяется с помощью клавиш со стрелками). Вывод результатов - на экран, принтер или в файл по желанию пользователя.
2.1.1 Основания для разработки
Основанием для разработки является задание преподавателя в соответствии с программой курса «Технология разработки программных продуктов».
2.1.2 Назначение программы
Разрабатываемая программа предназначения для нахождения частотного анализа текста (пословного).
2.1.3 Требования к программе
Требования к функциональным характеристикам
Программа должна: - Позволять работать с вводимыми значениями в текстовый файл
- Подсчитывать относительную частоту встречаемости слов разной длины
- По желанию пользователя выводить ответ на экран, файл или принтер
- Обеспечить удобный интерфейс, позволяющий даже неподготовленному пользователю с легкостью работать с программой
- Работать в реальном масштабе времени
Входные данные
Входными данными является текст произвольной длины.
Выходными данными являются: Подсчитывается относительная частота встречаемости каждого слова в тексте, вывод результатов на экран, принтер или в файл по желанию пользователя
Требования к надежности
Требования к надежности программы отсутствуют, так как при отказе программы ее можно выполнить повторно.
Требования к условиям эксплуатации
Программа должна эксплуатироваться в условиях вычислительного центра при температуре от 15 до 35 С и относительной влажности воздуха от 25 до 85%.
Программа не требует специального обслуживания, а ее сопровождение выполняется самим автором.
Работа с программой не должна требовать специальных навыков, кроме умения работать с клавиатурой компьютера и принтером.
Требования к техническим средствам
Программа должна работать на IBM PC-совместимых компьютерах с процессором 80386 и выше, объемом оперативной памяти 1 Мбайт и выше, цветным монитором EGA/VGA и выше под управлением операционной системы Windows 3.11 и выше. Принтер необходим в тех случаях, когда предусмотрен вывод результатов на печать.
Требования к транспортировке и хранению
Диск с программой должен храниться вдали от электромагнитных полей и не подвергаться механической деформации. Место и условия хранения должны соответствовать санитарным требованиям отрасли. Сроки хранения устанавливаются в соответствии с гарантийными сроками поставщика носителей.
Основные требования к транспортировке - создание условий, исключающих механические повреждения носителя.
2.1.4 Требования к программной документации
Должны быть разработаны следующие программные документы: Текст программы (ГОСТ 19.401-78)
Описание программы (ГОСТ 19.402-78)
Руководство оператора (ГОСТ 19.505-79)
Программа и методика испытаний (ГОСТ 19.301-79)
Описание языка (ГОСТ 19.507-79)
2.1.5 Стадии разработки
Разработка программы должна вестись по следующему графику: Технический проект срок сдачи 05.02.2011
Рабочий проект срок сдачи
21.05.2011
Виды испытаний
Приемосдаточные испытания проводятся преподавателем.
2.2 Описание схем
2.2.1 Описание схемы основного модуля
Сначала происходит заполнение поля «Имя файла».
Далее, если стоит переключатель «Из файла», то кнопка «Открыть» становится доступной, происходит вызов процедуры Button1Click для открытия файла. Если стоит переключатель «С клавиатуры», то кнопка «Открыть» становится недоступной. Затем вызывается процедура Button2Click для сохранения файла, а потом процедура Button3Click для анализа текста. Результаты анализа выводятся в STRINGGRID1. Если установлен переключатель «Вывод в файл» результаты выводятся в файл, если установлен переключатель «Вывод на принтер» результаты выводятся на печать.
2.2.2 Описание процедуры Button1Click
Если стоит переключатель «Из файла», то происходит считывание из поля Edit 1 имени файла. Далее файл отрывается для чтения. Происходит проверка результатов последней операции ввода-вывода (открытия файла) с помощью переменной IORESULT.
Далее если ее значение не равно «0», то выдается сообщение об ошибке открытия файла и процедура завершает свою работу.
Если значение IORESULT равно «0», то в цикле построчно считывается информация из файла, и каждая строка добавляется в поле Memo. Затем файл закрывается.
2.2.3 Описание процедуры Button2Click
Сначала из поля Edit1 считывается имя файла. Далее файл открывается для перезаписи. В цикле, который выполняется столько раз, сколько строк в поле Memo1, каждая строка из поля Memo1 записывается в указанный файл. Далее файл закрывается и выдается сообщение, что данные были успешно сохранены.
2.2.4 Описание процедуры Button3Click
Сначала в цикле 1 происходит обнуление массива Kol и очищение массива slova. Затем в цикле 3 происходит подсчет суммы элементов массива Kol (общего количества слов). Затем проверяется, какой переключатель установлен, и происходит вывод результата либо на экран, либо на принтер, либо в файл.
2.2.5 Описание схемы-процедуры Analiz
В цикле проверяется каждый символ строки. Ксли он не равен разделителю, то символ добавляется в слово. Если он равен разделителю, то вызывается функция proverka (проверяется есть ли данное слово в массиве). Если слова нет, то оно добавляется в массив, а если оно есть, то увеличивается количество в соответствующей ячейке массива Kol.
2.2.6 Описание схемы процедуры proverka
В цикле проверяется совпадение слов в массиве slova с заданным словом. Если слово не найдено, то результатом функции proverka будет 0. Если слово найдено, то результатом функции proverka будет номер элемента в массиве.
2.4 Описание программы
2.4.1 Общие сведения
Программа Analiz предназначена для частотного анализа текста (пословного). Программа написана на языке Borland Delphi 7, работает под управлением операционной системы Windows 3.11 и выше.
2.4.2 Функциональное назначение
Программа Analiz предназначена для частотного анализа текста (пословного)
2.4.3 Используемые технические и программные средства
Программа может работать на IBM PC-совместимых компьютерах с процессором 80386 и выше, объемом оперативной памяти 1 Мбайт и выше, наличием цветного монитора EGA/VGA. Наличие жесткого диска не является обязательным, наличие принтера необходимо, если пользователь желает выводить на него результаты решения кубического уравнения.
2.4.4 Вызов и загрузка
Программа может быть загружена как с CD, так и с жесткого диска. В последнем случае требуется предварительно переписать программу с CD на жесткий диск.
Исполняемым файлом программы является файл Analiz.exe.
2.4.5 Входные и выходные данные
Входные данные
Входными данными является текст произвольной длины.
Выходными данными являются: Подсчитывается относительная частота встречаемости каждого слова в тексте, вывод результатов на экран, принтер или в файл по желанию пользователя
2.5 Руководство оператора
2.5.1 Назначение программы
Программа Analiz предназначена для частотного анализа текста (пословного)
2.5.2 Условия выполнения
Программа работает на IBM PC совместимых компьютерах с процессором 80386 и выше, объемом оперативной памяти 1 Мбайт и выше, цветным монитором EGA/VGA и выше, дисководом для гибких магнитных дисков 3.5» (1.44 Мбайт) под управлением операционной Windows 3.11 и выше.
2.6 Программа и методика испытаний
2.6.1 Объект испытаний
Объектом испытаний является программа Analiz, предназначенная для подсчета относительной частоты встречаемости слов разной длины.
2.6.2 Цель испытаний
Целью испытаний является проверка соответствия программы требованиям Технического Задания.
2.6.3 Требования к программе
В процессе испытаний подлежат проверке следующие требования к программе: Требования к функциональным характеристикам
Программа должна: 1. Обеспечивать ввод с клавиатуры исходных данных
2. Находить простые множители числа
3. Выводить результаты программы на экран, в файл или на принтер
Требования к информационной и программной совместимости
Текстовый файл с результатами работы программы должен иметь формат, позволяющий просматривать его с помощью текстовых редакторов типа edit или lexicon
Требования к маркировке и упаковке
Программа должна поставляться на диске в виде исполняемого Exe файла.
2.6.4 Требования к программной документации
На испытания должны быть представлены следующие программные документы: техническое задание текст программы описание программы руководство оператора описание языка
2.6.5 Средства и порядок испытаний
Для проведения испытаний необходимы следующие технические средства: IBM PC совместимый компьютер с процессором 80386 и выше, оперативной памятью 1 Мбайт и выше, цветным монитором EGA/VGA и выше CD-ROM и матричным принтером.
Для проведения испытаний необходимы следующие программные средства: Операционная система Windows 3.11 и выше
Текстовый редактор NCEDIT
Испытания проводятся в следующем порядке
1) проверяется наличие и комплектность программной документации (п. 2.6.4)
2) проверяется соответствие требованиям к маркировке и упаковке (п. 2.6.3.3)
3) проверяется соответствие требованиям к функциональным характеристикам (п. 2.6.3.1) способность программы обеспечивать ввод исходных данных способность решать уравнения с точностью 0.001 способность выводить результаты по желанию пользователя на экран, принтер или в файл.
4) проверяется соответствие требованиям к информационной и программной совместимости (п. 2.6.3.2)
2.6.6 Методы испытаний
- Запустите исполнительный файл
- Введите исходный текст
- Убедитесь, что после ввода всех данных, произошло считывание (вычисление) и вывод результатов
Результаты на экран выводятся по умолчанию после нажатия кнопки «Анализ».
Для проверки способности программы выводить результаты в файл, введите в качестве вывода результата «В файл». Убедитесь, что был создан файл для записи результатов.
Вывод
Разработанная в ходе выполнения курсового проекта программа удовлетворяет всем требованиям задания, что подтверждается протоколом испытаний.