diff --git a/less1/task5.py b/less1/task5.py new file mode 100644 index 0000000..e69de29 diff --git a/less1/task7.py b/less1/task7.py new file mode 100644 index 0000000..e69de29 diff --git a/less5/task1.py b/less5/task1.py new file mode 100644 index 0000000..06ba174 --- /dev/null +++ b/less5/task1.py @@ -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)) diff --git a/less7/task1.py b/less7/task1.py new file mode 100644 index 0000000..abf3f3d --- /dev/null +++ b/less7/task1.py @@ -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)) + diff --git a/less7/task2.py b/less7/task2.py new file mode 100644 index 0000000..771f4ae --- /dev/null +++ b/less7/task2.py @@ -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)) diff --git a/less7/task3.py b/less7/task3.py new file mode 100644 index 0000000..f441318 --- /dev/null +++ b/less7/task3.py @@ -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 + + + + + diff --git a/less8/task1.py b/less8/task1.py new file mode 100644 index 0000000..8d94180 --- /dev/null +++ b/less8/task1.py @@ -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)) + diff --git a/task1.py b/task1.py new file mode 100644 index 0000000..8d94180 --- /dev/null +++ b/task1.py @@ -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)) +