Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Султонов Фирдавс.docx
Скачиваний:
6
Добавлен:
08.11.2023
Размер:
2.08 Mб
Скачать
  1. Разработка алгоритма

Ниже представлена блок-схема функции для нахождения среднего арифметического чисел (Рис.1).

Рис. 30 - Блок-схема функции average(), для нахождения среднего арифметического

Ниже представлена блок-схема функции another_list() по формирования нового списка по заданному условию (Рис.2).

Рис. 31 - Блок-схема функции another_list(), для формирования нового списка

На Рис.3 показана блок-схема функции insertion_sort(), которая сортирует исходный список методом бинарных вставок.

Рис. 32 - Блок-схема функции insertion_sort(), для сортировки методом бинарных вставок

На Рис.4 показана блок-схема функции bubble() для сортировки результирующего списка методом простого обмена (1 способ).

Рис. 33 - Блок-схема функции bubble(), для сортировки методом простого обмена(1 способ)

Блок-схема основной части программы представлена на Рис. 5.

Рис. 34 - Блок-схема основной части программы

Код функции для вычисления среднего значения элементов списка:

#функция для нахождения среднего значения

def average(*spisoks):

k = 0

s = 0

for i in spisoks:

if i % 2 == 0:

k += 1

s += i

d = s/k

return d

Код функции для составления нового списка по указанному условию:

#функция для формирования нового списка

def another_list(*avr):

chislo = module.average(*avr)

spisok2 = []

for i in avr:

if i > chislo:

spisok2.append(i)

return spisok2

Код функции по сортировке списка методом бинарных вставок:

#Сортировка методом бинарных вставок

def insertion_sort(*b):

a = []

for k in b:

a.append(k)

for i in range(len(a)):

x = a[i]

left = 0

right = i - 1

while left < right:

m = left + (right - left) // 2

if x < a[m]:

right = m

else:

left = m + 1

for j in range(i, left + 1, -1):

a[j] = a[j - 1]

a[left] = x

return a

Код функции для сортировки списка методом простого обмена (1 способ)

#Сортировка методом простого обмена (1 способ)

def bubble(*a):

array = []

for k in a:

array.append(k)

for i in range(len(array)-1):

for j in range(len(array)-i-1):

if array[j] > array[j+1]:

buff = array[j]

array[j] = array[j+1]

array[j+1] = buff

return array

Код основной части программы:

import random

spisok = []

n = int(input('Введите количество элементов: '))

spisok = random.sample(range(1000), n)

print('Исходный список: ', spisok)

avr = average(spisok)

print('Среднее арифметическое равно: ', str(avr))

an_lst = another_list(spisok)

print("Другой сформированный список: ", an_lst)

in_sort = insertion_sort(*spisok)

print('Список после сортировки методом бинарных вставок: ', in_sort)

bub = bubble(*an_lst)

print('Результирующий список после сортировки методом простого обмена(1 способ): ', bub)