лаб 8. Лабораторная работа 8 Реализация метода пошаговой детализации с помощью пользовательских функций на С. по информатике
![]()
|
Федеральное агентство связи Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» Кафедра информатики ЛАБОРАТОРНАЯ РАБОТА №8 «Реализация метода пошаговой детализации с помощью пользовательских функций на С++.» по информатике. Вариант 15 Выполнил: студентка гр. БИН2007 Прокопочкина Карина Проверил:доц. Загвоздкина А.В. Москва 2020 г. Содержание 1. Условие задачи……………………………………………...стр. 3 2. Решение задачи……………………………………………...стр. 4 2.1. Схема алгоритма решения задачи………………………..стр. 4-7 2.2. Программный код проекта…………………………….….стр.8-9 2.3. Результаты выполнения проекта…………………………стр. 10 2.4. Доказательство правильности результата…………..…...стр. 10 Условие задачи 1) Изучите принципы технологий структурного и процедурного программирования и средства для реализации метода пошаговой детализации средствами VС++. 2) Выберите индивидуальный вариант задания из таблицы 8.3-1. 3) Запишите заданные или полученные в процессе формализации математические формулы на языке программирования С++. 4) Используйте разработанные в лабораторной работе №4 схемы иерархии процедур и схемы алгоритмов процедур. Для каждой процедуры разработайте детализированный алгоритм и представьте его в виде схем алгоритмов, используя Visio. 5) Разработайте процедуры пользователя по алгоритмам п. 4. 6) Создайте консольный проект, содержащий три файла исходного кода: файл с главной функцией main(), файл с функциями ввода и вывода данных и файл с процедурами пользователя, решающими предписанные задачи. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных. Главная функция main() должна содержать только операторы вызова пользовательских процедур. 7) Подготовьте тесты для контрольного решения задачи. 8) Выполните проект и получите результаты. 9) Докажите, что результат правильный. Индивидуальное задание 15: Определите площадь каждого из 3-х кругов, ограниченных тремя окружностями, длины которых L1, L2, L3 известны. Площадь круга S = πR2 длина окружности L = 2πR. Решение задачи Для нахождения площади круга необходимо найти радиус ограничивающей его окружности. Исходя из того, что нам известны длины окружностей, мы можем найти их радиус по следующей формуле: R = L / 2*π. Далее, подставим значение R в формулу нахождения площади: S = π* R^2. Затем, произведём вывод значений площадей. Иерархия процедур (рисунок 1). ![]() Рисунок 1 – иерархия процедур для выполнения задачи В соответствии с этой схемой решение задачи разбито на несколько отдельных функциональных задач, для которых разработаны детализированные схемы алгоритмов, реализующих эти задачи: · CalcR(), вычисляющая радиус окружностей; · CalcS(), вычисляющая площадь окружностей; · GetDl(), осуществляющая ввод с клавиатуры длины окружностей; · PutS(), осуществляющая вывод вычисленных площадей окружностей. Итак, посмотрим на общий алгоритм решения (схема 1). ![]() Схема 1 – алгоритм в общем виде Процедура «GetDl()» (схема 2) ![]() Схема 2 – процедура «GetDl()» Процедура «CalcR()» (схема 3) представляет собой вычисление радиусов кругов исходя из известных данных: длин окружностей. ![]() Схема 3 – процедура «CalcR()» Процедура «CalcS()» (схема 4) представляет собой вычисление площадей кругов исходя из вычисленных радиусов окружностей. ![]() Схема 4 – процедура «CalcS()» Процедура «PutS()» (схема 5) ![]() Схема 5 – процедура «PutS» Программный код проекта По разработанным схемам алгоритмов напишем программный код для каждой процедуры. В соответствии с общим заданием к лабораторной работе создадим проекте с тремя файлами исходного кода: Первый файл с именем GetPut.cpp содержит программный код функции ввода исходных данных GetDl() и вывода результатов PutS(); Второй файл с именем Resh.cpp содержит программный код функции, выполняющие необходимые вычисления для решения задачи; Третьем файле с именем main.cpp содержит программный код главной функций main(), в которой находятся только вызовы разработанных функций ввода/вывода и решения задачи. Разработанный программный код проекта представлен на рисунках 1-3. ![]() Рисунок 1 - Программный код файла с функциями для ввода исходных данных и для вывода результатов ![]() Рисунок 2 - Программный код файла с функциями, выполняющими необходимые вычисления для решения задачи ![]() Рисунок 3 – программный код файла с главной функцией Результаты выполнения проекта ![]() Рисунок 4 – результаты работы проекта Доказательство правильности результата L1 = 23; R1 = L1/(2*π) = 23 / 2*π ≈ 3,66056369111; S1 ≈ 3,66056369111 * 3,66056369111 *π ≈ 42,096 L2 = 16; R2 = L2/(2*π) = 16 / 2*π ≈ 2,54647908947; S2 ≈ 2,54647908947 * 2,54647908947 *π ≈ 20,371832 L3 = 17; R3 = L3/(2*π) = 17 / 2*π ≈ 2,70563403256; S3 ≈ 2,70563403256 * 2,70563403256 *π ≈ 22,997889 |