ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 103
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Решение:def insertion_sort(): #Сортировка вставкойnums = array[:]if parity:for i in range(1, len(nums)):item_to_insert = nums[i]j = i-1#Добавляем цикл для сортировки каждого элемента. Сортировка будет начинаться со второго элементаwhile j >= 0 and nums[j] > item_to_insert: nums[j + 1] = nums[j]j -= 1nums[j + 1] = item_to_insertelse:for i in range(1, len(nums)):item_to_insert = nums[i]j = i-1while j >= 0 and nums[j] < item_to_insert:nums[j + 1] = nums[j]j -= 1nums[j + 1] = item_to_insertreturn numsdef selection_sort(): #Сортировка выборкойnums = array[:]if parity:for i in range(len(nums)):lowest_value_index = ifor j in range(i + 1, len(nums)):if nums[j] < nums[lowest_value_index]:lowest_value_index = jnums[i], nums[lowest_value_index] = nums[lowest_value_index], nums[i]else:for i in range(len(nums)):lowest_value_index = ifor j in range(i + 1, len(nums)):if nums[j] < nums[lowest_value_index]:lowest_value_index = jnums[i], nums[lowest_value_index] = nums[lowest_value_index], nums[i]return numsdef root_mean_square_counting(): #Среднее квадратичное значениеsum_of_squares = sum([i * i for i in array])average_sum = sum_of_squares / len(array)return round(average_sum ** 0.5, 3)def arithmetic_mean_counting(): #Среднее арифметическое значениеtotal_sum = sum(array)return round(total_sum / len(array), 3)with open("sourse_data.txt", encoding='utf-8') as f:name = f.readline()[:-1]student_id = f.readline()#Приводим аргументы для выводаarray = [ord(i) for i in name.replace(' ', '')]number = int(int(student_id) / len(array))parity = number % 2 == 0sort_array = insertion_sort()arithmetic_mean = arithmetic_mean_counting()root_mean_square = root_mean_square_counting()increasing = 'возрастанию' if parity else 'убыванию'#Открываем итоговый файл и записываем результатwith open("result.txt", "w", encoding='utf-8') as f:answer = f"""1. Исходные данные: {name}; ID: {student_id} 2. {number} 3. Направление сортировки: по {increasing}, так как число {number} – {'чётное' if parity else 'нечётное'} 4. Набор данных: {array} 5. Отсортированный по {increasing} набор данных {sort_array} 7. Среднее арифметическое значение: {arithmetic_mean} 8. Среднее квадратическое значение: {root_mean_square}"""f.write(answer)Ответ1. Исходные данные: Белкина Анна Сергеевна; ID: 701919802. 35095993. Направление сортировки: по убыванию, так как число 3509599 – нечётное 4. Набор данных: [1041, 1077, 1083, 1082, 1080, 1085, 1072, 1040, 1085, 1085, 1072, 1057, 1077, 1088, 1075, 1077, 1077, 1074, 1085, 1072]5. Отсортированный по убыванию набор данных [1088, 1085, 1085, 1085, 1085, 1083, 1082, 1080, 1077, 1077, 1077, 1077, 1075, 1074, 1072, 1072, 1072, 1057, 1041, 1040]7. Среднее арифметическое значение: 1074.28. Среднее квадратическое значение: 1074.28