1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Задача: Умножение матриц. С++

Тема в разделе "Вопросы новичков и не только", создана пользователем Fam, 11 ноя 2010.

Статус темы:
Закрыта.
  1. Fam

    Fam Гость

    Репутация:
    0
    Напишите функцию, осуществляющую умножение двух квад-ратных матриц.
    Код:
    // matrica: умножение матриц 
    int matrica(a[2][2], b][2][2], c[2][2])
    {
    c[1][1]=a[1][1]*b[1][1]+a[1][2]*b[2][1];
    c[1][2]=a[1][1]*b[2][1]+a[1][2]*b[2][2];
    c[2][1]=a[2][1]*b[1][1]+a[2][2]*b[2][1];
    c[2][2]=a[2][1]*b[1][2]+a[2][2]*b[2][2];
    }
    #include<iostream.h>
    #include<math.h>
    #include<conio.h>
    int main()
    {
    int i,j,a[2][2], b[2][2], c[2][2];
    for(i=1;i<=2;i++) {
    for(j=1;j<=2;j++) {
    cout<<"Введите а["<<i<<"]["<<j<<"]";
    cin>>a[i][j];
    cout<<"Введите b["<<i<<"]["<<j<<"]";
    cin>>b[i][j];
    }
    }
    getch();
    return 0;
    }
    Ввод матриц я сделал, умножение тоже, а как вывести матрицк C
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    параметры каких типов? и зачем нужен параметр 'n' ?

    Функция matrica откуда-нибудь вызывается?

    Индексация массива размером [2] осуществляется индексами 0 и 1 и все!! А у вас 1 и 2.

    Добавлено:
    Полагаю в конце каждой строки должен стоять символ ';' или ',' (кроме последней строки)

    Добавлено: Блоки циклов почему у вас не закрываются?
    Проверьте синтаксис от и до. Ошибок тьма.
     
  3. Fam

    Fam Гость

    Репутация:
    0
    Функция задается мной, а синтаксис поправил.
     
  4. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    У вас же банальные ошибки.
    Теперь сравните со своей. Каждую строку!
    Код:
    #include <iostream.h>
    #include <math.h>
    #include <conio.h>
    
    void matrica( int (&a)[2][2], int (&b)[2][2], int (&c)[2][2] )
    {
    c[0][0] = a[0][0] * b[0][0] + a[0][1] * b[1][0];
    c[0][1] = a[0][0] * b[1][0] + a[0][1] * b[1][1];
    c[1][0] = a[1][0] * b[0][0] + a[1][1] * b[1][0];
    c[1][1] = a[1][0] * b[0][1] + a[1][1] * b[1][1];
    }
    
    int main( void )
    {
    int	i, j;
    int	a[2][2], b[2][2], c[2][2];
    
    for ( i = 0; i < 2; i++ ) {
    for ( j = 0; j < 2; j++ ) {
    cout << "Введите а["<<i<<"]["<<j<<"]";
    cin >> a[i][j];
    cout << "Введите b["<<i<<"]["<<j<<"]";
    cin >> b[i][j];
    }
    }
    
    matrica( a, b, c );
    // вывод...
    
    getch();
    return 0;
    }
    Правильность умножения матриц не проверял.
     
  5. Fam

    Fam Гость

    Репутация:
    0
    спасибо, ошибки да, никак от Паскаля не от учусь сначала даже циклы как в паскале писал
     
  6. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Вывод так же как и ввод:
    Код:
    for ( i = 0; i < 2; i++ ) {
    for ( j = 0; j < 2; j++ ) {
    cout << c[i][j] << ' ';
    }
    cout << endl;
    }
     
  7. Fam

    Fam Гость

    Репутация:
    0
    ещё перевод строки забыл, чтобы выводил какматрицу
    cout << endl; //перевод строки - все на месте
     
  8. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Кто забыл? Где забыл?
     
  9. Fam

    Fam Гость

    Репутация:
    0


    он не будет выводить как матрицу
     
  10. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Он будет выводить так же как ты вводил. Что именно ты имеешь в виду?
     
  11. Fam

    Fam Гость

    Репутация:
    0
    Да он будет выводить так, а я имею в виду что то вроде двумерного массива 2*2
     
  12. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Да, мне тоже интересно.
     
  13. Fam

    Fam Гость

    Репутация:
    0
    1 2
    3 4


    а он выводит
    1
    2
    3
    4
     
  14. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Ты что-то путаешь. Покажи код который компилируешь.
    Тот код который я писал у меня правильно работает. У меня такое чувство что ты опять там что-то наколдовал.
     
  15. Fam

    Fam Гость

    Репутация:
    0
    Возможно путаю
    Код:
    #include <math.h>
    #include <conio.h>
    
    void matrica( int (&a)[2][2], int (&b)[2][2], int (&c)[2][2] )
    {
    c[0][0] = a[0][0] * b[0][0] + a[0][1] * b[1][0];
    c[0][1] = a[0][0] * b[1][0] + a[0][1] * b[1][1];
    c[1][0] = a[1][0] * b[0][0] + a[1][1] * b[1][0];
    c[1][1] = a[1][0] * b[0][1] + a[1][1] * b[1][1];
    }
    
    int main( void )
    {
    int	i, j;
    int	a[2][2], b[2][2], c[2][2];
    
    for ( i = 0; i < 2; i++ ) {
    for ( j = 0; j < 2; j++ ) {
    cout << "Введите а["<<i<<"]["<<j<<"]";
    cin >> a[i][j];
    cout << "Введите b["<<i<<"]["<<j<<"]";
    cin >> b[i][j];
    }
    }
    
    matrica( a, b, c );
    for ( i = 0; i < 2; i++ ) {
    for ( j = 0; j < 2; j++ ) {
    cout << c[i][j] << ' ';
    }
    }
    cout << endl;
    getch();
    return 0;
    }
     
  16. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Ты где внешний цикл закрыл? И я где его закрыл!

    Добавлено:
    Где должно стоять?
     
  17. Fam

    Fam Гость

    Репутация:
    0
    я сам нашёл ошибку
    в код полез чтобы добавить вывод матриц а и b тоже и заметил, спасибо парни
     
  18. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    rrrFer
    Да блин я уже немного нервничать начал))

    Добавлено: Fam
    Да всегда пожалуйста!)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей