Программа обработки двухмерных массивов (матриц)
Основные операции над матрицами. Формирование матрицы из файла. Ввод матрицы с клавиатуры. Заполнение матрицы случайными числами. Способы формирования двухмерных массивов в среде программирования С++. Произведение определенных элементов матрицы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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.2014GetMatrDop как процедура определяет значение элемента транспонированной матрицы дополнений. Знакомство с этапами разработки в среде 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