Обработка двумерных массивов (матриц)

Суть визуальной среды программирования Visual Studio 2008. Синтез теории по обработке двумерных массивов (матриц). Анализ концепции по визуальным средствам С++. Изучение панелей задач и статуса. Разработка программного интерфейса в виде формы с меню.

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

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

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

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

Федеральное агентство связи

Федеральное государственное образовательное учреждение высшего профессионального образования

«Сибирский государственный университет телекоммуникаций и информатики»

КУРСОВАЯ РАБОТА

по дисциплине «Информатика»

на тему «Обработка двумерных массивов (матриц)»

Выполнила:

Карелян К.Л.

Новосибирск 2017

Задание

1. Разработать библиотеку подпрограмм для работы с матрицей (исходный и заголовочный файлы) в соответствии с индивидуальным заданием.

2. Разработать программный интерфейс в виде формы с меню, позволяющему выполнение следующих действий:

1) Работать с матрицей

- формировать датчиком случайных чисел

- выводить матрицу на форму

- выводить матрицу в окно сообщений

2)Обрабатывать матрицу:

- вычислять значение в соответствии с вариантом

- преобразовывать матрицу

3) Выводить сведения о программе:

- вывод варианта задания

- вывод сведений о студенте

4) Выход из программы

При разработке интерфейса настройте свойства всех элементов управления!!!

Для каждого пункта задания написать подпрограмму-функцию

- сформировать датчиком случайных чисел целочисленную матрицу А(3х6);

- найти в матрице минимальное отрицательное число;

- увеличить элементы первой строки матрицы на число, равное 20.

Теория по обработке двумерных массивов (матриц)

Фактически двумерный массив -- это одномерный массив одномерных массивов. Структура двумерного массива, с именем a, размером m на n показана ниже.

где, m -- количество строк двумерного массива;

n -- количество столбцов двумерного массива;

m * n -- количество элементов массива.

В объявлении двумерного массива, также, как и в объявлении одномерного массива, первым делом, нужно указать:

· тип данных;

· имя массива.

После чего, в первых квадратных скобочках указывается количество строк двумерного массива, во-вторых квадратных скобочках -- количество столбцов двумерного массива. Двумерный массив визуально отличается от одномерного, второй парой квадратных скобочек. Рассмотрим пример объявления двумерного массива. Допустим нам необходимо объявить двумерный массив, с количеством элементов, равным 15. В таком случае двумерный массив может иметь три строки и пять столбцов или пять строк и три столбца.

пример объявление двумерного массива:

int a[5][3];

· a -- имя целочисленного массива

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

· число во-вторых квадратных скобках указывает количество столбцов двумерного массива.

Для обработки, элементов, а также ввода и вывода используется двойной цикл “for”.

Если задать индекс i как параметр внешнего цикла, а индекс j как параметр внутреннего цикла, то ввод-вывод матрицы осуществляется построчно.

Квадратная матрица - это двумерный массив, в котором количество строк равно количеству столбцов. Квадратная матрица имеет главную и побочную диагонали. Главной диагональю матрицы называется диагональ, идущая из левого верхнего угла в правый нижний угол матрицы, например, для матрицы M[3][3]:

М00

М01

М02

М10

М11

М12

М20

М21

М22

элементы М00 М11 М22 - элементы главной диагонали. Обращение к элементу главной диагонали выглядит как М[i][i].

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

М00

М01

М02

М10

М11

М12

М20

М21

М22

Обращение к элементу побочной диагонали выглядит как М[i][ n -1-i], где n- размерность матрицы.

Для любого элемента М[i][j] квадратной матрицы следует заметить следующее: если учесть, что индексы элементов матрицы изменяются от 0 до n-1, то

1) если i==j, элемент расположен на главной диагонали;

2) если i> j, элемент расположен ниже главной диагонали;

3) если i <j, элемент расположен выше главной диагонали;

4) если i> = j. элемент расположен на главной диагонали и ниже;

5) если i <= j, элемент расположен на главной диагонали и выше;

6) если i+j <=n-1 - элемент расположен над побочной диагональю;

7) если i+j> n-1 - элемент расположен под побочной диагональю;

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

Теория по визуальным средствам С++

Технология Windows Forms (пространство имен System.Windows.Forms) представляет собой набор классов .NET, реализующих функциональность, присущую стандартным и расширенным компонентам Windows-приложений. Разработчики используют формы и диалоговые окна в качестве контейнеров для размещения различных интерфейсных элементов: кнопок, меню, полей ввода, полей выбора и т.п. Каждый такой интерфейсный элемент представлен соответствующим классом и поддерживает набор методов, свойств и обработчиков событий, которые можно применять для управления представлением компонентов и обеспечения реакции на действия пользователей, производимые с этими компонентами. Классы, реализованные в пространстве имен System.Windows.Forms, можно разделить на несколько функциональных групп, которые мы кратко рассмотрим далее.

Формы и компоненты (Control, UserControl, Form):

Большинство классов, определенных в пространстве имен System.Windows.Forms, наследуют от класса Control. Данный класс обеспечивает базовую функциональность для всех компонентов, которые могут отображаться на форме. Класс Form представляет собой окно Windows-приложения. К окнам относятся диалоговые панели, немодальные окна, MDI-клиенты и родительские окна. В качестве основы для создания собственных интерфейсных элементов следует использовать класс UserControl.

Меню, панели задач и панели статуса:

В состав Windows Forms входит большой набор классов, позволяющих создавать собственные панели задач и меню, поддерживающие различные визуальные стили и представления. Для создания панелей задач, меню, контекстных меню и панелей статуса следует использовать классы ToolStrip, MenuStrip, ContextMenuStip и StatusStrip соответственно.

Интерфейсные элементы:

В пространстве имен System.Windows.Forms содержится множество классов, реализующих основные интерфейсные элементы Windows-приложений. Компоненты TextBox и ComboBox предназначены для ввода данных, а Label и ListView служат для отображения данных. В пространстве имен System.Windows.Forms также есть компоненты, используемые для активизации каких-либо действий, например, Button. Для отображения HTML-документов в Windows-приложениях применяются компонент WebBrowser и соответствующие классы, например, HtmlDocument. Компонент MaskedTextBox представляет собой расширенное средство ввода данных на основе шаблонов. При необходимости создания собственного дизайнера форм можно использовать компонент PropertyGrid, отображающий таблицу свойств компонентов, которые можно изменять.

Управление расположением компонентов:

Ряд классов из пространства имен System.Windows.Forms используется для управления расположением компонентов на формах или в составе других компонентов. К таким классам относятся FlowLayoutPanel, TableLayoutPanel и SplitContainer. Класс FlowLayoutPanel представляет собой панель, которая динамически размещает свое содержимое горизонтально или вертикально. Класс TableLayoutPanel служит для задания ячеек и рядов для расположения элементов в фиксированной таблице. Класс SplitContainer используется для разделения формы на две или более частей с возможностью изменения размеров каждой из них. массив визуальный программный интерфейс

Использование данных:

В Windows Forms поддерживаются богатые возможности по связи компонентов с различными источниками данных -- базами данных и XML-файлами. Компонент DataGridView представляет собой настраиваемую таблицу для отображения данных с возможностью управления ячейками, рядами, колонками и рамками. Компонент BindingNavigator служит для навигации по данным, отображаемым в форме, и обычно применяется совместно с компонентом BindingSource для перемещения по записям в источнике данных.

Диалоговые панели общего назначения:

В Windows поддерживается ряд диалоговых панелей общего назначения, которые используются для унификации таких пользовательских операций, как открытие и сохранение файлов, манипуляции со шрифтами и цветами, а также вывод данных на устройства печати. Классы OpenFileDialog и SaveFileDialog реализуют соответственно отображение диалоговых панелей, позволяющих пользователям выбрать местоположение файла, который планируется открыть или сохранить. Класс FontDialog отображает диалоговую панель для выбора шрифтов, применяемых в приложении. Класс ColorDialog используется для отображения стандартной панели выбора цветов и задания собственных цветовых комбинаций.

Классы PageSetupDialog, PrintPreviewDialog и PrintDialog применяются для отображения диалоговых панелей, позволяющих пользователям управлять различными аспектами вывода информации на устройства печати. Сами же функции управления печатью реализованы в пространствах имен System.Drawing.Printing и System.Windows.Forms.Printing.

Описание программного интерфейса с копиями экранов

Головное меню программы содержит следующие пункты:

Работа с матрицей; Обработка матрицы; О программе; Выход.

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

Меню “Работа с матрицей” содержит следующие пункты:

Формирование; Вывод на форму; Вывод в окно.

При выборе пункта “Формирование” на экран выдается сообщение:

При выборе пункта “Вывод на форму”:

При выборе пункта “Вывод в окно” на экране появляется окно:

Меню “Обработка матрицы” содержит следующие пункты:

Вычисление; Преобразование.

При выборе пункта “Вычисление” на экран выдается сообщение:

При выборе пункта “Преобразование” на экран выдается сообщение:

Меню “О программе” содержит следующие пункты:

Вариант задания; О студенте.

При выборе пункта “ Вариант задания” на экран выдается сообщение:

При выборе пункта “ О студенте” на экран выдается сообщение:

При выборе пункта “ Выход” происходит выход из программы.

Программная реализация

Курсовая работа выполнена в визуальной среде программирования Visual Studio 2008.

В заголовочном файле Matrica.h содержатся прототипы функций, которые реализованы в программе.

Текст файла Matrica.h:

static int A[3][6];

void form(int A[3][6]);

void uv(int A[3][6]);

int min(int A[3][6]);

Файл Matrica.cpp является созданной мною библиотекой, в которой содержатся реализации всех функций.

Перечисление этих функций:

form - Заполняет матрицу случайными числами от -50 до 50

uv - Увеличивает элементы первой строки на число, равное 20

min - Возвращает минимальный отрицательный элемент матрицы

Текст файла Matrica.cpp:

#pragma once

#include "stdafx.h"

#include "stdlib.h"

#include "ctime"

void form(int A[3][6])

{

srand(time(NULL));

for (int i=0;i<3;i++)

for(int j=0;j<6;j++)

A[i][j]=rand()%100-50;

}

void uv(int A[3][6])

{

int i=0;

for(int j=0;j<6;j++)

A[i][j]=A[i][j]+20;

}

int min(int A[3][6])

{

int min=0;

for (int i=0;i<3;i++)

for(int j=0;j<6;j++)

if(A[i][j]<0&&A[i][j]<min)

min=A[i][j];

return min;

}

Файл Form1.h содержит описание визуального интерфейса программы.

Часть текста файла Form1.h, в которой описаны действия, при нажатии на пункты меню:

#pragma endregion

private: System::Void выходToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

this->Close();

}

private: System::Void формированиеToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

form(A);

MessageBox::Show("Матрица сформирована");

}

private: System::Void оСтудентеToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

MessageBox::Show("Курсовую работу выполнила студентка группы Т-62в. \nКраелян Кристина Левоновна");

}

private: System::Void вариантЗаданияToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

MessageBox::Show("ВАРИАНТ №6 \n1) Cформировать датчиком случайных чисел \nцелочисленную матрицу А(3х6); \n2) Найти в матрице минимальное отрицательное число; \n3) Увеличить элементы первой строки \nматрицы на число, равное 20");

}

private: System::Void выводВОкноToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

System::String^s=gcnew String("");

for (int i=0;i<3;i++)

{

for (int j=0;j<6;j++)

s=s+System::Convert::ToString(A[i][j])+"\t";

s=s+"\n";

}

MessageBox::Show(s,"Матрица");

}

private: System::Void выводНаФормуToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

System::String^s=gcnew String("");

for (int i=0;i<3;i++)

{

for (int j=0;j<6;j++)

s=s+System::Convert::ToString(A[i][j])+" ";

s=s+"\n";

}

label1->Text=s;

}

private: System::Void вычислениеToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

int m;

m=min(A);

MessageBox::Show("Минимальное отрицательное число = "+System::Convert::ToString(m));

}

private: System::Void преборазованиеToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

uv(A);

MessageBox::Show("Элементы первой строки увеличены на 20");

}

};

} }}

Результаты расчётов

Сформируем матрицу и выведем ее:

Определим минимальный отрицательный элемент:

Видно, что в матрице число -47 действительно минимальное из всех отрицательных.

Выполним преобразование матрицы и выведем ее:

Видно, что элементы первой строки действительно увеличились на двадцать, а остальные элементы не изменились.

Выводы

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

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

...

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

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

    реферат [84,6 K], добавлен 09.02.2011

  • Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.

    курсовая работа [585,5 K], добавлен 24.03.2009

  • Изучение основных конструкций и способов написания программ на языке Паскаль. Обзор принципов работы и интерфейса написанной программы. Обработка и модификация двумерных массивов. Файловые структуры данных. Текстовые файлы. Элементы машинной графики.

    курсовая работа [761,7 K], добавлен 11.03.2015

  • Языки среды программирования Visual Studio. Стартовая страница интегрированной среды разработки. Окно New Project. Вкладка разработки формы. Перемещение и изменение размера кнопки. Прибавление программного кода к кнопке. Запуск и сохранение проекта.

    презентация [1,4 M], добавлен 29.04.2014

  • Обоснование выбора средства программирования. Входная и выходная информация. Основные требования к программному и аппаратному обеспечению. Анализ метода поиска в строке по алгоритму Боуера-Мура. Глобальные переменные и константы в среде Visual Studio.

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

  • Основные операции над матрицами. Формирование матрицы из файла. Ввод матрицы с клавиатуры. Заполнение матрицы случайными числами. Способы формирования двухмерных массивов в среде программирования С++. Произведение определенных элементов матрицы.

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

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

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

  • Создание информационной системы обработки матриц. Общая характеристика программного обеспечения, которое реализует выполнение заданных функций. Программа разработана с использованием среды визуального программирования Delphi 7 и языка Object Pascal.

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

  • Реализация различных методов сортировки. Алгоритмические языки программирования. Обработка большого числа единообразно организованных данных. Алгоритмы сортировки массивов. Анализ проблем реализации и использования различных видов сортировок массивов.

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

  • Структура – это объединение одного либо более объектов (переменных, массивов, указателей, других структур). Понятие структурной переменной. Создание массивов структур. Использование вложенных структур в виде элементов массивов person, date, pibm.

    лабораторная работа [17,6 K], добавлен 15.07.2010

  • Понятие массива и правила описания массивов в программах на языке С. Рассмотрение основных алгоритмов обработки одномерных массивов. Примеры программ на языке С для всех рассмотренных алгоритмов. Примеры решения задач по обработке одномерных массивов.

    учебное пособие [1,1 M], добавлен 22.02.2011

  • Особенности визуальной среды программирования Microsoft Visual Studio 2015 Enterprise. Средства объектно-ориентированного программирования. Этапы проектирования программного комплекса. Отладка и тестирование программы игры "Виселица".

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

  • Разработка программ на языке Turbo Pascal на основе использования массивов данных. Особенности хранения данных, способы объявления переменных, действия над элементами массивов, их ввод и вывод. Практическое применение одномерных и многомерных массивов.

    методичка [17,8 K], добавлен 25.11.2010

  • Понятие математического программирования. Класс как тип структуры, позволяющий включать в описание типа не только элементы данных, но и функции. Рассмотрение основных особенности языка программирования C++. Характеристика среды MS Visual Studio 2008.

    контрольная работа [318,0 K], добавлен 13.01.2013

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

    курсовая работа [273,7 K], добавлен 16.05.2009

  • Разработка и освоение в современном производстве информационной подсистемы. Создание базы данных в среде MS SQL Server 2008 и приложения в среде MS Visual Studio 2012. Процесс ввода при выборе пунктов меню. Заполнение формы с критериями на фильтрацию.

    отчет по практике [834,4 K], добавлен 27.11.2013

  • Разработка программы для работы в операционных системах семейства Windows. Использование среды Delphi - современной технологии визуального проектирования. Создание пользовательского интерфейса, оконного приложения, меню; задание исходной матрицы.

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

  • Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.

    курсовая работа [571,9 K], добавлен 14.07.2012

  • Техника создания графики при помощи API функций, экспортируемых библиотекой GDI32.DLL. Разработка на языке программирования С++ в среде программирования Microsoft Visual C++ программы для отображения часов реального времени в цифровом и аналоговом виде.

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

  • Описание программного продукта Visual Studio. Возможности, преимущества и недостатки бесплатной среды программирования Sharp Develop для проектов на платформе MS.NET. Получение информации из справочной системы .NET SDK. Запуск визуального отладчика CLR.

    реферат [393,4 K], добавлен 05.04.2017

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