Модульная структура программных продуктов — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Модульная структура программных продуктов

2020-12-06 792
Модульная структура программных продуктов 0.00 из 5.00 0 оценок
Заказать работу

Свойства модуля

Moдульное программирование основано на понятии модуля – логически взаимосвязанной совокупности функциональных элементов, оформленных в виде отдельного программного элемента.

Модуль обладает следующими характеристиками:

· Один вход и один выход. На входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатов, т. е. реализуется стандартный принцип IPO (Input – Process – Output) – входпроцессвыход.

· Функциональная завершенность. Модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки.

· Логическая независимость. Результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей.

· Слабые информационные связи с другими программными модулями. Обмен информацией между модулями должен быть по возможности минимизирован.

· Обозримый по размеру и сложности программный элемент.

Таким образом, модули содержат определение доступных для обработки данных, операции обработки данных, схемы взаимосвязи с другими модулями.

Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки.

 

Модульная структура программных продуктов

Принципы модульного программирования во многом сходны с принципами нисходящего проектирования. Сначала определяются состав и подчиненность функций, а затем – набор программных модулей, реализующих эти функции.

Однотипные функции реализуются одними и теми же модулями. Функция верхнего уровня обеспечивается главным модулем. Он управляет выполнением нижестоящих функций, которым соответствуют подчиненные модули.

При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:

· каждый модуль вызывается на выполнение вышестоящим модулем и, закончив работу, возвращает управление вызвавшему его модулю;

· принятие основных решений в алгоритме выносится на максимально «высокий» по иерархии уровень;

· для использования одной и той же функции в разных местах алгоритма создается один модуль, который вызывается на выполнение по мере необходимости.

В результате дальнейшей детализации алгоритма создается функционально-модульная схема (ФМС) алгоритма приложения, которая является основой для программирования (рис. 1).

 

 


Рис. 1. Функционально-модульная структура приложения

 

Рис. 1 демонстрирует следующие особенности распределения функций по модулям:

· некоторые функции могут выполняться с помощью одного и того же программного модуля, например, функции Ф1 и Ф2;

· функция Ф3 реализуется в виде последовательности выполнения программных модулей;

· функция Ф4 осуществляется с помощью иерархии связанных модулей;

· функция Ф5 реализуется одним программным модулем;

· модуль 6 управляет выбором на выполнение подчиненных модулей.

Состав и вид программных модулей, их назначение и характер использования в программе в значительной степени определяются инструментальными средствами, т. е. системой программирования, в которой эти модули должны реализовываться.

 

Основные понятия объектно-ориентированного  программирования

Метод объектно-ориентированного проектирования основывается на следующем:

· модели построения системы как совокупности объектов абстрактного типа данных;

· модульной структуре программ;

· нисходящем проектировании, используемом при выделении объектов.

Объектно-ориентированный подход использует следующие базовые понятия:

· объект;

· свойство объекта;

· метод обработки;

· событие;

· класс объектов.

Объект – совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).

Объект содержит инструкции (программный код), определяющие действия, которые может выполнять объект, и обрабатываемые данные.

Свойство – характеристика объекта, его параметр. Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов.

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

Например, объект можно представить перечислением присущих ему свойств: ОБЪЕКТ-А (свойство-1, свойство-2,..., свойство-k).

Свойства объектов различных классов могут «пересекаться», т. е. возможны объекты, обладающие одинаковыми свойствами:

· ОБЪЕКТ-В (...свойство-n, свойство-m,..., свойство-r,...);

· ОБЪЕКТ-С (...свойство-n, …, свойство-r,...).

Одним из свойств объекта является метод его обработки.

Метод – программа действий над объектом или его свойствами.

Метод рассматривается как программный код, связанный с определенным объектом, который осуществляет преобразование свойств и изменяет поведение объекта.

Объект может обладать набором заранее определенных встроенных методов обработки, созданных пользователем или заимствованных в стандартных библиотеках, которые выполняются при наступлении заранее определенных событий (однократное нажатие левой кнопки мыши, вход в поле ввода, выход из поля ввода, нажатие определенной клавиши и др.).

По мере развития систем обработки данных создаются стандартные библиотеки методов, в состав которых включаются типизированные методы обработки объектов определенного класса. Эти методы можно заимствовать для различных объектов.

Событие – изменение состояния объекта.

События бывают внешними и внутренними.

Внешние события генерируются пользователем, например, клавиатурный ввод или нажатие кнопки мыши, выбор пункта меню, запуск макроса, внутренние события – системой.

Класс – совокупность объектов, характеризующихся общностью применяемых методов обработки или свойств.

Объекты могут объединяться в классы, группы или наборы. В различных программных системах возможна различная терминология.

Один объект может выступать объединением вложенных в него по иерархии других объектов.

Схематично связь основных понятий объектно-ориентированного программирования представлена на рис. 2.

В объектно-ориентированном программировании используется следующий формат записи работы с объектами:

· ОБЪЕКТ. МЕТОД;

· ОБЪЕКТ.СВОЙСТВО.МЕТОД.

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

 

 

 


Условные обозначения:

– свойство объекта;

– метод обработки

 

Рис. 2. Соотношение основных понятий объектно-ориентированного
подхода

 

Понятие алгоритма

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

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

Примерами разрешающих правил могут быть следующие:

· Каждый студент может получать повышенную стипендию.

· Стоянка разрешена.

· На дискотеку вход свободный.

Никакое разрешающее правило не является алгоритмом. Это же утверждение справедливо и для запрещающих правил, примерами которых являются следующие:

· При плохой успеваемости студент не может получать повышенную стипендию.

· Во всех корпусах университета курение запрещено.

· Стоянка запрещена.

К алгоритмам относятся только предписывающие правила. Например, кулинарный рецепт приготовления какого-либо блюда является алгоритмом. Алгоритмом является также инструкция по включению какого-либо прибора, например, компьютера, составленная из предписывающих правил.

Но не всякое предписывающее правило можно считать алгоритмом. Так, например, предписывающее правило «Взвейтесь кострами, синие ночи!» не является алгоритмом, так как предполагаемый исполнитель (синие ночи) желаемого действия (взвейтесь кострами) не в состоянии выполнить.

Таким образом, алгоритм – последовательность предписывающих правил, понятно и точно указывающих исполнителю, какую последовательность действий он должен исполнить по переработке исходных данных в искомые результаты.

 

Свойства алгоритма

К свойствам алгоритма относятся точность, понятность, дискретность, массовость, результативность и другие свойства.

Рассмотрим несколько свойств алгоритма.

Точность определяется как свойство, согласно которому исполнителю точно известно, какая команда должна выполняться следующей.

Для иллюстрации важности этого свойства рассмотрим предписывающее правило «Уходя, гасите свет». Является ли это правило алгоритмом? С одной стороны, рассматриваемое правило предписывает вполне определенному исполнителю (человеку, уходящему из данного помещения) выполнить в определенный момент (в момент ухода) вполне определенное действие (выключить свет). Исходя из этого, можно считать рассматриваемое правило алгоритмом. Но, с другой стороны, для человека, «страдающего» излишним формализмом, указанное правило не вполне точно определяет последовательность необходимых действий, так как для этого человека остается неясным, должен ли он, покидая помещение, выключить свет, если в помещении остаются люди. Анализируемый пример показывает на существование серьезной проблемы: то, что однозначно (точно) понимается одним исполнителем, может совсем не так восприниматься другим.

Понятность – это свойство, заключающееся в том, что каждая команда алгоритма должна входить в систему команд исполнителя. Система команд исполнителя – это совокупность команд, которые могут быть выполнены исполнителем. Например, система команд микрокалькулятора описывается в его паспорте. В нее входят такие команды, как четыре арифметические операции, запись числа в ячейку памяти, вычисление элементарных функции и т. д.

Дискретность алгоритма заключается в том, что предписание представляет собой последовательность четко выраженных отдельных команд. Выполнив одну команду, исполнитель выполняет следующую команду и т. д. Бессмысленно ставить вопрос о том, что делает исполнитель между выполнением двух последовательных команд, так как таких моментов просто нет.

Массовость алгоритма состоит в том, что для каждого алгоритма существует класс объектов, допустимых в качестве исходных данных. Так, например, алгоритм нахождения наибольшего общего делителя двух целых чисел применим для любой пары целых чисел. Из двух алгоритмов, разработанных для решения одной задачи, более ценным является тот, у которого шире класс допустимых исходных данных. Можно сказать, что у такого алгоритма массовость больше.

Результативность заключается в том, что результат выполнения алгоритма исполнитель должен получить, произведя конечное число действий. Если для каких-то допустимых исходных данных исполнитель не может получить результат выполнения алгоритма за конечное число шагов, то говорят, что алгоритм не применим для этих исходных данных. Так, например, алгоритм получения точного значения частного при делении уголком не применим для чисел 20 и 3. При этом класс допустимых исходных данных для указанного алгоритма – пара целых чисел, второе из которых не равно нулю.

Средства записи алгоритма

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

Алгоритм разрабатывается и записывается для каждого конкретного исполнителя. Можно выделить два класса исполнителей – люди и вычислительные устройства. К последним относятся роботы, микрокалькуляторы, компьютеры и т. д. Так как разные исполнители имеют различные системы команд, то в записях алгоритмов должны использоваться команды, зависящие от конкретного исполнителя (свойство понятности). Кроме наличия различных систем команд, каждый исполнитель отличается своим способом восприятия команд, алгоритма, т. е. человек может прочитать или выслушать данные ему для исполнения команды; микрокалькулятор воспринимает команды, вводимые в него нажатием клавиши; в компьютер команды можно вводить нажатием клавиш на клавиатуре или с помощью указателя мыши.

Итак, причина разнообразия средства записи алгоритмов – различия в системах команд исполнителей и в способах восприятия исполнителем команд алгоритма.

Язык программирования – это способ записи алгоритма, ориентированный на исполнение его системой программирования компьютера. Для записи алгоритмов, предназначенных для безмашинного исполнения, можно использовать естественный язык, например, русский, дополненный математическими символами. Это так называемая словесная запись алгоритма.

Наиболее часто при разработке и документировании программы лежащие в ее основе алгоритмы изображаются в виде графических схем алгоритма или блок-схем.

Алгоритм большой сложности обычно представляется с помощью схем двух видов:

· обобщенной схемы алгоритма, которая раскрывает общий принцип функционирования алгоритма и основные логические связи между отдельными модулями на уровне обработки информации: ввод и редактирование данных, вычисления, печать результатов и т. д.;

· детальной схемы алгоритма, представляющей содержание каждого элемента обобщенной схемы с использованием управляющих структур в блок-схемах алгоритма, псевдокода либо алгоритмических языков высокого уровня.

 

Типы алгоритмов

На основе перечисленных в пункте 1.7 структур строятся следующие типы алгоритмов:

· линейный (на основе структуры следование), характеризующийся тем, что все действия, определяемые символами, входящими в схему, выполняются последовательно, в порядке их написания;

· разветвляющийся (на основе структур ветвление и выбор), характеризующийся тем, что в ходе выполнения решение задачи идет только по одному из имеющихся направлений, выбор которого зависит от выполнения заданного условия;

· циклический (на основе структуры цикл), характеризующийся многократным повторением определенной группы действий.

В последующих разделах на конкретных примерах рассматриваются проекты в системе программирования Delphi, основанные на всех вышеперечисленных типах алгоритмов.

2. ЭТАПЫ СОЗДАНИЯ ПРОСТОГО ПРИЛОЖЕНИЯ
В СИСТЕМЕ ПРОГРАММИРОВАНИЯ DELPHI

 

2.1. Запуск и завершение работы системы
программирования Delphi

Запуск Delphi выполняется с помощью ярлыка на Рабочем столе или через Главное меню. После загрузки на экране обычно находятся шесть окон (рис. 7): главное окно (содержит заголовок окна, строку меню, панель инструментов и палитры компонентов), окно инспектора объектов, окно формы и окно редактора кода, включающее окно браузера кода, окно дерева объектов.

 

 


Рис. 7. Окна СП Delphi

Если какого-то окна нет на экране, то его можно вывести на экран с помощью следующих команд меню View:

· окно инспектора объектов® View / Object Inspector (F11);

· окно браузера кода® View / Code Explorer;

· окно формы® View / Forms …(Shift+F12);

· окно кода другого модуля® View / Units …(Ctrl+F12);

· окно дерева объектов® View / ObjectTreeVie w.

Переключение между формой и соответствующим ей модулем выполняется командой View / Toggle Form / Unit (F12).

Файл формы можно просмотреть с помощью команды View as Text контекстного меню формы в режиме проектирования. Возврат к форме выполняется по команде View as Form контекстного меню текстового файла формы.

Окно проекта при необходимости можно вывести на экран с помощью команды Project / View Source.

Закрытие окна редактора кода вызывает закрытие файла проекта, приводит к окончанию работы с ним. Для работы с данным проектом его необходимо снова открыть (пункт 2.2).

Закрытие главного окна приводит к окончанию работы в СП Delphi.

Открытие существующего проекта или создание нового

При запуске Delphi обычно уже создан проект Project1, содержащий одну главную форму Form1 и соответствующий ей модуль Unit1. Для создания нового проекта необходимо выполнить команду File / New Application, а для открытия существующего – использовать команду File / Open Project … или кнопку на панели инструментов.

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

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

Если проект ни разу не сохранялся и имеет имя Project1, то для его сохранения используется команда Save Project As…. В появившемся диалоговом окне необходимо указать папку для его сохранения, а имена проекта и модуля следует оставить системные – Project1 и Unit1.

Выполнение (запуск) проекта

Выполнение (запуск проекта) может быть осуществлено с помощью команды Run / Run (F9) или кнопки Run на панели инструментов.

Нельзя запустить вторую копию приложения во время работы первой.

При выполнении приложения Delphi сначала выполняет компиляцию программы, выявляет ошибки и, если они есть, выводит их в специальном окне, появляющемся обычно под окном модуля. При наличии ошибок выполнение программы прекращается. Строка в модуле, при компиляции которой найдена ошибка, выделяется красным цветом.

Если ошибок компиляции не найдено, программа из режима проектирования переходит в режим выполнения. При этом выводится окно приложения, соответствующее окну главной формы. Теперь пользователь может вводить исходные данные в поля окна приложения, запускать события, реакция на которые запрограммирована в модуле формы, и получать результаты. На этом этапе тоже могут быть найдены ошибки, например, данные не введены или тип введенных данных не соответствует объявленному в программе типу. В этом случае выводится сообщение об ошибке в окне сообщений, а затем (после нажатия кнопки О K в окне сообщения) выводится окно проекта. В этом случае для завершения этапа выполнения программы и перехода в режим проектирования (как и для выхода из «зацикливающейся» программы) нужно использовать команду Run / Program Reset или комбинацию клавиш Ctrl+F2.

Если никаких ошибок обнаружено не было, введены исходные данные и получены ожидаемые результаты, то для завершения выполнения программы и перехода в режим проектирования необходимо закрыть окно главной формы.

Внесение изменений в проект

При обнаружении в проекте ошибок или при несовпадении результатов работы с подготовленными тестами необходимо внести изменения в интерфейс приложения или устранить ошибки в процедурах-обработчиках событий.

Технология внесения изменений в интерфейс приложения описана в пункте 2.3. Редактирование программного кода модулей описано в пункте 2.5. При этом используются методы работы с текстом, принятые в любых текстовых редакторах OC Windows – выделение, копирование, перемещение, вставка и т. д.

Удаление модуля из проекта выполняется с помощью команды Project / Remove from Projeсt, а добавление модуля к проекту – с помощью команды Project / Add to Project.

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

 

3. СОЗДАНИЕ ПРОЕКТА НА ОСНОВЕ
ЛИНЕЙНОГО АЛГОРИТМА

Реализацию в проекте линейного алгоритма рассмотрим на примере вычисления значения функции

для заданных значений x, y и z.

Действия выполните в следующей последовательности:

1. Для рассматриваемого проекта создайте папку Функция.

2. Первый шаг создания проекта состоит в разработке его интерфейса, т. е. проектировании окна приложения. Для создания окна приложения поместите в окно формы с вкладки Standard палитры компонентов пять объектов Label, четыре объекта Edit и объект Button. Кроме того, поместите с вкладки Additional объект Image. Окно формы данного проекта приведено на рис. 8.

 

 

 

 


Рис. 8. Объекты окна формы для проекта вычисления функции

3. Наберите в текстовом процессоре Word с помощью редактора формул Microsoft Equation заданную формулу. После этого скопируйте формулу в графический редактор Paint. Сохраните функцию в файле Функция.jpg в папке Функция.

4. Наберите необходимые надписи (Вычисление значения функции, x=, y=, z=, b=, Вычислить) для значений свойства Caption объектов Label и Button. В качестве значений свойства Text объектов Edit укажите пустые строки. Свойству Enabled объектов Edit1, Edit2 и Edit3 присвойте значение true, а значение этого свойства для объекта Edit4 установите равным false. В инспекторе объектов щелкните кнопкой мыши справа от свойства Picture и в открывшемся диалоговом окне по команде Load укажите файл Функция.jpg. В результате окно формы примет вид, представленный на рис. 9.

 


Рис. 9. Окно формы для проекта вычисления функции

 

5. Второй шаг создания проекта – разработка алгоритма. Схема алгоритма приведена на рис. 10.

 

 

 

 


Рис. 10. Схема алгоритма вычисления функции

 

6. Третий шаг создания проекта заключается в написании процедуры обработки щелчка по кнопке Вычислить. При написании процедуры необходимо знать, какие стандартные математические функции имеются в СП Delphi. Перечень этих функций приведен в табл. 2.

 

Таблица 2. Стандартные математические функции Delphi

Математическое обозначение функции Запись функции в СП Delphi Описание
abs(x) Абсолютное значение аргумента целого или вещественного типа
arctg x arctan(x) Арктангенс от вещественного аргумента
cos x cos(x) Косинус от вещественного аргумента
e x exp(x) Экспонента от вещественного аргумента
ln x ln(x) Натуральный логарифм от вещественного аргумента
sin x sin(x) Синус от вещественного аргумента
x 2 sqr(x) Квадрат аргумента (целого или веществен- ного типа)
sqrt(x) Квадратный корень от вещественного аргумента
round(x) Округление вещественного аргумента до ближайшего целого
[ x ] trunc(x) Выделение целой части вещественного аргумента

 

Текст искомой процедуры приведен на рис. 11.

 

 


Рис. 11. Текст процедуры обработки щелчка по кнопке Вычислить

При написании арифметического выражения для вычисления значения b использована следующая формула перехода от десятичного логарифма к натуральному:

Кроме того, в этом выражении использована следующая формула для записи степени:

7. Заключительным этапом работы над проектом является его отладка. Процесс отладки заключается в проверке правильности проекта, поиске и устранении ошибок. Отладка базируется на тестировании – сравнении результата выполнения проекта с заранее вычисленным значением. Для проведения отладки проекта надо подготовить следующий тест: вычислите в Excel значение искомой функции при x =2, y =3 и z =4. Затем выполните проект при тех же значениях аргументов. На рис. 12 приведены окно Excel и окно приложения. Совпадение полученных результатов показывает, что созданный проект функционирует правильно.

 

 

 


Рис. 12. Тестирование проекта вычисления функции

 

4. СОЗДАНИЕ ПРОЕКТА НА ОСНОВЕ
РАЗВЕТВЛЯЮЩЕГОСЯ АЛГОРИТМА

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

 

х 2, если х ³ 7 или х = 2; (1)
y = х + 5, если х £ 0; (2)
  2 × х в остальных случаях. (3)

 

 

Кроме значения функции, необходимо вывести номер формулы, по которой производился расчет.

Порядок выполнения работы следующий:

1. Проверка корректности условия задачи. При вычислении функции, вид которой меняется в зависимости от диапазона значений аргумента, необходимо вначале проверить корректность условия задачи. Задача является корректной, если каждому значению аргумента соответствует единственное значение функции. Для проверки корректности заданной функции нарисуем числовую ось, отметим на ней точки, фигурирующие в условиях, и напишем над каждым диапазоном номер одной из трех формул, составляющих заданную функцию. Указанный анализ интервалов значений х представлен на рис. 13.

 

 

 


Рис. 13. Виды функции на различных интервалах значения аргумента

Как видно из рисунка, каждому значению аргумента соответствует единственная формула, по которой рассчитывается значение функции. Таким образом, можно считать, что условие задачи корректно.

2. Задание места сохранения проекта. Для рассматриваемого проекта создайте папку Разветвляющаяся функция.

3. Вызов СП Delphi. Вызовите СП Delphi и сохраните новый (пока еще пустой) проект в созданной папке.

4. Разработка интерфейса. Создайте интерфейс, окно формы которого приведено на рис. 14. Сохраните проект.

 

 

 


Рис. 14. Окно формы для проекта вычисления разветвляющейся функции

5. Разработка алгоритма. Схема алгоритма рассматриваемой задачи представлена на рис. 15. В схеме алгоритма имеются два элемента ветвления, которые обеспечивают три альтернативные ветви выполнения алгоритма, соответствующие трем видам рассматриваемой функции.

6. Программирование. Для составления процедуры обработки щелчка по кнопке Вычислить необходим оператор, реализующий ветвление. Таким оператором является условный оператор, который в общем виде записывается следующим образом:

if логическое выражение

then       оператор1

else         оператор2;

Условный оператор выполняется по следующей схеме:

· вычисляется логическое выражение;

· если получилось значение true (истина), то выполняется оператор1;

· если получилось значение false (ложь), то выполняется оператор2;

· вслед за тем, как выполнится оператор1 или оператор2, выполняется оператор, стоящий после условного оператора.

 

 

Рис. 15. Схема алгоритма вычисления разветвляющейся функции

Если за then или else надо указать несколько операторов, то эту последовательность операторов заключают в операторные скобки beginend. Такая конструкция называется составным оператором.

Существует также неполная форма условного оператора, которая выглядит следующим образом:

if логическое выражение

then       оператор1;

Текст процедуры обработки щелчка по кнопке Вычислить приведен на рис. 16.

7. Отладка проекта. Отладку проекта надо провести на семи тестах, каждый из которых соответствует значению аргумента, принадлежащему одному из семи интервалов, изображенных на рис. 13. Набор тестов может быть следующим: 1) x =–1, y =4, n =2; 2) x =0, y =5, n =2; 3) x =1, y =2, n =3; 4) x =2, y =4, n =1; 5) x =3, y =6, n =3; 6) x =7, y =49, n =1; 7) x =8, y =64, n =1.

 

 

 


Рис. 16. Текст процедуры вычисления значения разветвляющейся функции

Необходимо семь раз выполнить проект при указанных значениях x. Вид окна приложения для теста 7 приведен на рис. 17.

 

 

 


Рис. 17. Окно приложения вычисления значения разветвляющейся функции

ТАБУЛИРОВАНИЕ ФУНКЦИИ

5.1. Пример разработки проекта табуляции функции
в область Memo

Дана функция .

Требуется рассчитать значения этой функции при значениях аргумента х, изменяющегося от начального значения хн до конечного значения хк с шагом изменения D х. Результаты расчета следует представить в визуальном компоненте Memo в виде трех столбцов, озаглавленных n, x и y.

Порядок выполнения работы следующий:

1. Запустите СП Delphi.

2. Расположите в окне формы визуальные компоненты и установите значения их свойств так, как это показано на рис. 18.

 

 

Рис. 18. Окно формы проекта табулирования функции в область Memo

3. Сохраните проект в папке Табуляция в Memo.

4. Алгоритм табулирования функции является циклическим, т. е. действия по вычислению очередного значения y, вывода x и y в область Memo и увеличения текущего x на значение шага повторяются до тех пор, пока x не превысит конечное значение. При этом перед циклом необходимо присвоить x начальное значение и вывести в область Memo заголовки столбцов. Схема алгоритма приведена на рис. 19.


 

 

 


Рис. 19. Схема алгоритма табулирования функции

 

5. После двойного щелчка по кнопке Табуляция заполните заготовку процедуры обработки щелчка по данной кнопке. Для составления этой процедуры необходимо использовать оператор цикла. В языке программирования Паскаль существуют несколько операторов цикла. Наиболее употребительным из них является оператор цикла с предусловием, который имеет следующий вид:

while логическое выражение do

оператор;

Оператор, стоящий после служебного слова do, составляет тело цикла. Логическое выражение, стоящее после while, является условием повторения цикла.

Тело цикла повторяется до тех пор, пока условие повторения цикла имеет значение true (истина). Как только условие повторения цикла примет значение false (ложь), тело цикла пропускается и выполняется оператор, стоящий после цикла.

Текст процедуры данного проекта приведен на рис. 20.

 

 

 

 


Рис. 20. Текст процедуры обработки щелчка по кнопке Табуляция
с выводом результатов в область Memo

6. Сохраните проект и запустите его на выполнение. Введите исходные данные и щелкните по кнопке Табуляция. Вариант результата выполнения проекта приведен на рис. 21. Обратите внимание на формат представления чисел в окне Memo. В приведенной программе не были заданы форматы для выводимых числовых значений, поэтому СП Delphi выводит результаты в формате, установленном по умолчанию.

7. Для управления форматом представления результатов табуляции можно использовать стандартную процедуру Str. Поясним работу этой процедуры на следующих примерах:

· пусть n – целая переменная, а s1 – строковая, тогда в результате выполнения оператора Str(n:2,s1); в переменной s1 будет записано значение n двумя символами;

· пусть x – вещественная переменная, а s2 – строковая, тогда в результате выполнения оператора Str(x:5:1,s2); в переменной s2 будет записано значение x пятью символами, причем на дробную часть отводится одна позиция, а на знак и целую часть – три позиции (еще одна позиция отводится на десятичную запятую).

 

 

 


Рис. 21. Пример результата табулирования

8. В процедуре, приведенной на рис. 20, замените операторы присваивания, определяющие значения переменных s1, s2 и s3, на операторы обращения к процедуре Str: Str(n:2,s1); Str(x:5:1,s2); Str(y:6:2,s3).

9. Сохраните проект и снова запустите его на выполнение. Подберите число пробелов в строке '№ x y' так, чтобы заголовки располагались над числами. Пример выполнения новой версии проекта представлен на рис. 22.

 

 

 


Рис. 22. Пример результата табулирования с заданием формата
представления результатов

 

5.2. Пример разработки проекта табуляции функции
в текстовую таблицу

 

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

Порядок выполнения работы следующий:

1. Запустите СП Delphi.

2. Расположите в окне формы визуальные компоненты аналогично тому, как это показано на рис. 18, но вместо компонента Memo поместите компонент StringGrid. Данный ком


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.181 с.