Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Laba_varik6_7.1.docx
Скачиваний:
9
Добавлен:
10.06.2023
Размер:
200.7 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ

КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Информатика»

Лабораторная работа № 7

«Программная реализация алгоритмов решения сложных задач»

По теме

«Логические данные и выражения.

Операторы разветвления VС++. Программная реализация базовых разветвляющиеся структур и

типовых алгоритмов»

по дисциплине

«Информатика»

Выполнил:

Вариант 6

Проверил:

Москва, 2021 г.

1. Общее задание. 3

2. Индивидуальное задание на разработку проекта. 4

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

4. Разработка схем алгоритмов. 6

a. Схема алгоритма Solve1. 6

b. Схема алгоритма Solve2. 7

c. Схема алгоритма Solve3. 8

5. Разработка программного кода проекта. 8

a. Программный код файла getPut.cpp. 8

b. Программный код файла solve.cpp. 9

c. Программный код файла mail.cpp. 10

6. Выполнение разработанного проекта. 11

a. Результат выполнения проекта, с не попавшей точкой в допустимые значения. 11

b. Результат выполнения проекта, с попавшей точкой в допустимые значения. 12

7. Проверка правильности результатов. 12

8. Список используемой литературы и ресурсов. 13

  1. Общее задание.

1) Изучите вопросы представления логического типа данных и логических

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

2) Разработка проекта.

2.1) Выберите вариант задания из таблиц 7.1 для создания проекта:

2.2) Выполните этап формализации задачи, для которой необходимо:

• нарисовать рисунок, указанный в задании;

• выделить на рисунке заданную область;

• для выделенной области определить и записать логическое выражение с условием, зависимое от двух переменных x и y (где

[x,y] координаты точки), принимающую логическое значение

false (0) или true (1), в зависимости от попадания или не

попадания точки с координатами X, Y в выделенную область

рисунка.

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

• программный код функции ввода исходных данных;

• программный код функции вывода результатов;

• программный код главной функции main, которая вызывает

описанные выше функции для решения поставленной задачи.

2.3) Создайте консольный проект, содержащий 3 раздельно откомпилированных файла:

• файл, содержащий функцию ввода исходных данных и функцию

вывода результатов;

• файл с тремя разработанными функциями, соответствующие

разработанным функциональным алгоритмам;

• файл с главной функцией, которая должна содержать только

операторы вызова разработанных функций (ввода, 3 функции

решения задачи разными способами и вывода, причем обмен

данными между функциями должен осуществляться через

параметры, без использования глобальных переменных.

2.4) Подготовьте тестовые исходные данные для

решения задачи.

2.5) Выполните проект и получите результаты.

2.6) Докажите правильность полученных результатов на заранее

разработанных нескольких тестовых данных.

  1. Индивидуальное задание на разработку проекта.

Вариант 6:

Заданы две простых фигуры: ромб с центром в начале координат со

стороной 1.41 и вписанный в него квадрат с вершинами в центре сторон

ромба. Попадет ли точка с координатами X, Y в следующую фигуру:

ромб без квадрата.

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

Построены «вручную» описанная в постановке задаче фигура, которая определяет область попадания точки в заданную геометрическую фигуру

(рисунок 1).

Рисунок 1. — Построение фигуры, данной в индивидуальном задании: Ромб со сторонами 1.41 и точками A, B, C и D и вписанный в него квадрат.

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

На рисунке видно, что точки E, F, G и H находятся на координатах (0, -1), (1, 0), (0,1) и (0, -1) соответственно. Это можно проверить, найдя диагональ ромба ABCD:

Подставим значения:

Разделив диагональ EG на 2, мы получим 1, что является длиной от начальной точки (0, 0) до любой из точек квадрата EFGH, что и требовало доказать.

Определим уравнения прямых EF, FG, GH и EH, которые ограничивают заданная область:

Каждая прямая делит координатную плоскость на две части. Теперь вместо уравнений необходимо записать неравенства, выполнения которых необходимо для попадания точки в заданную область. В этой задаче неравенства должны выполняться одновременно, поэтому они записаны в одной системе четырёх неравенств:

Данную систему можно заменить на другую, которая состоит из двух неравенств. Таким образом, для того, чтобы точка с заданными пользователем координатами x и y принадлежала квадрату EFGH необходимо выполнение этих условий:

Данную систему неравенств можно представить логическим выражением:

Соседние файлы в папке лабы