Автоматизация решения задачи на находжение матрицы в составе другой матрицы

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

 

 

 

 

 

 

 

 

 

 

 

 

Пояснительная записка

к курсовой работе

 

Программирование на алгоритмических языках

 

 

 

 

 

 

 

 

 

 

 

 

 

Рудный 2008г.

ВВЕДЕНИЕ

 

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

Суть автоматизации задачи заключается в простоте и удобстве получения результата путём ввода необходимых условий и формул.

Необходимо автоматизировать процесс для упрощения работы. Автоматизация позволит уменьшит время потраченное на решение поставленной задачи, а так же выполнит решение без ошибок (при правильно заданой задаче и правильных путях выполнения решения). Так же происходит глобальная экономия человеческих ресурсов. Можно создать алгоритм решением которого были бы заняты множество людей из разных сфер деятельности, а воспользововшись алгоритмическими путями можно решить поставленную задачу всего с помощью одной или нескольких ЭВМ.

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

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

 

1. МАТЕМАТИЧЕСКАЯ ЧАСТЬ (ПОСТАНОВКА ЗАДАЧИ)

 

Задача о замочной скважине, подойдет ли ключ к замку. Даны мозаичные изображения замочной скважины и ключ. Нужно узнать, пройдёт ли ключ в скважину? То есть даны матрицы K(m1,n1) и L(m2,n2), m1>m2, n1>n2, состоящие из нулей и единиц. Проверить, можно ли наложить матрицу L на матрицу K (без поворота, разрешается только сдвиг) так, что каждой единице матрицы L соответствовал нуль матрицы K, и если можно, то как?

 

. ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ

 

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

 

 

3. ОПИСАНИЕ ПЕРЕМЕННЫХ

 

При описании блок-схемы решения задачи использованы следующие обозначения переменных:

str - номер строки необходимый для запоминания,

st - номер столбца необходимый для запоминания,

m1 - количество строк скважины,

m2 - количество строк ключа,

n1 - количество столбцов скважины,

n2 - количество столбцов ключа,

n, m, z - промежуточные переменные.

 

. АНАЛИЗ РЕЗУЛЬТАТОВ ВЫЧИСЛЕНИЙ

 

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

Рис.1 Ввод количества строк и столбцов для матриц

 

Затем программа просит ввести элементы для обеих матриц. Сначала вводится замок, а затем после появившегося сообщения ключ

 

Рис. 2 Заполнения матриц элементами(согласно условию элементы могут быть только 1 и 0)

 

Далее программа производит поиск ключа в составе замка только с обратными значениями элементов, т.е. на месте 0 ищет 1 и наоборот.

Сначала программа ищет обратное значение первого элемента ключа в замке. Найдя, его она начинает сравнивать первую строку ключа с найденной строкой замка. Если сходства полностью нет, т.е. на месте каждой 1 стоит 0 и наоборот, то программа переходит на следующую строку и ключа и замка и продолжает сравнения. Если получилось что каждому нулю матрицы ключа соответствует единица матрицы замка и наоборот, то программа выдаст сообщение VSE SOVPALO. Если же будет расхождение, то программа вернет весь цикл к сравнению первого элемента и весь алгоритм повторится заново.

автоматизация матрица задача

ЗАКЛЮЧЕНИЕ

 

Данная курсовая работа демонстрирует решение задачи, путём её автоматизации на алгоритмическом языке С++. При помощи ЭВМ возможно быстрое вычисление результатов задачи, учитывая некоторые условия, вводимые пользователем. Данная программа показывает как с помощью языка С можно найти матрицу в составе другой матрицы. Программа особенно действенна, в случае если необходимо найти небольшую матрицу в другой матрице больших размеров. Составленная программа позволяет избежать ошибки, которую может допустить человек при визуальном нахождении этих матриц.

Составление этой программы дало мне большую практику в составлении массивных алгоритмов и связи мини программ в состав большой программы - и придании этим программам единой целостности.

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1.Конспект лекций

2.Березин Б.И., Березин С.Б. Начальный курс С и С++. М.: ДИАЛОГ-МИФИ, 2000.

.Методические указания к выполнению курсовой работы по дисциплине Программирование на алгоритмических языках. Составитель: Барышникова Т.А. Рудный, 2008

.Бьярн Страустрап Справочное руководство по C++&#