Курсовая работа: Разработка программы проверки треугольности квадратной матрицы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

При попытке ввести переменные, не удовлетворяющих условию, программа даст возможность ввести размерность или строку матрицы повторно.

На рисунке 6.18 отображён некорректный ввод размерности матрицы.

Рисунок 6.18 - Сообщения об ошибках, при некорректном вводе данных

На рисунке 6.8 отображен некорректный ввод строк матрицы.

Рисунок 6.19- Сообщения об ошибках, при некорректном вводе строки

Исходя из вышеперечисленного, можно сделать вывод, что программа работает в исключительных ситуациях правильно и без ошибок,так как отвергает все неверные значения и даёт возможность пользователю повторить ввод данных.

Программа была протестирована в нормальных условиях, экстремальных условиях и исключительных ситуациях, следовательно, программа работает правильно.

Листинг программы приведён в приложении A, а результаты выполнения - в приложении Б.

7. Руководство пользователя

Минимальные системные требования:

- операционная система: Windows. Рекомендуемая ОС: WindowsXP и выше;

- процессор: 1 ГГц;

- ОЗУ: 64 МБ;

- свободное место на жестком диске: 10КБ;

- наличие IBM - совместимых клавиатуры и мыши.

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

При запуске пользователю будет предложено ввести размерность матрицы и саму матрицу, это показано на рисунке 7.1.

Рисунок 7.1 - Ввод начальных значений.

После ввода последней строки матрицы и нажатия кнопки Enter, программа выведет на экран саму матрицу и её тип, это показано на рисунке 7.2.

Рисунок 7.2 -Вывод результатов работы программы на экран

Далее программа будет автоматически завершена.

Заключение

программа матрица листинг тестирование

Данная программа занимается проверкой типа квадратных матриц, размерность которых составляет не менее 1 и не более 10.

Листинг программы имеет понятные пошаговые комментарии, позволяющие увидеть алгоритм её работы. Имеется практически совершенный алгоритм контроля ошибок, который не позволит пользователю ввести значение, которое приведёт к остановке и завершению программы.

Также программа составлена с использованием основной парадигмы - объектно-ориентированного программирования, что открывает широкие возможности для её последующей модификации и расширения функционала. Крайне малый вес программы и очень низкие требования к ресурсам позволяют запускать её на любых компьютерах, а также любых операционных системах, на которых установлен интерпретатор Python.

Ввод и вывод значений имеет понятную для пользователя структуру, которая в сочетании с алгоритмом предотвращения ошибок создаёт полноценный продукт.

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

Список использованных источников

1 Ален Б. Думай на Python. Питер, 2009.

2 Билл Л. Простой Python. Современный стиль программирования. Питер, 2016.

3 Лутц М. Изучаем Python. Символ-Плюс, 2011.

4 Рейтц К. Автостопом по Python. Питер, 2017.

5 Северенс Ч. Введение в программирование на Python. Питер, 2016.

6 Томас Х. Алгоритмы. Вводный курс. Питер, 2014.

7 Хейнеман Дж. Алгоритмы. Справочник. Питер, 2017.

8 Шоу Зед. Лёгкий способ выучить Python. Эксмо, 2017.

9 ArbuckleD. MasteringPython. Альфа-книга,2017.

10 BeazleyD. PythonCookbook. Эксмо, 2013.

11 ChitipothuA. Python Practice Book. Дрофа, 2014.

12 Payne J. Beginnig Python: Using Python 2.6 and Python 3.1. Эксмо, 2010.

13 Phillips D. Python Object-Oriented Programming, Эксмо, 2010.

14 https://www.python.org/doc/

15 https://www.sololearn.com/Course/Python/.

Приложение

Листинг программы

#Курсовой проект.

#

#По профессиональному модулю МДК 03.01: "Технология разработки программного обеспечения".

#Тема: "Разработка программы проверки треугольности квадратной матрицы".

#Разработал: Лосев Николай Дмитриевич ТМП-62.

#Версия 5.5, 04.22.2018.

#Язык разработки: Python

#

#Задание:

#Разработать программу проверки треугольности квадратной матрицы.

#Возможные типы матриц: треугольная верхняя, треугольная нижняя, диагональная, нулевая.

#######################################################################

#

#класс NewMatrix - основной класс программы, содержащий все функции.

#

######################################################################

#Используемые переменные:

#A - содержит матрицу;

#my_matrix - объект класса NewMatrix.

#

######################################################################

#Используемые функции:

#__init__() - инициализация класса NewMatrix;

#create_matrix() - создание и ввод матрицы;

#first_check() - проверка на корректность ввода размерность матрицы;

#second_chekc() - проверка на корректность ввода элементов матрицы;

#show_matrix() - вывод матрицы на экран;

#check() - проверка матрицы на принадлежность к одному из типов матриц.

#

#######################################################################

#Используемые переменные:

#matrix - матрица;

#row - строка матрицы;

#elem - элемент матрицы;

#n - размерность матрицы;

#maxx - значение максимального по модулю элемента матрицы;

#lowd - количество нулевых элементов нижних диагоналей;

#uppd - количество нулевых элементов верхних диагоналей;

#maind - количество нулевых элементов главной диагонали;

#alld - количество элементов нижних или верхний диагоналей;

#i - cчётчик строк матрицы;

#j - счётчик элементов строки матрицы.

#######################################################################

class NewMatrix:

#######################################################################

#

#__init__ - инициализация класса NewMatrix.

#

#######################################################################

#Локальный параметр:

#matrix - матрица.

#

#######################################################################

def __init__(self):

matrix = []

self.matrix = matrix

#######################################################################

#

#create_matrix - создание и ввод матрицы.

#

#######################################################################

#Формальные параметры:

#matrix - матрица;

#######################################################################

#Локальные параметры:

#row - строка матрицы;

#n - размерность матрицы;

#i - счётчикстрокматрицы.

#######################################################################

def create_matrix(self, matrix):

#######################################################################

#

#first_check() - проверка на корректность ввода размерность матрицы;

#

#######################################################################

#Локальный параметр:

#n - размерность матрицы.

#######################################################################

def first_check():

try:

n = int(input("Введитеразмерностьматрицы: "))

if (n < 1) or (n > 10):

print("Число значений не может быть равно ", n)

return False

return n

except ValueError:

print("Количество элементов не может содержать буквы или специальные символы")

return False

#######################################################################

#

#second_check - проверка на корректность ввода элементов матрицы.

#

#######################################################################

#Формальный параметр:

#n - размерность матрицы.

#######################################################################

#Локальные параметры:

#row - строка матрицы;

#elem - элементстрокиматрицы;

#

#######################################################################

def second_check(n):

try:

row = [float(elem) for elem in input().split()]

if len(row) != n:

print("Неверное количество элементов в строке")

return False

return row

except ValueError:

print("Ни один из элементов строки не может быть буквой или содержать специальные символы")

return False

n = False

while not n:

n = first_check()

print("Введите элементы в строку")

for i in range(n):

row = False

while not row:

row = second_check(n)

self.matrix.append(row)

return self.matrix

#######################################################################

#

#show_matrix - выводматрицынаэкран.

#

#######################################################################

#Формальный параметр:

#matrix - матрица.

#######################################################################

#Локальные параметры:

#maxx - максимальный элемент матрицы;

#row - строка матрицы;

#elem - элементстрокиматрица.

#######################################################################

def show_matrix(self, matrix):

maxx = 0

for row in self.matrix:

for elem in row:

if abs(elem) > maxx:

maxx = elem

for row in self.matrix:

print('|' + '|'.join([str(elem).rjust(len(str(maxx)) + 2) for elem in row]) + '|')

########################################################################

#

#check - проверка матрицы на принадлежность к одному из типов матриц.

#

########################################################################

#Формальный параметр:

#matrix - матрица.

########################################################################

#Локальные параметры:

#i - счётчик строк матрицы;

#j - счётчик элементов строки матрицы;

#lowd - количество нулевых элементов нижних диагоналей;

#uppd - количество нулевых элементов верхних диагоналей;

#maind - количество нулевых элементов главной диагонали;

#alld - количество элементов нижних или верхний диагоналей.

#

########################################################################

def check(self, matrix):

i = j = lowd = uppd = maind = alld = 0

for i in range(len(self.matrix)):

for j in range(i):

if self.matrix[i][j] == 0:

lowd += 1

if self.matrix[len(self.matrix) - i - 1][len(self.matrix) - j - 1] == 0:

uppd += 1

alld += 1

if self.matrix[i][i] == 0:

maind += 1

print("\nКоличество нулевых элементов НИЖЕ главной диагонали: ", lowd)

print("Количество нулевых элементов ВЫШЕ главной диагонали: ", uppd)

print("Количество нулевых элементов в ГЛАВНОЙ диагонали: ", maind, "\n")

if (lowd == alld) and (uppd == alld) and (maind == len(self.matrix)):

print("Нулеваяматрица")

elif (lowd == alld) and (uppd == alld):

print("Диагональная матрица")

elif (lowd == alld):

print("Треугольная ВЕРХНЯЯ матрица")

elif (uppd == alld):

print("Треугольная НИЖНЯЯ матрица")

else:

print("Матрица нетреугольная")

########################################################################

#Используемый класс:

#NewMatrix - основной класс программы, содержащий все функции.

#

########################################################################

#Используемые функции:

#create_matrix - создание и ввод матрицы;

#show_matrix - вывод матрицы на экран;

#check - проверка матрицы на принадлежность к одному из типов матриц.

#

########################################################################

#Используемые переменные:

#А - матрица А;

#my_matrix - объекткласса NewMatrix.

########################################################################

A = []

my_matrix = NewMatrix()

my_matrix.create_matrix(A)

my_matrix.show_matrix(A)

my_matrix.check(A)

Результаты выполнения программы

Ввод данных для треугольной верхней матрицы представлен на рисунке Б.1.

Рисунок Б.1 - Ввод данных для треугольной верхней матрицы

Результат выполнения программы для треугольной верхней матрицы представлен на рисунке Б.2.

Рисунок Б.2- Результат выполнения программы для треугольной верхней матицы

Ввод данных для треугольной нижней матрицы представлен на рисунке Б.3.

Рисунок Б.3- Ввод данных для треугольной нижней матрицы

Результат выполнения программы для треугольной нижней матрицы представлен на рисунке Б.4.

Рисунок Б.4- Результат выполнения программы для треугольной нижней матицы

Ввод данных для диагональной матрицы представлен на рисунке Б.5.

Рисунок Б.5- Ввод данных для диагональной матрицы

Результат выполнения программы для диагональной матрицы представлен на рисунке Б.6.

Рисунок Б.6- Результат выполнения программы для диагональной матицы

Ввод данных для нулевой матрицы представлен на рисунке Б.7.

Рисунок Б.7- Ввод данных для нулевой матрицы

Результат выполнения программы для нулевой матрицы представлен на рисунке Б.8.

Рисунок Б.8- Результат выполнения программы для нулевой матицы

Ввод данных для нетреугольной матрицы представлен на рисунке Б.9.

Рисунок Б.9- Ввод данных для нетреугольной матрицы

Результат выполнения программы для нетреугольной матрицы представлен на рисунке Б.10.

Рисунок Б.10- Результат выполнения программы для нетреугольной матицы

Источник: https://otherreferats.allbest.ru/download/1000554/