Лабораторная работа №13
.docxФедеральное агентство связи
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатики»
Лабораторная работа №13
по дисциплине: «Информатика»
по теме: «Решение содержательных задач, основанных на программировании алгоритмов разветвляющихся структур»
Выполнила
Студентка 1 курса
Группа ЗРС 2001
Баланюк Е.С.
Вариант №3
Проверил:
Старший преподаватель
Юсков И.А.
Москва
2020
Оглавление
Общее задание 3
Формализация и уточнения задания 4
Доказательство правильности результата 8
Общее задание
Изучите вопросы формализации, алгоритмизации и программирования алгоритмов при решении содержательных задач, использующих разветвляющиеся структуры.
Выберите вариант задания из табл. 13.3-1.
Выполните формализацию задачи, для которой необходимо:
нарисовать вручную рисунок;
выделить на рисунке заданную область;
для выделенной области определить и записать логическую условную функцию от двух переменных x и y (где [x,y] - координаты точки), т.е. функцию, принимающую логическое значение false (0) или true (1), в зависимости от попадания или непопадания точки с координатами x, y в выделенную область рисунка;
Разработайте:
две схемы алгоритмов и два программных кода функций решения задачи согласно вашему индивидуальному заданию:
использующие стандартное разветвление и сложное логическое выражение;
использующие вложенные разветвления только с помощью операций отношения, без применения логических операций и сложных логических выражений;
программный код функции ввода исходных данных;
программный код функции вывода результатов.
программный код главной функции main(), которая вызывает описанные выше функции для решения поставленной задачи.
(Схемы алгоритмов должны быть разработаны средствами Visio, а программные коды функций согласно этим схемам - средствами С++).
Создайте консольный проект, содержащий 3 раздельно откомпилированных файла:
файл, содержащий функцию ввода исходных данных и функцию вывода результатов;
файл с двумя разработанными согласно п.4. функциями;
файл с главной функцией, которая должна содержать только операторы вызова пользовательских функций (ввода, 2 функции решения задачи разными способами и вывода), причем обмен данными между функциями должен осуществляется через параметры, без использования глобальных переменных.
Подготовьте тесты для контрольного решения задачи.
Выполните проект и получите результаты.
Докажите правильность полученных результатов на заранее разработанных нескольких тестах.
Индивидуальное задание (см.рис.1)
Рисунок 1 - Индивидуальное задание
Формализация и уточнения задания
Построена «вручную», описанная в индивидуальном задании фигура:
Определены уравнения, описывающие фигуру – уравнения прямых AB, BC, CD, DA и уравнение окружности x2 + y2 = 0.5
Таким образом, для того, чтобы точка с координатами x, y принадлежала построенной фигуре, необходимо выполнение нижеследующих условий, из которых можно записать выражение логических функций:
Разработка схемы алгоритмов 2-х процедур:
Рисунок 2 - Схема алгоритма функции, использующей стандартное разветвление и сложное логическое выражение
Рисунок 3 - Схема алгоритма функции, реализующей вложенные разветвления только с помощью операций отношения, без использования логических операций и сложных логических выражений
Программный коды (см.рис.4-6)
Рисунок 4 - функции ввода и вывода
Рисунок 5 - Главная функция main()
Рисунок 6 - функции вычисления
Результаты проекта (см.рис.7-8)
Рисунок 7 - Результаты выполнения проекта для тестовых данных точки, попадающей в заданную область
Рисунок 8 - Результат выполнения проекта для тестовых данных точки, не попадающей в заданную область
Доказательство правильности результата
Разработаны тестовые исходные данные для контрольного решения, проверяющие попадание и непопадание точки с различными координатами в заданную область, и получены результаты:
При тестовых данных результаты ручного расчета и вычисления на компьютере совпадают.