Código C++:
Ver original#include <iostream>
#include <iomanip>
#include <cstdlib>
#include "Matriz2D-1.h"
using namespace std;
Matriz2D_1 CreaMatriz2D_1 (int fils, int cols)
{
Matriz2D_1 matriz = new int *[fils];
for (int f=0;f<fils;f++)
matriz[f] = new int [cols];
return(matriz);
}
Matriz2D_1 AleatorizaMatriz2D_1 (int fils, int cols, int MAX)
{
Matriz2D_1 aleatoria = CreaMatriz2D_1 (fils, cols);
for (int f=0; f<fils; f++)
for (int c=0; c<cols; c++)
aleatoria
[f
][c
] = rand(MAX
);
return (aleatoria);
}
Matriz2D_1 LeeMatriz2D_1 (int fils, int cols)
{
Matriz2D_1 matriz = CreaMatriz2D_1 (fils, cols);
int valor;
for (int f=0;f<fils;f++)
for (int c=0;c<cols;c++){
cout << "Introduce el valor de matriz[" << f << "][" << c << "]: ";
cin >> valor;
matriz[f][c]=valor;
}
return(matriz);
}
void PintaMatriz2D_1 (Matriz2D_1 matriz, int fils, int cols)
{
for (int f=0;f<fils;f++){
for (int c=0;c<cols;c++)
cout << setw(5) << matriz[f][c];
cout << endl;
}
}
Matriz2D_1 CopiaMatriz2D_1 (Matriz2D_1 matriz, int fils, int cols)
{
Matriz2D_1 copia = CreaMatriz2D_1 (fils, cols);
for (int f=0; f<fils; f++)
memcpy (copia
[f
], matriz
[f
], cols
*sizeof(int)); return (copia);
}
Matriz2D_1 SubMatriz2D_1 (Matriz2D_1 matriz, int fil_init, int col_init, int fil_end, int col_end)
{
int fils_submatriz = fil_end - fil_init + 1;
int cols_submatriz = col_end + col_init + 1;
Matriz2D_1 submatriz = CreaMatriz2D_1 (fils_submatriz, cols_submatriz);
int fila_submatriz=0;
int col_submatriz=0;
for (int f=fil_init-1; f<fil_end; f++, fila_submatriz++)
for (int c=col_init-1; c<col_end; c++, col_submatriz++)
memcpy (submatriz
[fila_submatriz
][col_submatriz
], matriz
[f
][c
], sizeof(int));
return (submatriz);
}
Matriz2D_1 EliminaColumnaMatriz2D_1 (Matriz2D_1 matriz, int fils, int cols, int columna)
{
Matriz2D_1 reducida2 = CreaMatriz2D_1 (fils, cols-1);
int col_reducida=0;
for (int f=0; f<fils; f++)
for (int c=0; c<columna; c++, col_reducida++)
memcpy (reducida2
[f
][col_reducida
], matriz
[f
][c
], sizeof(int));
for (int f=0; f<fils; f++)
for (int c=columna+1; c<cols; c++, col_reducida++)
memcpy (reducida2
[f
][col_reducida
], matriz
[f
][c
], sizeof(int));
return (reducida2);
}
Matriz2D_1 EliminaFilaMatriz2D_1 (Matriz2D_1 matriz, int fils, int cols, int fila_borrar)
{
Matriz2D_1 reducida = CreaMatriz2D_1 (fils-1, cols);
int fila_reducida = 0;
for (int f=0; f<fila_borrar; f++, fila_reducida++)
memcpy (reducida
[fila_reducida
], matriz
[f
], cols
*sizeof(int)); for (int f=fila_borrar+1; f<fils; f++, fila_reducida++)
memcpy (reducida
[fila_reducida
], matriz
[f
], cols
*sizeof(int));
return (reducida);
}
Matriz2D_1 TraspuestaMatriz2D_1 (Matriz2D_1 matriz, int fils, int cols)
{
Matriz2D_1 transpuesta = CreaMatriz2D_1 (fils, cols);
for (int f=0;f<fils;f++)
for (int c=0;c<cols;c++)
memcpy (transpuesta
[c
][f
], matriz
[f
][c
], sizeof(int));
return (transpuesta);
}
Matriz2D_1 InvierteMatriz2D_1 (Matriz2D_1 matriz, int fils, int cols)
{
Matriz2D_1 invertida = CreaMatriz2D_1 (fils, cols);
int fila_invertida=fils-1;
for (int f=0; f<fils; f++, fila_invertida--)
memcpy (invertida
[fila_invertida
], matriz
[f
], cols
*sizeof(int));
return (invertida);
}
void LiberaMatriz2D_1 (Matriz2D_1 matriz,int fils,int cols)
{
for (int f=0;f<fils;f++)
delete [] matriz[f];
delete matriz;
}
Si lo compilo me sale los siguientes errores:
Código HTML:
src/Matriz2D-1.cpp: In function ‘int** AleatorizaMatriz2D_1(int, int, int)’:
src/Matriz2D-1.cpp:26:30: error: too many arguments to function ‘int rand()’
/usr/include/stdlib.h:380:12: note: declared here
src/Matriz2D-1.cpp: In function ‘int** CopiaMatriz2D_1(Matriz2D_1, int, int)’:
src/Matriz2D-1.cpp:60:48: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp: In function ‘int** SubMatriz2D_1(Matriz2D_1, int, int, int, int)’:
src/Matriz2D-1.cpp:75:79: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp: In function ‘int** EliminaColumnaMatriz2D_1(Matriz2D_1, int, int, int)’:
src/Matriz2D-1.cpp:88:65: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp:92:65: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp: In function ‘int** EliminaFilaMatriz2D_1(Matriz2D_1, int, int, int)’:
src/Matriz2D-1.cpp:106:63: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp:108:63: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp: In function ‘int** TraspuestaMatriz2D_1(Matriz2D_1, int, int)’:
src/Matriz2D-1.cpp:118:56: error: ‘memcpy’ was not declared in this scope
src/Matriz2D-1.cpp: In function ‘int** InvierteMatriz2D_1(Matriz2D_1, int, int)’:
src/Matriz2D-1.cpp:128:65: error: ‘memcpy’ was not declared in this scope