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

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

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

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

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

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

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

ФГОБУ ВПО

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

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

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

по информатике

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

Выполнил: ст-т гр. АВ-41

Герасимова Анна

Проверил: Моренкова О. И.

Новосибирск 2014г.

1. Задача для курсовой работы

ВАРИАНТ 2

Сформировать произвольного размера исходную квадратную матрицу А.

Сформировать массив В из элементов матрицы А, расположенных левее главной и побочной диагоналей, и вычислить произведение тех элементов этого массива, которые больше числа, расположенного на пересечении диагоналей исходной матрицы. Найти минимум в исходной матрице.

2. Краткая теория

Мамтрица -- математический объект, записываемый в виде прямоугольной таблицы чисел и допускающий алгебраические операции (сложение, вычитание, умножение) между ним и другими подобными объектами. Обычно матрицы представляются двумерными (прямоугольными) таблицами. Иногда рассматривают многомерные матрицы или матрицы непрямоугольной формы.

Операции над матрицами

Пусть aij -- элементы матрицы A, а bij -- элементы матрицы B.

Линейные операции:

Сложение матрицA + B есть операция нахождения матрицы C, все элементы которой равны попарной сумме всех соответствующих элементов матриц A и B, то есть каждый элемент матрицы C равен

cij = aij + bij

Вычитание матрицA ? B определяется аналогично сложению, это операция нахождения матрицы C, элементы которой

cij = aij - bij

Сложение и вычитание допускается только для матриц одинакового размера.

Существует нулевая матрицаИ такая, что её прибавление к другой матрице A не изменяет A, то есть

A + И = A

Все элементы нулевой матрицы равны нулю.

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

В первом множителе должно быть столько же столбцов, сколько строк во втором. Если матрица A имеет размерность , B -- , то размерность их произведения AB = C есть .

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

Транспонирование матрицы (обозначение:AT) -- операция, при которой матрица отражается относительно главной диагонали, то есть

Если A -- матрица размера , то AT -- матрица размера .

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

3. Блок- схема разработанной функции

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

#include"stdafx.h"

#include<stdio.h>

#include"conio.h"

#include<stdlib.h>

#include<locale.h>

#include<time.h>

int _tmain(intargc, _TCHAR* argv[])

{

int N=11; //размерность матрицы А

int M=0; //размерность вектора В

int A[11][11];

int B[15];

FILE *fp;

int k=0;

int P=1;

int min;

setlocale(0,"Rus");

for(inti=0;i<N;i++)

{

B[i]=0;

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

A[i][j]=0;

};

printf("\nВыберите способ задания матрицы:\n1.Задать матрицу из файла \n2.Ввод матрицы с клавиатуры \n3.Заполнение матрицы случайными числами \nВыбор: ");

scanf("%d",&k);

switch(k)

{

case 1:

{

fp=fopen("input.txt", "r");

fscanf (fp,"%d",&N);

if(N!=1 && N%2==1)

for (inti=0; i<N; i++)

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

fscanf(fp,"%d",&A[i][j]);

elseprintf("Ошибка: размерность матрицы должна быть нечетной");

fclose(fp);

break;

}

case 2:

{

printf("\nВведите размерность матрицы: \n");

scanf("%d",&N);

if(N!=1 && N%2==1)

{

printf("\nВведите элементы матрицы: \n");

for (inti=0; i<N; i++)

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

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

}

elseprintf("Ошибка: размерность матрицы должна быть нечетной");

break;

}

case 3:

{

printf("\nВведите размерность матрицы: \n");

scanf("%d",&N);

if(N!=1 && N%2==1)

for (inti=0; i<N; i++)

{

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

{

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

printf("%d ", A[i][j]);

}

printf("\n");

}

elseprintf("Ошибка: размерность матрицы должна быть нечетной\n");

break;

}

}

int p=N/2; //середина матрицы

//заполнение массива В

k=0;

for (inti=1;i<N;i++)

for (int j=0;j<p &&i!=j &&i+j<N-1;j++)

{

B[k]=A[i][j];

k++;

M++;

};

//произведение

for (inti=0;i<M;i++)

if (B[i]>A[p][p])

P=P*B[i];

//нахождение минимума матрицы

min=A[0][0];

for (inti=0;i<N;i++)

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

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

min=A[i][j];

//проверка

if(N!=1 && N%2==1)

{

printf ("Элементы массива B: \n");

for (k=0;k<M;k++)

printf ("%d \t", B[k]);

printf ("\nЦентральный элемент матрицы: %d\n\n", A[p][p]);

printf ("Результат умножения: %d\n\n",P);

printf ("Минимальный элемент матрицы: %d\n\n", min);

}

else;

getch();

}

5. Результат расчетов

5.1 Формирование матрицы из файла

Данные файла

Результаты программы

5.2 Ввод матрицы с клавиатуры

5.3 Заполнение матрицы случайными числами

6.

Вывод

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

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


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

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

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

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

    практическая работа [107,0 K], добавлен 05.12.2009

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

    курсовая работа [52,1 K], добавлен 09.12.2014

  • GetMatrDop как процедура определяет значение элемента транспонированной матрицы дополнений. Знакомство с этапами разработки в среде Turbo Pascal программы сортировки элементов, находящихся на главной диагонали матрицы. Особенности тестирования программы.

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

  • Создание приложения по выбору варианта заполнения прямоугольной матрицы: случайными числами или из текстового файла. Идентификаторы метода "main". Расчет количества столбцов, содержащих хотя бы один нулевой элемент. Инструкция по работе с программой.

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

  • Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.

    контрольная работа [173,3 K], добавлен 01.03.2010

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

    учебное пособие [6,7 M], добавлен 28.03.2014

  • Расчет матрицы по заданной формуле. Формирование вектора по алгоритму, построение его вектора. Структура окна С++. Свойства события компонент С++, которые использовались для реализации задачи. Структуры программирования. Блок-схемы алгоритмов подпрограмм.

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

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

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

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

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

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