
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ
КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №4
«Разработка консольных проектов Visual Studio
с использованием функций VC++»
по теме
«Разработка алгоритмов решения сложных задач методом пошаговой детализации и их программная реализация»
по дисциплине
«Введение в информационные технологии»
Вариант № 8
Выполнил:
Проверил: Волков А.И
Оглавление
1 Общее и индивидуальное задание
Общее задание:
Изучить основные положения технологий структурного проектирования алгоритмов и метода пошаговой детализации, средства MS Visio для графической визуализации алгоритмов.
Выбрать вариант индивидуального задания из таблицы 4.1.
Проанализировать постановку задачи своего варианта индивидуального задания и, если необходимо, уточнить ее у преподавателя.
Провести формализацию решения задачи. Определить этапы ее решения с использованием метода пошаговой детализации.
Разработать схемы алгоритмов процедур на различных этапах метода пошаговой детализации и схему иерархии процедур.
Утвердить у преподавателя результаты выполнения п.п. 4-5.
Разработать программный код функций VC++ по алгоритмам п. 5.
Создать консольный проект, содержащий три файла исходного кода: файл с главной функцией main, файл с функциями ввода и вывода данных и файл с функциями, решающими предписанные задачи. Обмен данными между функциями должен осуществляться через параметры и возвращаемые значения, без использования глобальных переменных. Главная функция main должна содержать только операторы вызова разработанных функций.
Подготовить варианты исходных данных для тестирования проекта.
Выполнить проект с тестовыми исходными данными и получить результаты. Проверить правильность результатов.
Оформить отчет по работе в среде MS Word. Изобразить все схемы, используя средства MS Visio.
Представить преподавателю отчет по работе.
Ответить на замечания преподавателя по выполненной работе и на заданные им вопросы по теме.
Получить отметку о выполнении и защите работы.
Индивидуальное задание:
Определите высоту, на которой будет мяч, подброшенный вертикально вверх с высоты y0=1м и начальной скоростью V0=20м/сек через время t=1сек, 3сек и 4сек. Высота в момент t:
где g = 9,8 м/сек
2 Формализация и уточнение задания
Для формализации и уточнения задания определим, что к исходным данным будут относиться переменные t, y0, v0 – вещественного типа double, g – константа типа double. Результат вычислений – переменная y – должна быть вещественного типа double.
Операция вычисления y будет записываться следующим оператором VC++:
y
= y0 + v0 * t - g * t * t / 2
3 Разработка алгоритмов для решения задачи
Начнем проектирование алгоритма методом «сверху вниз».
3.1 На самом верхнем (первом) уровне алгоритм решения задачи можно укрупненно представить в виде вызова главной процедуры с именем main (рисунок 1), где CalcY (процедура) вычисления значения переменной y.
Рисунок 1 – Укрупненная схема алгоритма main
3.2 На следующем, втором уровне, детализируем алгоритм процедуры CalcY (рисунок 2) путем представления его в виде последовательности следующих процедур:
присваивание значения переменной g
процедура ввода значения t с именем GetT
процедуры ввода значения y0 с именем GetY0
процедурa ввода значения v0 с именем GetV0
вычисление y
процедура вывода вычисленного значения высоты PutY
Рисунок 2 – Схема алгоритма второго уровня детализации алгоритма
3.3 Перейдем к следующему, третьему уровню детализации. Процедура PutY, GetY0, GetV0 дальнейшей детализации не требует, так как средства вывода имеются в любом языке программирования. Поэтому на следующем, третьем шаге детализируем алгоритмы процедур ввода значений t – GetT (рисунок 3), y0 – GetY0 (рисунок 4), v0 – GetV0 (рисунок 5).Также детализируем алгоритм процедуры numb (рисунок 6).
Рисунок 3 – Схема алгоритма GetT
Рисунок 4 – Схема алгоритма GetY0
Рисунок 5 – Схема алгоритма GetV0
Рисунок 6 – Схема алгоритма функции numb
После выполнения этой процедуры в функции CalcY считается значение у и выводится с помощью процедуры PutY.
3.4 Схема иерархии процедур для решения задачи изображена на рисунке 7.
Рисунок 7 – Схема иерархии процедур