Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2010, 19:26   #1
Elysey
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 2
По умолчанию Перемножение матриц

Люди объясните пожалуйста!!!!
как создать функцию для нахождения произведения матрицы размерностью N на N и столбца состоящего из 3 элементов????как из полученного результата найти max и min элемент?????
вот я сделал программу но без функции....Заранее спасибо!!!!))))
Код:
//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int N,M1[10][10],M2[10],i,j,MAX,MIN;
cout<<"Vvedite razmernost massiva"<<endl;
cin>>N;
//------------------------------------------------------------------------------
cout<<"Vvedite elementi  pervogo massiva"<<endl;
for (i=0;i<=N-1;i++)               //Ввод элементов первого массива
    {
    for (j=0;j<=N-1;j++)
    {
    cout<<"M1["<<i<<"]["<<j<<"]= ";
    cin>>M1[i][j];
    }
    }
cout<<"Vvedite elementi  vtorogo massiva"<<endl;
for (i=0;i<=N-1;i++)               //Ввод элементов второго массива
    {
    cout<<"M2["<<i<<"]= ";
    cin>>M2[i];
    }
//------------------------------------------------------------------------------
cout<<"Elementi pervogo massiva"<<endl;
for (i=0;i<=N-1;i++)               //Вывод элементов первого массива
    {
    for (j=0;j<=N-1;j++)
    cout<<"     "<<M1[i][j];
    cout<<endl;
    }
    cout<<"Elementi vtorogo massiva"<<endl;
for (i=0;i<=N-1;i++)                //Вывод элементов второго массива
    {
    cout<<"          "<<M2[i];
    cout<<endl;
    }
//------------------------------------------------------------------------------
cout<<"Proizvedenie pervogo massiva na vtoroy"<<endl;
int Proizv[10];                       //Произведение массивов
for (i=0;i<=N-1;i++)
    {
    Proizv[i]=0;
    for (j=0;j<=N-1;j++)
    Proizv[i]=Proizv[i]+M1[i][j]*M2[j];  //Вывод результата произведения массивов
    cout<<"           "<<Proizv[i]<<endl;
    }
//------------------------------------------------------------------------------
MAX=Proizv[0];                          //Определение максимума
for (i=1;i<=N-1;i++)
    {
    if (MAX<Proizv[i])
    MAX=Proizv[i];
    }
cout<<"Maximalniy element: "<<MAX<<endl;
//------------------------------------------------------------------------------
MIN=Proizv[0];                           //Определение минимумма
for (i=1;i<=N-1;i++)
    {
    if (MIN>Proizv[i])
    MIN=Proizv[i];
    }
cout<<"Minimalniy element: "<<MIN;
getch();

        return 0;
}
//------------------------------------------------------------------------------

Последний раз редактировалось Stilet; 15.03.2010 в 09:09.
Elysey вне форума Ответить с цитированием
Старый 15.03.2010, 09:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не спец перемножать матрицы но пример работы с функциями покажу:
Код:
// Матрицы. Функции их работы.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

int const n=5,m=6;
int a[n][m];

using namespace std;
void aga(){
	for(int i=0;i<n;i++){
		for(int k=0;k<m;k++){
		 a[i][k]=rand(); cout<<a[i][k]<<'\t';
		} cout<<'\n';
	}
}

int maxa(){
	int w=a[0][0];
	for(int i=0;i<n;i++){
		for(int k=0;k<m;k++){
		 if(w<a[i][k]) w=a[i][k];
		} 
	}
	return w;
}

int _tmain(int argc, _TCHAR* argv[])
{
	aga();
	cout<<'\n'<<maxa()<<'\n';
	cin.get();
	return 0;
}
Тут находится максимальный элемент матрицы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.03.2010, 10:38   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

матрицы любой размерности нельзя перемножать на матрицу заданной размерности!

у 1-ой матрицы кол-во столбцов должно обязательно равняться кол-ву строк 2-ой матрицы\вектора!!!

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

http://programmersforum.ru/showthrea...F2%F0%E8%F6%FB , полезно почитать
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось Stilet; 15.03.2010 в 11:25.
RUSt88 вне форума Ответить с цитированием
Старый 15.03.2010, 20:18   #4
Elysey
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 2
По умолчанию

Спасибо!!!буду пробывать!
Elysey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемножение матриц stscolt Помощь студентам 0 09.10.2009 16:54
Перемножение матриц jorjinho10 Паскаль, Turbo Pascal, PascalABC.NET 1 11.05.2009 12:56
Перемножение матриц Blad47 Общие вопросы C/C++ 1 02.02.2009 00:21
Перемножение матриц Арина Помощь студентам 1 18.05.2007 19:21