Описание выбранного метода решения




Функция перевода:

Функция перевода нужна для того чтобы переводить углы в одну систему мер.

 

Сложение:

Функция сложения будет осуществляться после того как значения будут переведены на 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()

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: