From e78d13ee983f696996ef5d94805c1fa405ccadc5 Mon Sep 17 00:00:00 2001 From: serg0761 Date: Sun, 11 Nov 2018 18:09:06 +0500 Subject: [PATCH 1/3] lesson 5 --- 5.1.py | 41 ++++++++++++++++++++++++++++++++++ 5.2.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 5.1.py create mode 100644 5.2.py diff --git a/5.1.py b/5.1.py new file mode 100644 index 0000000..1a199de --- /dev/null +++ b/5.1.py @@ -0,0 +1,41 @@ +#Пользователь вводит данные о количестве предприятий, их наименования +# и прибыль за 4 квартала для каждого предприятия. +# Программа должна определить среднюю прибыль (за год для всех предприятий) +# и вывести наименования предприятий, чья прибыль выше среднего +# и отдельно вывести наименования предприятий, чья прибыль ниже среднего. + +#! Ничего не сказано про компании с годовой прибылью равной среднему. +# Отнес их к "хорошим". + +from collections import namedtuple + +numbers_of_company = int(input('Введите количество компаний: ')) + +companies = [] +full_summ = 0 +company = namedtuple('company','name, years_profit') + +for i in range(numbers_of_company): + company_name = (str(input(f'Введите название компании {i + 1}:'))) + year_summ = quarter_summ = 0 + for i in range(4): + quarter_profit = int(input(f'Введите ее прибыль за {i + 1} квартал: ')) + year_summ += quarter_profit + full_summ += quarter_profit + companies.append(company(company_name, year_summ)) +average_summ = full_summ / numbers_of_company + +good_company = [] +bad_company = [] + +for comp in companies: + if comp.years_profit >= average_summ: + good_company.append(comp.name) + else: + bad_company.append(comp.name) + +print('Средняя сумма составила:', int(average_summ)) +print('Компании с прибылью выше среднего:') +print(*good_company, sep=', ') +print('Koмпании с прибылью ниже среднего:') +print(*bad_company, sep=', ') \ No newline at end of file diff --git a/5.2.py b/5.2.py new file mode 100644 index 0000000..630ac21 --- /dev/null +++ b/5.2.py @@ -0,0 +1,70 @@ +#Написать программу сложения и умножения двух шестнадцатеричных чисел. +#При этом каждое число представляется как массив, +# элементы которого это цифры числа. + + +from collections import deque + + +def input_numbers(): + num = str(input('Введите шестнадцатиричное число: ')) + numbers = list(deque(num)) #т.к. по условию задачи хранить + #нужно в простом списке + return list(numbers) + + +def read_numbers(numbers): + values = {'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15} + s = 0 + k = 0 + for i in range(len(numbers)): + if numbers[i] in values: + s = values[numbers[i]] + else: + s = int(numbers[i]) + k += s * 16 ** (len(numbers) - 1 - i) + return k + + +def make_hexadecimal(num): + num = int(num) + values = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'} + result = deque([]) + while num // 16 and num % 16 != 0: + k = num % 16 + if k in values: + result.appendleft(str(values[k])) + else: + result.appendleft(str(k)) + num = num // 16 + if num in values: + result.appendleft(str(values[num])) + elif num != 0: + result.appendleft(str(num)) + return list(result) + + +def print_numbers(num): + str_num = str() + for i in num: + str_num += i + return str_num + + +print('Последовательно введите два шестнадцатиричных числа') +first_number = input_numbers() +second_number = input_numbers() +summ_numbers = make_hexadecimal(read_numbers(first_number) + + read_numbers(second_number)) +multiplication_numbers = make_hexadecimal(read_numbers(first_number) * + read_numbers(second_number)) +#print(summ_numbers, multiplication_numbers) +print('Сумма введеных чисел в шестнадцатиричной системе: ', + print_numbers(summ_numbers)) +#print('Сумма введенных шестнадцатиричных чисел в десятичной системе: ', +# read_numbers(summ_numbers)) +print('Произведение введеных чисел в шестнадцатиричной системе: ', + print_numbers(multiplication_numbers)) + +#print('Произведение введенных шестнадцатиричных чисел составит в десятичной системе: ', +# read_numbers( multiplication_numbers)) From e040d8efcf233572c3df95f804b7944a85f3bf4b Mon Sep 17 00:00:00 2001 From: serg0761 Date: Sun, 11 Nov 2018 18:25:14 +0500 Subject: [PATCH 2/3] delet --- 5.1.py | 41 ---------------------------------- 5.2.py | 70 ---------------------------------------------------------- 2 files changed, 111 deletions(-) delete mode 100644 5.1.py delete mode 100644 5.2.py diff --git a/5.1.py b/5.1.py deleted file mode 100644 index 1a199de..0000000 --- a/5.1.py +++ /dev/null @@ -1,41 +0,0 @@ -#Пользователь вводит данные о количестве предприятий, их наименования -# и прибыль за 4 квартала для каждого предприятия. -# Программа должна определить среднюю прибыль (за год для всех предприятий) -# и вывести наименования предприятий, чья прибыль выше среднего -# и отдельно вывести наименования предприятий, чья прибыль ниже среднего. - -#! Ничего не сказано про компании с годовой прибылью равной среднему. -# Отнес их к "хорошим". - -from collections import namedtuple - -numbers_of_company = int(input('Введите количество компаний: ')) - -companies = [] -full_summ = 0 -company = namedtuple('company','name, years_profit') - -for i in range(numbers_of_company): - company_name = (str(input(f'Введите название компании {i + 1}:'))) - year_summ = quarter_summ = 0 - for i in range(4): - quarter_profit = int(input(f'Введите ее прибыль за {i + 1} квартал: ')) - year_summ += quarter_profit - full_summ += quarter_profit - companies.append(company(company_name, year_summ)) -average_summ = full_summ / numbers_of_company - -good_company = [] -bad_company = [] - -for comp in companies: - if comp.years_profit >= average_summ: - good_company.append(comp.name) - else: - bad_company.append(comp.name) - -print('Средняя сумма составила:', int(average_summ)) -print('Компании с прибылью выше среднего:') -print(*good_company, sep=', ') -print('Koмпании с прибылью ниже среднего:') -print(*bad_company, sep=', ') \ No newline at end of file diff --git a/5.2.py b/5.2.py deleted file mode 100644 index 630ac21..0000000 --- a/5.2.py +++ /dev/null @@ -1,70 +0,0 @@ -#Написать программу сложения и умножения двух шестнадцатеричных чисел. -#При этом каждое число представляется как массив, -# элементы которого это цифры числа. - - -from collections import deque - - -def input_numbers(): - num = str(input('Введите шестнадцатиричное число: ')) - numbers = list(deque(num)) #т.к. по условию задачи хранить - #нужно в простом списке - return list(numbers) - - -def read_numbers(numbers): - values = {'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15} - s = 0 - k = 0 - for i in range(len(numbers)): - if numbers[i] in values: - s = values[numbers[i]] - else: - s = int(numbers[i]) - k += s * 16 ** (len(numbers) - 1 - i) - return k - - -def make_hexadecimal(num): - num = int(num) - values = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'} - result = deque([]) - while num // 16 and num % 16 != 0: - k = num % 16 - if k in values: - result.appendleft(str(values[k])) - else: - result.appendleft(str(k)) - num = num // 16 - if num in values: - result.appendleft(str(values[num])) - elif num != 0: - result.appendleft(str(num)) - return list(result) - - -def print_numbers(num): - str_num = str() - for i in num: - str_num += i - return str_num - - -print('Последовательно введите два шестнадцатиричных числа') -first_number = input_numbers() -second_number = input_numbers() -summ_numbers = make_hexadecimal(read_numbers(first_number) + - read_numbers(second_number)) -multiplication_numbers = make_hexadecimal(read_numbers(first_number) * - read_numbers(second_number)) -#print(summ_numbers, multiplication_numbers) -print('Сумма введеных чисел в шестнадцатиричной системе: ', - print_numbers(summ_numbers)) -#print('Сумма введенных шестнадцатиричных чисел в десятичной системе: ', -# read_numbers(summ_numbers)) -print('Произведение введеных чисел в шестнадцатиричной системе: ', - print_numbers(multiplication_numbers)) - -#print('Произведение введенных шестнадцатиричных чисел составит в десятичной системе: ', -# read_numbers( multiplication_numbers)) From a12a2f76aefdc80aecb1a25c0a84a1567c7f320f Mon Sep 17 00:00:00 2001 From: serg0761 Date: Sun, 11 Nov 2018 18:26:13 +0500 Subject: [PATCH 3/3] lesson-5 --- 5.1.py | 44 ++++++++++++++++++++++++++++++++++++ 5.2.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 5.1.py create mode 100644 5.2.py diff --git a/5.1.py b/5.1.py new file mode 100644 index 0000000..63298f7 --- /dev/null +++ b/5.1.py @@ -0,0 +1,44 @@ +#Пользователь вводит данные о количестве предприятий, их наименования +# и прибыль за 4 квартала для каждого предприятия. +# Программа должна определить среднюю прибыль (за год для всех предприятий) +# и вывести наименования предприятий, чья прибыль выше среднего +# и отдельно вывести наименования предприятий, чья прибыль ниже среднего. + +#! Ничего не сказано про компании с годовой прибылью равной среднему. +# Отнес их к "хорошим". + +from collections import namedtuple + +numbers_of_company = int(input('Введите количество компаний: ')) +if numbers_of_company == 0: + print('Работникам ПВО большой привет!') +else: + companies = [] + full_summ = 0 + company = namedtuple('company','name, years_profit') + + for i in range(numbers_of_company): + company_name = (str(input(f'Введите название компании {i + 1}:'))) + year_summ = quarter_summ = 0 + for i in range(4): + quarter_profit = int(input( + f'Введите ее прибыль за {i + 1} квартал: ')) + year_summ += quarter_profit + full_summ += quarter_profit + companies.append(company(company_name, year_summ)) + average_summ = full_summ / numbers_of_company + + good_company = [] + bad_company = [] + + for comp in companies: + if comp.years_profit >= average_summ: + good_company.append(comp.name) + else: + bad_company.append(comp.name) + + print('Средняя сумма составила:', int(average_summ)) + print('Компании с прибылью выше среднего:') + print(*good_company, sep=', ') + print('Koмпании с прибылью ниже среднего:') + print(*bad_company, sep=', ') \ No newline at end of file diff --git a/5.2.py b/5.2.py new file mode 100644 index 0000000..630ac21 --- /dev/null +++ b/5.2.py @@ -0,0 +1,70 @@ +#Написать программу сложения и умножения двух шестнадцатеричных чисел. +#При этом каждое число представляется как массив, +# элементы которого это цифры числа. + + +from collections import deque + + +def input_numbers(): + num = str(input('Введите шестнадцатиричное число: ')) + numbers = list(deque(num)) #т.к. по условию задачи хранить + #нужно в простом списке + return list(numbers) + + +def read_numbers(numbers): + values = {'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15} + s = 0 + k = 0 + for i in range(len(numbers)): + if numbers[i] in values: + s = values[numbers[i]] + else: + s = int(numbers[i]) + k += s * 16 ** (len(numbers) - 1 - i) + return k + + +def make_hexadecimal(num): + num = int(num) + values = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'} + result = deque([]) + while num // 16 and num % 16 != 0: + k = num % 16 + if k in values: + result.appendleft(str(values[k])) + else: + result.appendleft(str(k)) + num = num // 16 + if num in values: + result.appendleft(str(values[num])) + elif num != 0: + result.appendleft(str(num)) + return list(result) + + +def print_numbers(num): + str_num = str() + for i in num: + str_num += i + return str_num + + +print('Последовательно введите два шестнадцатиричных числа') +first_number = input_numbers() +second_number = input_numbers() +summ_numbers = make_hexadecimal(read_numbers(first_number) + + read_numbers(second_number)) +multiplication_numbers = make_hexadecimal(read_numbers(first_number) * + read_numbers(second_number)) +#print(summ_numbers, multiplication_numbers) +print('Сумма введеных чисел в шестнадцатиричной системе: ', + print_numbers(summ_numbers)) +#print('Сумма введенных шестнадцатиричных чисел в десятичной системе: ', +# read_numbers(summ_numbers)) +print('Произведение введеных чисел в шестнадцатиричной системе: ', + print_numbers(multiplication_numbers)) + +#print('Произведение введенных шестнадцатиричных чисел составит в десятичной системе: ', +# read_numbers( multiplication_numbers))