Разработка программы для анализа прямоугольной матрицы
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
Введение
Изыскание средств и методов механизации и автоматизации работ - одна из основных задач технических дисциплин. Автоматизация работ с данными имеет свои особенности и отличия от автоматизации других типов работ. Для этого класса задач используют особые виды устройств, большинство из которых являются электронными приборами Совокупность устройств, предназначенных для автоматической, или автоматизированной обработки данных, называют вычислительной машиной. Конкретный набор взаимодействующих между собой устройств и программ, предназначенный для обслуживания одного рабочего участка, называют вычислительной системой. Центральным устройством большинства вычислительных систем является компьютер.
Компьютер - это электронный прибор, предназначенный для автоматизации создания, хранения, обработки и транспортировки данных [6].
В настоящее время, различные процессы хранения и обработки данных уже немыслим без использования персонального компьютера. Применение этого средства позволяет ускорить данные процессы значительно. Одним из примеров использования персонального компьютера при решении математических задач является материал настоящей курсовой работы.
Целью настоящей курсовой работы является разработка программы для анализа прямоугольной матрицы и поиска в ней всех подматриц, у которых общая сумма элементов главной и побочной диагонали равна нулю.
1. Анализ технического задания
Согласно техническому заданию необходимо разработать программу для поиска в прямоугольной матрице всех квадратных подматриц, у которых общая сумма элементов главной и побочной диагонали равна нулю. Для достижения данной цели программа должна отвечать следующим требованиям:
язык:)использование языка C\C++;)использование динамических структур;
организация меню с расширенными функциями:)возможность загружать данные одним из тремя способов (случайныйввод, в ручную или ввод из текстового файла);)возможность вывода результата в текстовый файл или на дисплей;)обработка исключающих ситуаций (ошибка при чтении файла, ошибка при выделении динамической памяти под матрицу);)визуализация процесса;
параметры ввода:)матрица должна быть прямоугольной.
программа тестирование кодирование алгоритм
2. Обоснование и проектирование структур данных
Для операции с прямоугольной матрицей используют динамический двумерный массив. При создании динамического двумерного массива в операции newуказывается его размерность. Следует отметить тот факт, что размерность матрицы вводится с клавиатуры. Организация матрицы представлена на рисунке 2.1.
Рисунок 2.1 - Структура матрицы
В операторе 1 объявляется переменная типа указатель на указатель на int и выделяется память под массив указателей на строки массива. В операторе 2 организуется цикл выделения памяти под каждую строку массива. В операторе 3 каждому элементу массива указателей на строки присваивается адрес начала участка память, выделенную под строку двумерного массива [3, c. 62].
Для работы с файлами использовались два класса:)ifstream - класс входных файловых потоков;)ofstream - класс выходных файловых потоков.
Для организации циклов, некоторых подсчетов и констант используются переменные типа int. Int - целый тип, размер которого не определяется стандартом, а зависит от компьютера и компилятора.
3. Разработка алгоритма
Алгоритм - это точное предписание, определяющее вычислительный процесс, ведущий от исходных данных к искомому испытанию. Из определения следует, что каждый разработанный алгоритм должен обладать следующими свойствами:)Детерминированность - каждая команда понятна исполнителю (в данном случае компьютеру) и исключает неоднозначность исполнения;)результативность - реализация вычислительного процесса, предусмотренного алгоритмом, должна через определенное число шагов привести к результату или сообщению о невозможности его получения;)массовость - если алгоритм разработан для решения определенной задачи, он должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных;)дискретность - пошаговый характер процесса получения результата, состоящий в последовательном выполнении конечного числа заданных алгоритмом действий.
Способы описания алгоритма: словесный, структурно-стилизованный, язык графических символов, операторный язык. В настоящей работе мы представим алгоритмы с помощью языка графических символов.
Алгоритм функции random представлен на рисунке 3.1.
Рисунок 3.1 - Блок-схема функции random
Алгоритм функции vvod1 представлен на рисунке 3.2.
Рисунок 3.2 - блок-схема функции vvod1
Алгоритм функции vvod2 представлен на рисунке 3.3.
Рисунок 3.3 - блок-схема функции vvod2
Алгоритм функции main представлен на рисунке 3.4.
&