HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Перемножение матриц...
  #1  
Старый 05.11.2007, 18:02
VERte][
Участник форума
Регистрация: 17.05.2007
Сообщений: 220
С нами: 9992546

Репутация: 441
По умолчанию Перемножение матриц...

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

Код:
#include<iostream>
using namespace std;

typedef int* pint;
void fillarray(pint array[], int m, int n);
void result(pint a[], pint b[], int m, int k ,int n);

int main()
{
    int m,n,k;
    char exit;
    cout<<"Input 1st array size: "<<endl<<"m: ";
    cin>>m; cout<<"n: "; cin>>k;
    cout<<"Input 2nd array size: "<<endl<<"m: "<<k<<endl<<"n: ";
    cin>>n;

    pint *p=new pint[m],*q=new pint[k];
    for (int i=0;i<m;i++)
    p[i]=new int[k];

    for (int i=0;i<k;i++)
    q[i]=new int[n];

    fillarray(p, m,k);
    fillarray(q, k,n);

    result(p,q,m,k,n);

    for (int i=0;i<k;i++)
    delete p[i];

    for (int i=0;i<n;i++)
    delete q[i];

delete[] p, q;

cout<<"Input any key to quit: ";
cin>>exit;
return 0;
}


void fillarray(pint array[], int m, int n)
{
    cout<<"Input "<<m<<"x"<<n<<" array: "<<endl;
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
        cin>>array[i][j];
}

void result(pint a[], pint b[], int m, int k, int n)
{
    int sum(0);
    cout<<"Result "<<m<<"x"<<n<<" array:"<<endl;

    for(int i=0; i<m; i++)
      for(int j=0; j<n; j++)
        {
            for(int h=0; h<k ;h++)
            {
                sum=sum+a[i][h]*b[h][j];
            }
            cout<<sum<<" ";
            sum=0;
            if (j==n-1) cout<<endl;

        }
}
прога перемножает 2 матрицы произволных размеров и выводит результат на экран (в отдельный массив забивать результат не стал ибо память и лень )
 
Ответить с цитированием

  #2  
Старый 05.11.2007, 18:33
vp$
Участник форума
Регистрация: 22.10.2007
Сообщений: 138
С нами: 9765139

Репутация: 177
По умолчанию

зачем изобретать велосипед, насколько я помню , в экселе это стандартная функция))
 
Ответить с цитированием

  #3  
Старый 05.11.2007, 18:44
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
С нами: 9745696

Репутация: 104
По умолчанию

так он же вроде ясно написал "Пока разбирался с указателям..."
в экселе это будет посложней:d (разбираться с указателями)
 
Ответить с цитированием

  #4  
Старый 05.11.2007, 18:58
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами: 11444066

Репутация: 2290


По умолчанию

Ну блин, давайте теперь все свои лабы вываливать...
 
Ответить с цитированием

  #5  
Старый 05.11.2007, 19:00
inv
Banned
Регистрация: 03.08.2007
Сообщений: 313
С нами: 9879714

Репутация: 291
По умолчанию

Сделайте раздел для подобных случаев...че париться-то
 
Ответить с цитированием

  #6  
Старый 05.11.2007, 20:35
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
С нами: 10321822

Репутация: 57
По умолчанию

Цитата:
Сообщение от Vertexe  
(в отдельный массив забивать результат не стал ибо память и лень )
Во первых - резон от такой проги, которая только выводит на экран рассчеты. Во вторых Это голый метод - никакой оптимизации. Это может написать каждый - пользы от него никакой.

Ладно сегодня завтра напишу немного по теории численных методов - чтобы не писали в лоб, а хотя бы немного оптимизировали.
 
Ответить с цитированием

  #7  
Старый 05.11.2007, 20:40
VERte][
Участник форума
Регистрация: 17.05.2007
Сообщений: 220
С нами: 9992546

Репутация: 441
По умолчанию

Давай, буду признателен
 
Ответить с цитированием

  #8  
Старый 05.11.2007, 21:11
Sn@k3
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
С нами: 10566621

Репутация: 1198


По умолчанию

есть такая софтина как mathlab(вроде), она считает енто
 
Ответить с цитированием

  #9  
Старый 05.11.2007, 21:23
VERte][
Участник форума
Регистрация: 17.05.2007
Сообщений: 220
С нами: 9992546

Репутация: 441
По умолчанию

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

  #10  
Старый 05.11.2007, 21:48
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
С нами: 10321822

Репутация: 57
По умолчанию

Цитата:
Сообщение от Sn@k3  
есть такая софтина как mathlab(вроде), она считает енто
Ну простите если матлаб это софтина))) матлаб это среда математического моделирования - очень мощная, и гибкая. Но Весит гиг (новая версия) и в нее еще надо врубиться. А перемножать матрицы проще конечно в экселе), да вот только куда приятнее самому написать метод, только толковый.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.