Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR-INF-02.docx
Скачиваний:
6
Добавлен:
04.10.2021
Размер:
358.2 Кб
Скачать

2.4. Содержание отчёта

  1. Титульный лист с указанием номера и названия работы, варианта индивидуального задания, группы и Ф.И.О. студента, Ф.И.О. преподавателя.

  2. Общее и индивидуальное задание.

  3. Формализация и уточнение задания.

  4. Рисунки, таблицы и скриншоты, отражающие этапы разработки приложения:

  1. графический интерфейс пользователя;

  2. таблица используемых объектов и их свойств;

  3. схемы алгоритмов решения поставленной задачи;

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

  5. результаты работы проекта.

2.5. Пример выполнения задания

  1. Тема и название лабораторной работы:

Создание Приложений Windows Form, использующих итеративные циклические структуры.

  1. Фамилия, имя студента, номер группы, номер варианта:

Иванов и., бин1905, вариант 13.

  1. Задание на разработку проекта:

Создать проект для вычисления с заданной точностью ε корня уравнения f(x)=x3-2x2+x-3=0, воспользовавшись итерационной формулой

  1. Формализация и уточнение задания:

  • производная функции f(x): f’(x) = 3x2-4x+1;

  • х0 – начальное приближение;

  • x – текущее приближение к корню;

  • a – предыдущее приближение;

  • i – номер итерации, совпадающий с номером текущего приближения к корню;

  • y – значение функции f(x) для найденного с заданной точностью корня.

Будем считать, что заданная точность ε обеспечена, если модуль разности между текущим и предыдущим значениями корня меньше допустимой погрешности ε, то есть для нашего случая |x-a| < ε.

Для решения поставленной задачи необходимо реализовать функцию Root, которая в качестве входных параметров получает начальное значение x0, точность ε и максимальное число итераций Nmax. Результатами работы функции являются найденный корень уравнения x – возвращаемое значение, а также возвращаемое через параметр по ссылке значение функции y при найденном значении корня. Кроме того, функция Root должна на каждой итерации выводить в форму номер итерации, значение очередного приближения к корню и значение функции в точке очередного приближения.

Для вычисления корня по заданной формуле функция Root должна использовать две вспомогательные функции: Funct(), вычисляющую значение f(x), и Deriv() – значение производной этой функции f’(x).

  1. Разработка схемы алгоритма функции Root

При разработке схемы алгоритма используются материалы первого семестра: лекции №13–14 и лабораторная работа №14. Схема алгоритма функции, разработанная с использованием этих материалов, изображена на рис. 1.

Рис. 1 - Схема алгоритма функции Root

  1. Разработка графического интерфейса

Рис. 2. Графический интерфейс проекта

Графический интерфейс проекта изображен на рис. 2. Форма содержит текстовые поля TextBox для ввода исходных данных и вывода результатов выполнения (эти текстовые поля сгруппированы по своему назначению с помощью элементов управления Panel), список ListBox для вывода промежуточных результатов на каждой итерации, а также кнопки Button для запуска приложения на выполнение и для выхода из приложения.

Таблица 2.5-1

Тип

объекта

Класс объекта

Свойство

Значение свойства

Форма

Form

Name

Form1

Text

Лабораторная работа 2. Создание приложений Windows Form, использующих итеративные циклические структуры

Текстовое

поле

TextBox

Name

txtX0

Font

Размер 11,25pt

TextAlign

Right

TabIndex

1

Текстовое

поле

TextBox

Name

txtEps

Font

Размер 11,25pt

TextAlign

Right

TabIndex

2

Текстовое

поле

TextBox

Name

txtRoot

Font

Размер 11,25pt

TextAlign

Right

TabStop

False

Enabled

False

Текстовое

поле

TextBox

Name

txtFRoot

Font

Размер 11,25pt

TextAlign

Right

TabStop

False

Enabled

False

Кнопка

Button

Name

cmdFind

Font

Размер 11,25pt; Bold

Text

Найти корень

TabIndex

3

Кнопка

Button

Name

cmdExit

Font

Размер 11,25pt, Bold

Text

Завершить

TabIndex

4

Список

ListBox

Name

lstLB

Font

Courier New; 11,25pt

TabStop

False

ScrollAlwaysVisible

True

Панель

Panel

Name

Panel1

BorderStyle

FixedSingle

Панель

Panel

Name

Panel2

BorderStyle

FixedSingle

Примечания к таблице 2.5–1:

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

2) Cвойство TextAlign в текстовых полях имеет значение Right, так как арифметические данные принято выравнивать по правой границе поля.

3) Свойство Enabled у текстовых полей txtRoot и txtFRoot имеет значение False, так как эти поля предназначены для вывода результатов и не должны редактироваться пользователем.

4) Свойство TabIndex у текстовых полей txtX0, txtEps и кнопок cmdFind, cmdExit принимает последовательные значения от 1 до 4 в целях разумной последовательности обхода этих объектов при нажатии клавиши Tab.

5) У остальных объектов формы, не участвующих в последовательности обхода, свойство TabStop имеет значение False.

6) В свойстве Font списка lstLB установлен моноширинный шрифт Courier New, что позволяет поддерживать выравнивание столбцов при любом количестве цифр в целой части переменных x и y.

7) Свойство ScrollAlwaysVisible списка lstLB имеет значение True, чтобы полоса прокрутки списка была видна при любом количестве элементов в нем. Это позволяет выбрать ширину списка так, чтобы полоса прокрутки не заслоняла значения y в крайнем справа столбце.

8) Объекты типа Панель нужны исключительно для того, чтобы визуально сгруппировать текстовые поля с исходными данными и результатами вычислений. Свойство BorderStyle этих объектов установлено в FixedSingle, чтобы сделать рамки панелей видимыми.

В таблице 2.5–1 приведены основные объекты формы с указанием тех их свойств, которые были переопределены разработчиком приложения.

  1. Разработка программного кода приложения

7.1) Создание и редактирование заголовочных файлов

В тех случаях, когда проект содержит функции пользователя в отдельных файлах, целесообразно создавать пользовательский заголовочный файл, содержащий необходимые директивы using namespace, директивы include для подключения необходимых заголовочных файлов, а также прототипы используемых функций пользователя. На рис. 3 приведен программный код заголовочного файла Root.h, созданного для этих целей и включенного в состав проекта в раздел Заголовочные файлы.

Рис. 3. Программный код заголовочного файла Root.h

Созданный заголовочный файл директивой include подключается к системному заголовочному файлу stdafx.h (рис.4). Заголовочный файл stdafx.h подключается директивой include ко всем cpp-файлам с функциями пользователя.

Рис. 4. Программный код системного заголовочного файла stdafx.h

Соседние файлы в предмете Информатика