Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dodawanie macierzy

Ostatnio zmodyfikowano 2014-06-11 20:09
Autor Wiadomość
Tym3k
Temat założony przez niniejszego użytkownika
Dodawanie macierzy
» 2014-06-11 19:37:50
C/C++
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;


int const rozmiar = 4;

int wypelnij_macierzA( int ** tabA, int rozmiar, int min, int max )
{
   
    srand(( unsigned int ) time( 0 ) );
    for( int i = 0; i < rozmiar; i++ )
    {
        tabA[ i ] = new int[ rozmiar ];
        for( int j = 0; j < rozmiar; j++ )
        {
            tabA[ i ][ j ] = rand() %( max - min + 1 ) + max;
            cout << tabA[ i ][ j ] << " ";
        }
        cout << "\n";
    }
   
    return ** tabA;
}

//******************************//
int wypelnij_macierzB( int ** tabB, int rozmiar, int min2, int max2 )
{
   
    srand(( unsigned int ) time( 0 ) );
    for( int i = 0; i < rozmiar; i++ )
    {
        tabB[ i ] = new int[ rozmiar ];
        for( int j = 0; j < rozmiar; j++ )
        {
            tabB[ i ][ j ] = rand() %( max2 - min2 + 1 ) + max2;
            cout << tabB[ i ][ j ] << " ";
        }
        cout << "\n";
    }
   
    return ** tabB;
}
//******************************//

int dodaj_macierze( int ** A_tablica, int ** B_tablica, int ** suma )
{
    for( int i = 0; i < rozmiar; i++ )
    {
        suma[ i ] = new int[ rozmiar ];
        for( int j = 0; j < rozmiar; j++ )
        {
            suma[ i ][ j ] = A_tablica[ i ][ j ] + B_tablica[ i ][ j ];
            cout << suma[ i ][ j ] << " ";
        }
        return ** suma;
    }
}
/*
//*************************/
int main()
{
    int ** A_tablica;
    int max = 20;
    int min = 10;
    A_tablica = new int *[ rozmiar ];
    wypelnij_macierzA( A_tablica, rozmiar, 10, 20 );
   
    cout << endl;
    int ** B_tablica;
    int max2 = 10;
    int min2 = 5;
    B_tablica = new int *[ rozmiar ];
    wypelnij_macierzA( B_tablica, rozmiar, 5, 10 );
   
    cout << endl;
   
    int ** suma;
    suma = new int *[ rozmiar ];
    dodaj_macierze( suma, A_tablica, B_tablica );
   
    delete[] A_tablica;
    delete[] B_tablica;
    delete[] suma;
   
    system( "pause" );
}
Nie wykonuje mi się tylko dodawanie macierzy i kompilator nie pokazuje błędu, ale po kompilacji i uruchomieniu programu wyskakuje okienko z komunikatem "Unhandled exception at 0x00854576 in Project1.exe: 0xC0000005: Access violation reading location 0xCDCDCDCD."
Ktoś może mnie nakierować o co chodzi?:D[/i]
P-111941
pekfos
» 2014-06-11 19:41:13
C/C++
int dodaj_macierze( int ** A_tablica, int ** B_tablica, int ** suma )
C/C++
dodaj_macierze( suma, A_tablica, B_tablica );
*komentarz niewymagany..*
P-111943
Tym3k
Temat założony przez niniejszego użytkownika
» 2014-06-11 19:58:55
C/C++
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;


int const rozmiar = 4;

int wypelnij_macierzA( int ** tabA, int rozmiar, int min, int max )
{
   
    srand(( unsigned int ) time( 0 ) );
    for( int i = 0; i < rozmiar; i++ )
    {
        tabA[ i ] = new int[ rozmiar ];
        for( int j = 0; j < rozmiar; j++ )
        {
            tabA[ i ][ j ] = rand() %( max - min + 1 ) + max;
            cout << tabA[ i ][ j ] << " ";
        }
        cout << "\n";
    }
   
    return ** tabA;
}

//******************************//
int wypelnij_macierzB( int ** tabB, int rozmiar, int min2, int max2 )
{
   
    srand(( unsigned int ) time( 0 ) );
    for( int i = 0; i < rozmiar; i++ )
    {
        tabB[ i ] = new int[ rozmiar ];
        for( int j = 0; j < rozmiar; j++ )
        {
            tabB[ i ][ j ] = rand() %( max2 - min2 + 1 ) + max2;
            cout << tabB[ i ][ j ] << " ";
        }
        cout << "\n";
    }
   
    return ** tabB;
}
//******************************//

int dodaj_macierze( int ** suma, int ** A_tablica, int ** B_tablica, int rozmiar )
{
    for( int i = 0; i < rozmiar; i++ )
    {
        suma[ i ] = new int[ rozmiar ];
        for( int j = 0; j < rozmiar; j++ )
        {
            suma[ i ][ j ] = A_tablica[ i ][ j ] + B_tablica[ i ][ j ];
            cout << suma[ i ][ j ] << " ";
        }
        return ** suma;
    }
}
/*
//*************************/
int main()
{
    int ** A_tablica;
    int max = 20;
    int min = 10;
    A_tablica = new int *[ rozmiar ];
    wypelnij_macierzA( A_tablica, rozmiar, 10, 20 );
   
    cout << endl;
    int ** B_tablica;
    int max2 = 10;
    int min2 = 5;
    B_tablica = new int *[ rozmiar ];
    wypelnij_macierzA( B_tablica, rozmiar, 5, 10 );
   
    cout << endl;
   
    int ** suma;
    suma = new int *[ rozmiar ];
    dodaj_macierze( suma, A_tablica, B_tablica, rozmiar );
   
    delete[] A_tablica;
    delete[] B_tablica;
    delete[] suma;
   
    system( "pause" );
}

Nie rozumiem jeszcze jednej rzeczy dlaczego w dodawaniu macierzy pokazuje mi tylko 4 wyniki dla 1 wiersza,a dla pozostałych już nie ...... Nie rozumiem tego, przecież są 2 pętle po 4 dla wierszy po 4 dla kolumny...
P-111944
pekfos
» 2014-06-11 20:06:46
return?
P-111947
Tym3k
Temat założony przez niniejszego użytkownika
» 2014-06-11 20:09:14
Jak ja tego zauważyć nie mogłem to nie mam pojęcia, nerwicy od tego dostane, dzięki !:D
P-111948
« 1 »
  Strona 1 z 1