Функция перевода:
Функция перевода нужна для того чтобы переводить углы в одну систему мер.
Сложение:
Функция сложения будет осуществляться после того как значения будут переведены на 1-ну систему углов.
Вычитание:
Функцию вычитания будет вычисляться после того как значения будут переведены в 1-ну систему углов.
Сравнение:
Для сравнения двух значений нам так же нужно перевести все значения в одну систему углов если первое значение больше второго вычесть из первого второе, и обратиться к функции перевода в противном случае наоборот.
Умножение значения на число:
В этом случае мы выбираем множитель и значение которое будем умножать. Умножаем и обращаемся к функции перевода.
Деление значения на число:
В этом случае мы выбираем делитель и значение которое будем делить. Делим и обращаемся к функции перевода.
Дополнение до оборота:
Выбираем значение которое будем дополнять если оборот больше значения, то из оборотп вычитается значение и вызывается функция перевода, в противном случае наоборот.
Преобразование в радиан:
Так как все значения в программе берутся в радианах умножаем на 0.48481368 и выводим значение
Преобразование в обороты:
Так как все значения в программе берутся в рад(функция “ввод значений”), а оборот равна 360 °, мы просто делим значение на 360.
Программная реализация.
4.1 Назначение программы:
Программа преобразует введенные значения в нужную систему мер. Выполняет сложение, вычитание, умножение, деление, сравнение двух величин, умножение и деление значений на число и дополнение значения до чейна. Все операции выполняются в пределах 10 чейнов.
|
Описание интерфейса программы
Основное окно программы:
При запуске программы отображается главное меню
Главное меню:
P. Ввод значений
T. Сложение
D. Вычитание
C. Сравнение
R. Умножение на число
M. Деление на число
A. Дополнение до оборота
S. Преобразование в радиан
N. Преобразование в обороты
Q. Завершить и выйти из программы
Введите команду:>
4.3 Тестовый план
Номер теста | Градусы | Минуты | Секунды | Операции | Результат |
Сложение | 12;13;12 | ||||
Вычитание | 11;46;48 | ||||
Сравнение(1 и 2) | 1>2 на 11; 47; 0 | ||||
Умножение на число(2и 2) | 0;25;59 | ||||
Деление на число(5 и 3) | 0;0;5 | ||||
Дополнение до оборота(1) | 348; 0; 0 | ||||
Преобразование в радиан | |||||
Преобразование в обороты(2) |
Выводы по работе
В ходе курсовой работы была написана программа на высокоуровневом языке Python. Программа успешно реализует операции над мерами длины.
Систематизированы и закреплены практические навыки использования ЭВМ, программного обеспечения, существующих средств обслуживания системных программистов, а также теоретические знания по основным разделам курса "Алгоритмические языки программирования высокого уровня".
Предусмотрена ситуация, когда вычисления невозможны.
Получены практические навыки работы в среде IDLE Python 3.4.
Листинг программы с комментариями
#const
sec = 0.0000048481368
minuta = 60 * sec
gradus = 60 * minuta
oborot = 360 * gradus
max = 10 * oborot
min = 0
# Переводзначенийуглов
def translate(num):
|
noborot = 0
ngradus = 0
nminuta = 0
nsec = 0
while num >= sec:
if num >= sec:
nsec = num/sec
num = num - nsec*sec
if nsec >= 12:
nminuta = nsec // 60
nsec = nsec % 60
if nminuta >= 60:
ngradus = nminuta // 60
nminuta = nminuta % 60
if ngradus >= 22:
noborot = ngradus // 360
ngradus = ngradus % 360
print('Оборотов:',int(noborot),'Градусов:',int(ngradus),'Минут:',int(nminuta),'секунд:',int(nsec))
# Главная функция реализует интерфейс с пользователем
def main():
mass = []
punkt = '0'
while(punkt!= 'Q' and punkt!= 'q'):
print('\nКурсовая работа. Вариант №4\nГлавное меню:',
'\nP. Ввод значений',
'\nT. Сложение',
'\nD. Вычитание',
'\nC. Сравнение',
'\nR. Умножение на число',
'\nM. Деление на число',
'\nA. Дополнение до оборота',
'\nS. Преобразование в радиан',
'\nN. Преобразование в обороты',
'\nQ. Завершить и выйти из программы')
punkt = (input('Введите команду:>'))
if punkt == 'P' or punkt == 'p': P(mass)
elif punkt == 'C' or punkt == 'c': C(mass)
elif punkt == 'D' or punkt == 'd': D(mass)
elif punkt == 'T' or punkt == 't': T(mass)
elif punkt == 'A' or punkt == 'a': A(mass)
elif punkt == 'S' or punkt == 's': S(mass)
elif punkt == 'N' or punkt == 'n': N(mass)
elif punkt == 'R' or punkt == 'r': R(mass)
elif punkt == 'M' or punkt == 'm': M(mass)
else:
print('Такой команды нет')
# Ввод значений
def P(arr):
global n1
global n2
global n3
number1 = int(input('Введите количество градусов = '))
n1 = number1 * gradus
number2 = int(input('Введитеколичествоминут = '))
n2 = number2 * minuta
number3 = int(input('Введитеколичествосекунд = '))
n3 = number3 * sec
print('Градусов:', number1,'\nМинут:', number2,'\nСекунд:', number3)
# Сложение
def T(arr):
if n1+n2+n3<max:
summa=n1+n2+n3
print("Сумма:")
translate(summa)
else:
print('Внедиапазона')
# Вычитание
def D(arr):
if n1 <= 0 or n1-n2 <= 0:
if n2 <=0 or n2-n3 <= 0:
vichit = n3
print ('Разность заданных значений:')
translate(vichit)
else:
if n2-n3 < max and n2-n3 > min:
vichit = n2-n3
print ('Разность заданных значений:')
translate(vichit)
else:
print('Внедиапазона')
else:
if n1-n2-n3 < max:
vichit = n1-n2-n3
|
print ('Разность заданных значений:')
translate(vichit)
else:
print ('Внедиапазона')
# Сравнение
def C(arr):
vibr1 = int(input("Первое значение для сравнения (1,2,3)? "))
vibr2 = int(input("Второе значение для сравнения (1,2,3)? "))
if (vibr1 == 1 and vibr2 == 2) or (vibr2 == 1 and vibr1 == 2):
if n1>n2:
rs1 = n1 - n2
print("Первое значение больше второго на")
translate(rs1)
elif n1<n2:
rs1 = n2 - n1
print("Первое значение больше второго на")
translate(rs1)
else:
print("Значенияравны")
if (vibr1 == 1 and vibr2 == 3) or (vibr2 == 1 and vibr1 == 3):
if n1>n3:
rs2 = n1 - n3
print("Первое значение больше второго на")
translate(rs2)
elif zn1<zn3:
rs2 = n3 - n1
print("Первое значение больше второго на")
translate(rs2)
else:
print("числаравны")
if (vibr1 == 2 and vibr2 == 3) or (vibr2 == 2 and vibr1 == 3):
if n2>n3:
rs3 = n2 - n3
print("Первое значение больше второго на")
translate(rs3)
elif n2<n3:
rs3 = n3 - n2
print("Первое значение больше второго на")
translate(rs3)
else:
print("Значенияравны")
# Умножение значения на число
def R(arr):
mnozh = int(input("Введите множитель: "))
vibr = int(input("Какое значение будем умножать (1,2,3)? "))
ifvibr == 1:
umnozhenie1 = mnozh * n1
translate(umnozhenie1)
elifvibr ==2:
umnozhenie2 = mnozh * n2
translate(umnozhenie2)
else:
umnozhenie3 = mnozh * n3
translate(umnozhenie3)
# Деление значения на число
def M(arr):
delitel = int(input("Введите делитель: "))
vibr = int(input("Какое значение будем делить (1,2,3)? "))
ifvibr == 1:
delitel1 = n1 / delitel
translate(delitel1)
elif vibr ==2:
delitel2 = n2 / delitel
translate(delitel2)
else:
delitel3 = n3 / delitel
translate(delitel3)
# Дополнение до оборота
def A(arr):
vibr = int(input("Какое значение будем дополнять (1,2,3)? "))
if vibr == 1:
if oborot > n1:
dopoln1 = oborot - n1
print("Добавлено:")
translate(dopoln1)
else:
dopoln1 = n1 - oborot
print("Вычтено:")
translate(dopoln1)
elif vibr == 2:
if oborot > n2:
dopoln2 = chein - n2
print("Добавлено:")
translate(dopoln2)
else:
dopoln2 = n2 - oborot
print("Вычтено:")
translate(dopoln2)
else:
if oborot > n3:
dopoln3 = oborot - n3
print("Добавлено:")
translate(dopoln3)
else:
dopoln3 = n3 - oborot
print("Вычтено:")
translate(dopoln3)
# Преобразование в радиан
def S(arr):
vibr = int(input("Какое значение будем преобразовывать в радиан (1,2,3)? "))
ifvibr == 1:
rad = n1 * 0.0000048481368
print('Результат дополнения = ', int(rad),'радиан')
elifvibr ==2:
rad = n2* 0.0000048481368
print('Результат дополнения = ', int(rad),'радиан')
else:
rad = n3* 0.0000048481368
print('Результат дополнения = ', int(rad),'радиан')
# Преобразования в обороты
def N(arr):
vibr = int(input("Какое значение будем преобразовывать в обороты (1,2,3)? "))
ifvibr == 1:
obor1 = n1/360
print('Результат дополнения = ', int(obor1),'оборот')
elifvibr ==2:
obor2 = n2/360
print('Результат дополнения = ', int(obor2),'оборот')
else:
obor3 = n3/360
print('Результат дополнения = ', int(obor3),'оборот')
# Запуск главной функции
if __name__ == '__main__':
main()