Lab 5
Lab 5
Вспомогательное окно
Окно кода
Консоль
1
Для вывода текстовых сообщений используется оператор print(), в качестве
аргумента в двойных кавычках указывается текст сообщения. Следует отметить, что
синтаксис языка является регистрозависимым, то есть оператор print(), как и другие
ключевые слова и функции Python должны записываться строчными буквами. Например:
print("Hello, world!")
Если отдельные фрагменты программы требуют пояснений, необходимо использовать
комментарии. Однострочные комментарии начинаются с символа «#». Например:
# вывод сообщения пользователю
print("Hello, world!")
2
a. Имя состоит из букв или цифр, должно начинаться с буквы. Может включать
символ подчеркивания. Не может совпадать с ключевыми словами языка.
b. Имя является регистрозависимым (переменные x и X – разные переменные).
c. Имя переменной должно максимально четко соответствовать хранимым в ней
данным.
d. Использовать короткие имена рекомендуется только для переменных «местного
значения». Называть переменные именами, не несущими смысловой нагрузки, например
i, p – можно только в том случае, если они используются в небольшом фрагменте кода
и их применение очевидно. Например, использовать переменные i, j в качестве
управляющих переменных цикла это общепринятое обозначение, понятное всем.
e. Названия переменных, чтобы быть понятными, могут состоять из нескольких слов.
Переменные из нескольких слов пишутся вместеВотТак (первое слово с маленькой
буквы, остальные слитно и с большой). Например:
pointX
Этот способ записи называется «верблюжьей нотацией» или «camelCase».
Для вывода значения переменной используется оператор print(), например,
следующий оператор выведет на экран значение переменной name:
print(name)
С помощью оператора print() можно выводить строковые константы и значения
переменных одновременно, при выводе они разделяются запятой. Например:
print("Привет, ", name, "!")
a) б)
Рис. 4. а) Запрос имени; б) результат
4. Самостоятельно добавить операторы ввода и вывода в программу так, чтобы
результат ее выполнения в консоли выглядел, как показано на рис. 5.
3
year = int(input())
Кроме того Python допускает использование подсказки пользователю непосредственно
в операторе input(). При использовании такой подсказки ввод данных пользователем
при выполнении программы будет осуществляться сразу после текста подсказки на той же
строке. Например, следующий оператор вводит целое значение в переменную year,
выдавая пользователю подсказку:
year = int(input("В каком году Вы родились? "))
Вычисление выражения и занесение его значения в некоторую переменную
осуществляется с помощью оператора присваивания. Например, следующий оператор
от текущего года отнимает введенное пользователем значение и результат заносит в
переменную age:
age = 2019 - year
В выражениях допустимо использовать арифметические операции (сложение «+»,
вычитание «-», умножение «*», деление «/», целочисленное деление «//», остаток от
деления «%», возведение в степень «**»).
a)
б)
Рис.6. а) запрос года рождения; б) результат
4
где
условие – логическое выражение, которое может включать знаки отношений (равно
«==» (два подряд равенства), не равно «!=», больше «>», меньше «<», больше или равно
«>=», меньше или равно «<=»), логические операции (и «and», или «or», не «not»);
оператор – любые операторы, допустимые в языке Python.
После условия в операторе if и после else ОБЯЗАТЕЛЬНО ставится знак
двоеточие «:», который означает наличие вложенных конструкций.
Вложенные инструкции в Python записываются в соответствии с одним и тем же
шаблоном, когда основная инструкция завершается двоеточием, вслед за которым
располагается вложенный блок кода, обычно с отступом под строкой основной
конструкции.
Вложенные инструкции объединяются в блоки по величине отступов. Отступ может
быть любым, главное, чтобы в пределах одного вложенного блока отступ был одинаков
(обычно это 4 пробела).
В следующем примере Опрератор1 и Оператор2 относятся к вложенному блоку
Основной конструкции, а Оператор3 находится на уровне Основной
конструкции.
Основная конструкция:
Оператор1
Оператор2
Оператор3
а)
Рис. 7. Код программы
а) б)
Рис. 8. Результат выполнения программы при различных входных данных
5
а) б)
Рис. 9. Результат выполнения программы при различных входных данных
Код программы показан на рис. 10а, результат – на рис. 10б. Вычисление минимальной
оценки и вывод группы успеваемости относится к вложенному блоку оператора if…else (в
котором проверялась правильность ввода оценок), поэтому перед каждым оператором стоит 4
пробела.
6
а) б)
Рис. 10. а) код программы; б) результат выполнения программы
а) б)
Рис. 11. а) код программы; б) результат выполнения программы
а) б)
Рис. 12. а) код программы; б) результат выполнения программы
7
3. Подключить модуль math, который содержит множество функций для работы с
числовыми данными. Для этого в самом начале программы вставить оператор:
import math
В таблице 1 приведены некоторые из функций, реализованных в модуле math.
Таблица 1
Функция Описание
math.ceil(x) округление до ближайшего большего числа.
math.factorial(x) факториал числа x.
math.floor(x) округление вниз.
math.fmod(x, y) остаток от деления x на y.
math.trunc(x) усекает значение x до целого.
math.exp(x) ex.
math.log(x, логарифм x по основанию base. Если base не
[base]) указан, вычисляется натуральный логарифм.
math.log10(x) логарифм x по основанию 10.
math.log2(x) логарифм x по основанию 2.
math.pow(x, y) xy .
math.sqrt(x) квадратный корень из x.
math.acos(x) арккосинус x (x указывается в радианах).
math.asin(x) арксинус x (x указывается в радианах).
math.atan(x) арктангенс x (x указывается в радианах).
math.cos(x) косинус x (x указывается в радианах).
math.sin(x) синус x (x указывается в радианах).
math.tan(x) тангенс x (x указывается в радианах).
math.degrees(x) конвертирует радианы в градусы.
math.radians(x) конвертирует градусы в радианы.
math.pi pi = 3,1415926...
math.e e = 2,718281...
math.inf значение .
На рис. 14а приведен код программы, вычисляющий выражение, на рис. 14б – результат
ее выполнения для различных входных данных. Важно! Для наглядности отдельные фрагменты
8
программы рекомендуется отделять друг от друга пустыми строками, при необходимости
вставляя комментарии.
В коде программы используется две встроенных функции, не относящиеся к модулю
math, поэтому они записываются без префикса «math.»:
abs(x) – вычисляет модуль числа x;
round(x, n) - округляет число x до n знаков после запятой.
а) б)
Рис. 14. а) Код программы; б) результат выполнения программы
5. Для того чтобы в программе постоянно не писать префикс math перед названием
функции (math.sin()), можно в начале программы импортировать из модуля math все
функции (указать *) или перечислить нужные через запятую. В этом случае программа для
вычисления выражения будет выглядеть, как показано на рис. 15.
9
Самостоятельное задание 4. Дан треугольник, заданный координатами своих вершин.
Для этого треугольника вычислить (формулы для вычислений приведены в Приложении к
данной работе):
длины сторон;
периметр;
площадь;
величины углов в градусах.
Проверить возможность построения треугольника (сумма двух любых сторон больше
третьей), а также вывести тип треугольника: прямоугольный, тупоугольный, остроугольный.
При выводе чисел выполнить округление до трех знаков после запятой.
10
a) б)
Рис. 18. Результат выполнения программы для различных входных данных
11
Приложение
Формулы для расчетов
1. Длины сторон:
𝐴𝐵 𝑐 𝑥 𝑥 𝑦 𝑦 ,
𝐵𝐶 𝑎 𝑥 𝑥 𝑦 𝑦 ,
𝐴𝐶 𝑏 𝑥 𝑥 𝑦 𝑦 .
2. Периметр:
𝑝 𝑎 𝑏 𝑐.
3. Площадь (формула Герона):
𝑝 𝑝 𝑝 𝑝
𝑠 ∙ 𝑎 ∙ 𝑏 ∙ 𝑐 .
2 2 2 2
4. Для вычисления углов используется теорема косинусов:
с 𝑎 𝑏 2 ∙ 𝑎 ∙ 𝑏 ∙ cos ∠𝐶 .
Выразим величины углы (значения будут получены в радианах):
𝑐 𝑏 𝑎
∠𝐴 𝑎𝑟𝑐𝑐𝑜𝑠 ,
2∙𝑐∙𝑏
𝑐 𝑎 𝑏
∠𝐵 𝑎𝑟𝑐𝑐𝑜𝑠 ,
2∙𝑐∙𝑎
𝑎 𝑏 𝑐
∠𝐶 𝑎𝑟𝑐𝑐𝑜𝑠
2∙𝑎∙𝑏
5. Вписанная в треугольник окружность.
Радиус вписанной окружности вычисляется по формуле:
𝑝 𝑝 𝑝
𝑎 ∙ 𝑏 ∙ 𝑐
𝑟 2 2 2 ,
𝑝
2
координаты центра вписанной окружности (𝑂 ):
12
𝑎∙𝑥 𝑏∙𝑥 𝑐∙𝑥 𝑎∙𝑦 𝑏∙𝑦 𝑐∙𝑦
𝑥 , 𝑦 .
𝑎 𝑏 𝑐 𝑎 𝑏 𝑐
6. Описанная вокруг треугольника окружность (рисунок 15).
Радиус описанной окружности вычисляется по формуле;
𝑎∙𝑏∙𝑐
𝑅 ,
4∙𝑠
координаты центра описанной окружности (𝑂 ):
𝐷 2∙ 𝑥 ∙ 𝑦 𝑦 𝑥 ∙ 𝑦 𝑦 𝑥 ∙ 𝑦 𝑦 ,
𝑥 𝑦 ∙ 𝑦 𝑦 𝑥 𝑦 ∙ 𝑦 𝑦 𝑥 𝑦 ∙ 𝑦 𝑦
𝑥 ,
𝐷
𝑥 𝑦 ∙ 𝑥 𝑥 𝑥 𝑦 ∙ 𝑥 𝑥 𝑥 𝑦 ∙ 𝑥 𝑥
𝑦 .
𝐷
7. Медианы треугольника.
Длины медиан вычисляются по формулам:
1
𝐴𝐴 𝑀 ∙ 2∙ 𝑐 𝑏 𝑎 ,
2
1
𝐵𝐵 𝑀 ∙ 2∙ 𝑐 𝑎 𝑏 ,
2
1
𝐶𝐶 𝑀 ∙ 2∙ 𝑎 𝑏 𝑐 ,
2
координаты точек пересечения медиан со сторонами (𝐴 , 𝐵 , 𝐶 ):
𝑥 𝑥 𝑦 𝑦
𝑥 , 𝑦 ;
2 2
𝑥 𝑥 𝑦 𝑦
𝑥 , 𝑦 ;
2 2
𝑥 𝑥 𝑦 𝑦
𝑥 , 𝑦 .
2 2
13