Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МСиСвИТ Практическая работа №3.docx
Скачиваний:
18
Добавлен:
09.07.2024
Размер:
59.58 Кб
Скачать
  1. Описание программы

Данный код представляет собой программу на языке Python, которая вычисляет значения функции Y для определенных интервалов аргумента X. Программа разбита на несколько файлов:

  1. main.py: Этот файл содержит основной класс Solution, который выполняет основную бизнес-логику программы. Он импортирует класс FunctionY из файла function_y.py и несколько функций для вывода сообщений из файла messages.py;

  2. function_y.py: Здесь определен класс FunctionY, представляющий искомую функцию Y. Он содержит методы для вычисления значений функции на различных интервалах аргумента X, а также для определения интервала, к которому принадлежит текущий аргумент;

  3. messages.py: Этот файл содержит несколько функций для вывода приветственных сообщений, информации о работе и разработчике, а также для завершения программы;

  4. colors.py: В этом файле определены стили текста с использованием библиотеки colorama.

Основной метод main() класса Solution в файле main.py выполняет все необходимые инструкции:

  1. Выводит приветственные сообщения;

  2. Создает объект класса FunctionY с заданными границами и шагом аргумента. В цикле вычисляет значения функции Y на различных интервалах аргумента X;

  3. Выводит таблицу аргумент-значение-функция. Выводит сообщение о завершении программы.

Программа модульная и использует объектно-ориентированный подход для решения задачи. Она разделена на отдельные компоненты (классы и функции), что делает код более читаемым и поддерживаемым.

  1. Расчёт спена идентификаторов и спена разработанной программы

Спен идентификатора – это число повторных появлений идентификатора (число появлений после его первого появления) в тексте программы. Идентификатор, встречающийся в тексте программы n раз, имеет спен, равный n-1.

Таблица 4.1 – Спен разработанной программы

Идентификатор

first_border

second_border

step

value_of_argument

values_of_function

view_of_functions

x

y

string

Суммарный спен программы

Спен

1

1

2

15

4

0

1

8

1

33

  1. Расчет полной метрики Чепина и метрики Чепина ввода/вывода с результатами

Метрика Чепина базируется на анализе характера использования в программе переменных.

Существуют различные варианты метрики Чепина. Ниже рассмотрен вариант (назовем данный вариант полной метрикой Чепина), в котором все множество переменных программы разбивается на четыре функциональные группы:

  1. Р – вводимые переменные, содержащие исходную информацию, но не модифицируемые в программе и не являющиеся управляющими переменными;

  2. М – модифицируемые переменные и создаваемые внутри программы константы и переменные, не являющиеся управляющими переменными;

  3. С – переменные, участвующие в управлении работой программного модуля (управляющие переменные);

  4. Т – не используемые в программе («паразитные») переменные, например, вычисленные переменные, значения которых не выводятся и не участвуют в дальнейших вычислениях.

Значение метрики Чепина определяется по формуле:

Q = a1p + a2m + a3c + a4t ,

где a1, a2, a3, a4 – весовые коэффициенты; p, m, c, t – количество переменных в группах Р, М, С, Т соответственно.

Наиболее часто применяются следующие значения весовых коэффициентов: а1 = l, а2 = 2, а3 = 3, а4 = 0,5. С учетом данных значений формула для определения метрики Чепина принимает вид:

Q = p + 2m + 3c + 0,5t.

Рассматривая различные переменные относительно разных метрик Чепина, их можно соотнести по разным группам.

Атрибуты класса functionY: first_border является входным параметром, для указания начала области определения функции, в то время как другие входные параметры step и second_border являются управляющими идентификаторами, поскольку принимают участие в самом алгоритме программы.

Переменные-паразиты отсутствуют в программе, в ней используются самые передовые версии языка программирования Python: используются различные методы коллекций данных, функции округления, математические функции из модуля math.

Итоговые пары “аргумент-значение” заносятся в список values_of_function, переменные x, y, string не являются управляющими, поэтому относятся в другую группу.

Таблица 5.1 – Метрика Чепина разработанной программы

Полная метрика Чепина

Метрика Чепина ввода/вывода

Группа переменных

P

M

C

T

P

M

C

T

Переменные, относящиеся к группе

First_border

Values_of_function, x, y, string

Step, second_border, value_of_argument, view_of_functions

Отсутствуют

First_border, Step, second_border,

Values_of_function, x, y, string

view_of_functions

Отсутствуют

Количество переменных в группе

p = 1

m = 4

c = 4

t = 0

p = 3

m = 4

c = 1

t = 0

Метрика Чепина

Q = 1*1 + 2*4 + 3*4 + 0,5*0 = 21

Q = 1*3 + 2*4 + 3*1 + 0,5*0 = 14