Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added less1/task5.py
Empty file.
Empty file added less1/task7.py
Empty file.
24 changes: 24 additions & 0 deletions less5/task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
'''
Пользователь вводит данные о количестве предприятий, их наименования и прибыль за 4 квартала (т.е. 4 отдельных числа) для каждого предприятия.. Программа должна определить среднюю прибыль (за год для всех предприятий) и вывести наименования предприятий, чья прибыль выше среднего и отдельно вывести наименования предприятий, чья прибыль ниже среднего.
'''


ind_cn = int(input('Количество предприятий: '))

ind_name = {}

year_sum = 0

for i in range(ind_cn):
name = input('Название предприятия: ')
q = 4
ysum = 0
for j in range(q):
qsum = int(input('Выручка за {}-й квартал: '.format(j+1)))
ysum += qsum
ind_name[name] = ysum
year_sum += ysum

mid_cash = year_sum/ind_cn
for i in ind_name:
print('Годовая выручка предприятия {} больше средней'.format(i) if ind_name[i] > mid_cash else'Годовая выручка {} предприятия меньшей средней'.format(i))
20 changes: 20 additions & 0 deletions less7/task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

import random

arr = [random.randint(-100, 99) for i in range(200)]

print('Список до сортировки \n',arr)

def rev_buble(arr):
count = 1
N = len(arr)
while count < len(arr):
for i in range(N-count):
if arr[i] < arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
count += 1
return arr
print()

print('Список после сортировки \n', rev_buble(arr))

43 changes: 43 additions & 0 deletions less7/task2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import random

'''
Алгоритм сортировки слиянием
'''

arr = [random.randint(0, 49) for i in range(10)]
print('До сортировки', arr)
print()
'''
Функция 'merge' обрабатывает каждую пару массивов из функции 'mergesort'
'''
def merge(left, right):
result = []
i ,j = 0, 0
while i < len(left) and j < len(right): # сравнивает элементы двух массивов
if left[i] <= right[j]:
result.append(left[i]) # и помещает меньший элемент в отсортированныый массив
i += 1
else:
result.append(right[j])
j += 1
print('промежуточный результат',result)
result += left[i:] # когда счетчик одного из массивов заканчивается остатоk от другого помещается в result,
result += right[j:] # так как оставшиеся значения автоматически больше
print()
return result
'''
Функция 'mergesort' рекурсивно делит массив на две части > 50/2 > 25/2, 25/2 > 12/2, 12/2, 12/2, 12/2 > ... и тд
'''
def mergesort(arr):
if len(arr) < 2:
return arr
middle = int(len(arr) / 2)
print('середина', middle)
left = mergesort(arr[:middle])
right = mergesort(arr[middle:])
print("Левый и правый массив", left, right)
return merge(left, right)


print()
print('После сортировки', mergesort(arr))
26 changes: 26 additions & 0 deletions less7/task3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import random

m = random.randint(1, 5)
arr = [random.randint(0, 10) for i in range(2*m + 1)]
print(arr)

half = int((len(arr)-1)/2)

i = 0
while i < len(arr):
mid = arr[i]
count = 0
for j in arr:
if mid <= j:
count += 1
else:
count += 0
if count == half:
print('Медиана- ', mid)
break
i += 1





16 changes: 16 additions & 0 deletions less8/task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import hashlib


a = input('Введи строку для поиска')
sub_st_len = int(input('Укажите длинну искомых подстрок'))


def find_sb_str(st, sub_st_len):
hash_list = []
for i in range(len(st) - sub_st_len + 1):
hash_list.append(hashlib.sha1(st[i:i+sub_st_len].encode('utf-8')).hexdigest())

return len(set(hash_list))

print('Количество уникальных подстрок в заданной строке - ', find_sb_str(a, sub_st_len))

16 changes: 16 additions & 0 deletions task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import hashlib


a = input('Введи строку для поиска')
sub_st_len = int(input('Укажите длинну искомых подстрок'))


def find_sb_str(st, sub_st_len):
hash_list = []
for i in range(len(st) - sub_st_len + 1):
hash_list.append(hashlib.sha1(st[i:i+sub_st_len].encode('utf-8')).hexdigest())

return len(set(hash_list))

print('Количество уникальных подстрок в заданной строке - ', find_sb_str(a, sub_st_len))