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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.05.2012
Размер файла 134,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

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

Рудный 2008г.

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

4. Бьярн Страустрап «Справочное руководство по C++» Москва, 1998.

5. Андрей Александреску «Программирование на С++» ВИЛЬЯМС, Киев, 2002.

ПРИЛОЖЕНИЕ 1

#include<conio.h>

#include<stdio.h>

main()

{

int K[100][100];

int L[100][100];

int j,i,m1,m2,n1,n2,st,str,a,b,k,m,n,z;

printf("vvedite kolli4estvo strok zamka");

scanf("%d",&m1);

printf("vvedite kolli4estvo stolbcov zamka");

scanf("%d",&n1);

printf("vvedite kolli4estvo strok klu4a");

scanf("%d",&m2);

printf("vvedite kolli4estvo stolbcov klu4a");

scanf("%d",&n2 );

printf("vvedite zamok");

for(i=1;i<=m1;i++)

for(j=1;j<=n1;j++)

scanf("%d",&K[i][j]);

printf("vvedite Klu4");

for(i=1;i<=m2;i++)

for(j=1;j<=n2;j++)

scanf("%d",&L[i][j]);

str=1;

st=1;

//poisk pervogo elementa klu4a

q: for(i=str;i<=m1-m2+1;i++)

for(j=st;j<=n1-n2+1;j++)

if(L[1][1]=!K[i][j])

{

str=i;

st=j;

break;

}

k=2 ;

//sravnenie pervoi stroki

for(j=st+1;j<=st+n2-1;j++)

{

if(L[1][k]=!K[str][j])

{

k=k+1;

}

else

{

goto q;

}

}

n= 2 ; //sravnenie klu4a na4inaya so vtoroi stroki i do konca

m=1;

z=str+1;

l: for(j=st;j<=st+n2;j++)

{

if(L[n][m]=!K[z][j])

{

m=m+1 ;

if(m>n2)

{

n=n+1 ;

if(n>m2) //esli proshel 4erez vsu matricy klu4a

{ //i vse sovpalo, to perehodim k koncu

goto v;

}

m=1;

z=str+1;

goto l; //esli stro4ka sovpala,perehod na sledushuu

}

}

else

{

goto q;

}

}

v: printf("vse sovpalo\n v stroke %d \n %d v stolbce %d",str,st);

getch();

}

Размещено на Allbest.ru


Подобные документы

  • Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.

    курсовая работа [446,0 K], добавлен 19.06.2014

  • Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.

    курсовая работа [593,6 K], добавлен 09.07.2012

  • Характеристика программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит результаты на экран. Описание переменных в программе, ее блок-схема и алгоритм работы. Листинг программы. Описание входных данных и результат вычислений.

    курсовая работа [721,4 K], добавлен 10.11.2010

  • Составление процедуры для матрицы, разложения матрицы на множители, решения системы линейных уравнений, нахождения определителя матрицы и матрицы с транспонированием. Суть метода квадратного корня. Разложение матрицы на множители. Листинг программы.

    лабораторная работа [39,4 K], добавлен 18.09.2012

  • Описание методов вычисления определителя матрицы. Математическое решение задачи с применением метода исключения Гаусса с выбором главного элемента. Схема алгоритма программы, описание переменных и структур данных, текст программы на языке Pascal.

    курсовая работа [438,8 K], добавлен 16.02.2011

  • Решение задачи средствами Паскаль и блок-схемы выполненных процедур, составление программы. Результаты решения задачи по перевозке грузов. выполнение задачи средствами MS Excel, создание таблиц. Порядок и особенности решения задачи в среде MathCAD.

    курсовая работа [2,5 M], добавлен 27.02.2011

  • Сущность и описание симплекс-метода и улучшенного симплекс-метода (метода обратной матрицы), преимущества и недостатки их применения в линейном прогаммировании. Листинг и блок-схема программы на языке Turbo Pascal для решения математической задачи.

    курсовая работа [45,0 K], добавлен 30.03.2009

  • Разработка программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран заданную информацию. Типы блок-схем и их использование при написании программы. Описание входных данных и результат вычислений, листинг программы.

    курсовая работа [680,3 K], добавлен 03.08.2009

  • Методика и основные этапы разработки программы, которая бы наглядно продемонстрировала варианты размещения ферзей на шахматной доске, удовлетворяя правилам задачи. Исследование свойств расстановок мирных ферзей. Написание текста программы и ее листинг.

    контрольная работа [81,1 K], добавлен 29.04.2011

  • Описание решения задачи, ее постановка, общий подход к решению. Представление исходных данных, условий задачи и целей ее решения. Составление алгоритма решения поставленной задачи. Написание программного обеспечения и тестирование конечного продукта.

    курсовая работа [1,1 M], добавлен 03.07.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.