Продолжаем знакомиться с пока ещё простыми задачами по программированию. Сам я тоже решаю задачи и вспоминаю что такое программировать. делаю это на языке python. Предыдущая задача была рассмотрена ранее: задача 4.
Одно из важных умений в программировании и инженерном деле целом, это работа с графиками и функциями. Начнём знакомство с кругом и его площадью.
Задача 5
Условие:
Есть окружность, у которой определена длина. и есть радиус круга, меньшего радиуса, находящегося внутри окружности.
Задание 1.
Найти площадь сегмента, который лежит внутри окружности.
Задача 2.
Найти периметр этого сегмента.
В данной задача сделать ввод значения периметра и радиуса через ввод с клавиатуры.
В данный момент я упражняюсь с питоном поэтому буду использовать его интерпретатор:
https://www.onlinegdb.com/online_python_interpreter.
для тех кому интересны другие языки. можете решать подобные задачи на этих языках, например если интересен язык С. то можете перейти по ссылке:
https://www.onlinegdb.com/ и в правом углу выбираем язык.
Далее рекомендую взять и попробовать. Здесь всё просто.
думаю минут 15 уйдёт на поиск решения.
import math
print("Программа расчёта площади")
p = float(input("Введите длину большой окружности P: "))
r2 = float(input("Введите значение радиуса малого круга: "))
r1 = p/(2*math.pi)
s1=math.pi*r1**2
s2=math.pi*r2**2
s=s1-s2
print ("Площадь сегмента равна:",s)
print ("Периметр сегмента равен:",p + 2*r2*math.pi)
Получилась достаточно простая программа и результат её работы будет следующим:
После окончания программы, хочу сказать. что необходимо соблюдать ряд условий. чтобы результат был правильным. А именно:
1. Радиус внутренней окружности должен быть заведомо меньше.
2. Центры окружностей должны быть в одной точке, чтобы не получалось искаженной ситуации.
Рисунки 1 и 3 показывают допустимый вариант. На рисунке 2 площадь получится отрицательной. На рисунке 4 площадь расчетная получится больше чем фактическая, хотя опять же как считать.
В данной ситуации возникает интересный момент. на каком этапе нужно понимать что возможны искажения и кто их должен предусматривать.
1. Тот кто ставит задачу? В данном случае это автор.
2. Программист, который решает задачу и может в данный момент просто не задуматься, так как в его понимании это должно быть очевидно продумано заранее.
3. Тестировщик, который вдет проверять все возможные вариант, хотя в данных условиях про него речи нет.
Это вопросы на самом деле крайне важны, так как на сложных технологических задачах они чаще всего и всплывают.
Поэтому, для тех кому данная задача показалась простой, вы можете немного усложнить её, введя определенные фильтры и пояснение. Или добавить ещё один параметр - расстояние между центрами окружностей.
У меня всё. благодарю за внимание.
У меня всё, благодарю за внимание.
#вивитроникапрограммирование
#программирование
#вивитроника
#python