русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Matrica A


Дата добавления: 2015-08-14; просмотров: 662; Нарушение авторских прав


1 2 3 4

5 6 7 8

9 10 11 12

3. Исследование различных операций в двухмерных массивах в среде Visual С++ 2010

Элементам массива могут быть присвоены значения выражений. При этом элементы массива и значения выражений должны иметь один и тот же тип.

Например, объявлен массив

double А[3][4];

тогда возможна запись

А[0][0]= 3.5;

А[1][3]= 0;

А[2][1]= a*x + b;

Копирование – это присваивание значений элементов одного массива элементам другого массива. При копировании оба массива должны иметь одинаковый размер и тип элементов. Копирование массива А в Bбудет иметь вид:

for (i=0; i<N; i++) B[i][j]= А[i][j];

Рассмотрим основные приемы проведения различных операций с матрицами.

Пример 2.Исследуем операцию присваивания в двухмерных массивах, а также операцию транспонирования матрицы.Задана матрица целых чисел А размерностью 3×4. Необходимо транспонировать матрицу А, т. е. поменять местами ее строки и столбцы, а затем рассчитать матрицу В, элементы которой определяются по формуле

.

Элементы исходной матрицы Авведем непосредственно в программном коде. Исходную матрицу А, транспонированную АТ и полученную матрицу B выведем на экран. Для наглядности примем

.

Блок-схема алгоритма решения данной задачиприведена на рис. 9.3.

 

j=0,n,1
Начало
Завершение
Ввод i, j, Aij
i=0,m,1
Вложенный цикл
j=0,n,1
i=0,m,1
Вложенный цикл
Вывод Bij
ij =Aij
Вij =f(ATij)

Рис. 9.3. Блок-схема алгоритма транспонирования и присваивания матрицы

 

Реализующая данный алгоритм программа имеет следующий вид:

#include "stdafx.h"

#include <conio.h>

#include "iostream"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])



{

int i, j;

double AT[4][3], B[4][3];//Объявление переменных и матриц А и B

double A[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//Инициализация исходной матрицы А

//Вывод исходной матрицы

cout<<"Matrica A"<<endl;//Вывод названия

for(i=0; i<3; i++)//Внешний цикл вывода элементов матрицы А

{

for(j=0; j<4; j++)//Вложенный цикл для вывода элементов матрицы А

cout<<A[i][j]<<" ";//Вывод элементов исходной матрицыА

cout<<endl;

}

//Транспонирование исходной матрицы

for(i=0; i<3; i++)//Внешний цикл для транспонирования

for(j=0; j<4; j++)// Вложенный цикл для транспонирования

AT[j][i]=A[i][j];//Операция транспонированияматрицыА

cout<<"Matrica AT = A transponirovannaya"<<endl;//Вывод названия

for(i=0; i<4; i++)//Начало цикла

{

for(j=0; j<3; j++)//Вложенный цикл для вывода матрицыAT

cout<<AT[i][j]<<" ";//Вывод элементов матрицыAT

cout<<endl;

}

cout<<"Matrica B = f(AT)"<<endl;//Вывод названия

//Вычисление матрицыВ

for(i=0; i<4; i++)//Внешний цикл для поэлементного вычисление матрицыВ

{

for(j=0; j<3; j++)// Вложенный цикл для поэлементного вычисление матрицыВ

{

B[i][j]=5*pow(sin(pow(AT[i][j],3)),2)+pow((AT[i][j]*AT[i][j]),1./3.);//Bij = f(ATji)

cout<<B[i][j]<<" ";//Вывод элементов матрицыB

}

cout<<endl;

}

getch();

return 0;

}

После запуска программы на выполнение экран дисплея должен иметь вид:

.

Пример 3.Исследуем операцию поиска максимального элемента матрицы.Задана матрица Аиз20произвольных чисел размера 4×5. Необходимо найти максимальный элемент матрицы А и номера его строки и столбца (индексы элемента матрицы). Элементы матрицы А введем в программе прямым образом. На экран выведем исходную матрицу А, максимальный элемент и его индексы.

Блок-схема алгоритма решения данной задачиприведена на рис. 9.4.

Для решения задачи используем следующий программный код:

#include "stdafx.h"

#include <conio.h>

#include "iostream"

using namespace std;ij

int _tmain(int argc, _TCHAR* argv[])



{

int i, j, m, n;// Объявление переменных

int A[4][5]={1,2,18,3,20,4,5,6,7,8,9,10,19,11,12,13,14,15,16,17};//Инициализация матрицы А

int B;

cout<<"Matrica A"<<endl;

for(i=0; i<4; i++)//Внешний цикл вывода матрицыА

{

for(j=0; j<5; j++)//Внутренний цикл вывода матрицыА

cout<<A[i][j]<<"\t"; //Вывод элемента матрицы А

cout<<endl;

}

B=A[0][0];//Подготовка к поиску максимального элемента

m=0; n=0;

for(i=0; i<4; i++)//Внешний цикл по перебору элементов матрицыА

for(j=0; j<5; j++)//Внутренний цикл по перебору элементов матрицыА

if(A[i][j]>B)//Выбормаксимального элемента

{

B=A[i][j];//Запоминание в В большего элемента Aij

n=i;//Запоминание в n номера строки iэлемента Aij

m=j;//Запоминание в m номера столбца jэлемента Aij

}

cout<<endl<<"Max= "<<B;//Вывод максимального элемента

cout<<" Stroka "<<n+1;//Вывод номера строки

cout<<" Stolbec "<<m+1<<endl;//Вывод номера столбца

getch();

return 0;

}

Начало
i, j, m, n, A(I,J)
B=0, m=0, n=0
j = 0,5,1
Aij >B
B = A[i]; m= i; n=j
Вывод B, n, m
Завершение
Нет
Да
j=0,5,1
i=0,4,1
Вложенный цикл
Вывод Aij
i = 0,4,1
Вложенный цикл

Рис. 9.4. Блок-схема алгоритма поиска максимального элемента матрицы

 

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



<== предыдущая лекция | следующая лекция ==>
Лекция 9-10 | Matrica A


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.567 сек.