Представлена учебная программа на языке С++, предназначенная для студентов картографов и геодезистов, изучающих программирование. Особенности преподавания информатики в вузе геодезического профиля на современном этапе рассматриваются в [1]. Автор поставил перед собой цель – создание набора типовых учебных геодезических задач [2–9] для проведения учебного практикума по информатике и домашних заданий. Задача данной работы – разработка программы геодезического содержания с инструкцией цикла для многократного повторения однотипных расчетов. Программа иллюстрирует работу цикла for на примере преобразования угла из радианной меры в градусную.
Содержательная геодезическая постановка задачи заключается в вычислении угловой градусной меры угла по заданной радианной мере этого же угла. Для расчета используется известная формула:
где deg – угловой градус и его доли в виде минут и секун; rad – угол, выраженный в радианах. В программе сначала вычисляется угол в виде целой и дробной частей градуса, далее значение угла переводится в целое число градусов, минут и секунд. Алгоритм работы программы «Преобразование угла из радианной меры в градусную» следующий. Сначала пользователь вводит количество расчетов угловых величин, а затем в цикле вводит с клавиатуры значение угла в радианах, программа выводит на экран значение угла в виде градусов, минут и секунд. Таким образом, для каждого значения угла, введенного пользователем, программа выводит на экран угол, представленный в градусах, минутах и секундах.
Рассмотрим код программы. В строке 07–10 объявляются переменные, среди них целочисленная переменная для количества, планируемых расчетов number и переменные для хранения результата расчета – значения угла в градусах degrees, минутах minutes и секундах seconds. Переменные с плавающей точкой типа float используются для представления значения угла, выраженного в виде целой и дробной частей градуса degreesWithFractionalPart и для угла в радианах angleInRadianTerms, а также для сохранения промежуточных результатов – значений минут и секунд с дробной частью, соответственно minutesWithFractionalPart, secondsWithFractionalPart. В строках 12–13 пользователь вводит значение number, определяющее количество планируемых расчетов. Эта переменная используется в заголовке цикла for, и управляет количеством итераций цикла. Тело цикла представлено в строках 16–35. В строках 17–18 вводится значение угла в радианах, и в строке 20 вычисляется значение угла в градусах по формуле, причем здесь используется именованная константа M_PI, содержащая значение числа π. Далее в строке 22 берется целая часть от числа соответствующая углу в градусах. Это достигается использованием разнотипных переменных, в выражении присваивания вида degrees = degreesWithFractionalPart, где в левой части используется переменная типа int, в правой – типа float, в результате переменной degrees присваивается целая часть числа, стоящего справа. Затем, в строке 24, вычисляется дробная часть от значения угла в градусах (degreesWithFractionalPart-degrees), которая умножается на 60 для перевода значения в угловые минуты. В результате переменная minutesWithFractionalPart получает значение угловых минут с дробной частью. Аналогичным способом в строке 25 выделяется целая часть угловых минут для переменной minutes. В строках 27–28 такой же алгоритм используется и для угловых секунд. Однако, если значение выражения secondsWithFractionalPart – seconds будет больше или равным 0,5, то для округления значения угловых секунд следует увеличить количество секунд на 1″. Для этого в строке 30 применяется условная инструкция if в сокращенном варианте и инкремент переменной seconds++. В строках 33–34 результат расчета выводится на экран – значение угла в градусах, минутах и секундах. На этом данная итерация цикла заканчивается и если счетчик цикла, переменная i <= number, то начинается следующая итерация цикла с расчетом нового значения угла, иначе работа программы заканчивается.
Предположим, что пользователь вводит число расчетов равное 3 и угол в 1 радиан. Программа выведет на экран: «Угол равен: 57° 17′ 45″». Затем, если на запрос «Введите угол в радианах: » пользователь вводит число 3.1415926, то программа напечатает «Угол равен: 180° 0′ 0″». Далее, если на запрос «Введите угол в радианах: » пользователь вводит число 0 радиан, то программа напечатает на экране «Угол равен: 0° 0′ 0″». На этом работа программы заканчивается.
Выводы. Разработана учебная программа на языке С++ для студентов, изучающих программирование в вузе геодезического профиля. В программе демонстрируется применение управляющей инструкции цикла for в задаче преобразования значения угла из радианной меры в угловую градусную меру. Значение угла получается в градусах, минутах и секундах. Данная программа иллюстрирует особенности применения for инструкции цикла.
Библиографическая ссылка
Заблоцкий В.Р. С++ ДЛЯ КАРТОГРАФОВ И ГЕОДЕЗИСТОВ: УЧЕБНАЯ ПРОГРАММА «ПРЕОБРАЗОВАНИЕ УГЛА ИЗ РАДИАННОЙ МЕРЫ В ГРАДУСНУЮ» С ИНСТРУКЦИЕЙ ЦИКЛА // Международный журнал экспериментального образования. – 2016. – № 6-1. – С. 25-27;URL: https://expeducation.ru/ru/article/view?id=10094 (дата обращения: 17.08.2024).