Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

4.1 KiB

Тест по модулю 3

Мамакин Ярослав, А-02-23

Задание

M3_27

  1. Создайте модуль М1, содержащий 2 функции:
  • функция 1: аргумент - список или кортеж с выборкой; определение по списку или кортежу номеров элементов с наименьшим и наибольшим значениями;

  • функция 2: аргументы - список или кортеж с выборкой и целочисленный параметр N; функция должна разделить выборку на непересекающиеся группы, содержащие по заданному числу N элементов с последовательными индексами (в последней группе число элементов может быть меньше N), и расчет по группам среднего значения их элементов; значения средних возвращаются в вызывающую программу в виде списка;

  1. Создайте еще один модуль М2, в котором должны выполняться следующие операции:
  • запрашивается имя бинарного файла с выборкой, проверяется его наличие и при отсутствии - повторяется запрос;

  • выборка вводится из файла;

  • с помощью функции 1 производится определение номеров наименьшего и наибольшего элементов;

  • отображается число элементов в считанной последовательности и запрашивается у пользователя число элементов N для формирования групп;

  • с помощью функции 2 рассчитывается список со средними значениями по группам ;

  • на графике отображается исходная выборка.

  1. Создайте модуль М0 - главную программу, которая вызывает М2 и отображает результаты расчета на экране.

  2. Проведите расчеты при 2-х разных исходных файлах.

Решение

def min_max(vibork):
    minim = 0
    maxim = 0
    for i in vibork:
        if i == min(vibork):
            minim = i
        if i == max(vibork):
            maxim = i
    return (minim, maxim)

def avg_bins(vibork, N):
    sum = 0
    avg = 0
    outp = []
    for i in range(len(vibork)):
        if i % N == 0:
            if i != 0:
                avg = sum / N
                outp.append(avg)
            sum = 0
        sum += vibork[i]
    outp.append(sum / ((i % N) + 1))
    return outp
import os
os.chdir(r'C:\Users\uprkt\Desktop\ПО\python-labs\TEMA9')

while True:
        filename = os.path.abspath(input(f"Введите имя файла: "))
        if os.path.isfile(filename):
            break

import pickle

fp=open(filename, 'rb')
vib=pickle.load(fp)
fp.close()

import M1

min_and_max = M1.min_max(vib)
print(f'Число элементов: {len(vib)}')
N = int(input('Введите число N'))
spis = M1.avg_bins(vib, N)

import pylab

pylab.plot(vib)
pylab.show()
import M2

print(f'Минимальное и максимальное значения: {M2.min_and_max}')
print(f'Список средних: {spis}')
import M0
Введите имя файла: binar1.bin
Число элементов: 9
Введите число N3
Минимальное и максимальное значения: (1, 9)
Список средних: [2.0, 5.0, 8.0]
import M0
Введите имя файла: binar2.bin
Число элементов: 16
Введите число N4
Минимальное и максимальное значения: (2, 56)
Список средних: [4.5, 11.75, 19.0, 4.25]

12 23