Académique Documents
Professionnel Documents
Culture Documents
BIDIMENSIONALES
Arreglo bidimensional
Es un conjunto de datos homogneo, finito
y ordenado, donde se hace referencia a
cada elemento por medio de dos ndices.
El primero se utiliza para los renglones
(filas) y el segundo para las columnas.
CONCEPTOS BSICOS
Una matriz es un arreglo de 2 dimensiones.
Declaracin:
int notas[6][10]; Array bidimensional de 6 10
enteros (matriz)
float plan[3][2][5];
Array tridimensional de
325 reales (cubo)
MATRICES
Arreglos bi-dimensionales en C
Ejemplo:
_
_
|123|
Matriz M(3,3) = | 4 5 6 |
|789|
En C++:
int M[3][3];
ndice filas
M
M[0][0] = 1;
M[0][1] = 2;
M[0][2] = 3;
M[1][0] = 4;
M[1][1] = 5;
M[1][2] = 6;
M[2][0] = 7;
M[2][1] = 8;
M[2][2] = 9;
cout<<componente:<<M[1][1];
M(0,0)
M(0,1)
M(0,2)
4
5
M(1,1)
6
7
8
M(2,1)
9
ndice columnnas
Pseudocdigo (recorrido x
filas)
Const
M=valor1
N= valor2
Tipo
Array[1..M,1..N] de real:matriz
Var
Matriz:A
Desde i = 1 hasta M hacer
Desde j = 1 hasta N hacer
Escribir (A[i,j])
Fin_desde
Fin_desde
Pseudocdigo (recorrido x
columnas)
El recorrido por columnas se hace de manera
similar, invirtiendo el sentido de los ndices.
Desde j = 1 hasta N hacer
Desde i = 1 hasta M hacer
Escribir (A[i,j])
Fin_desde
Fin_desde
Ejemplo 01
#include <iostream>
using namespace std;
main()
{
int i, k, m, n ;
int A[100][100];
cout<< "ingresar el valor de m:";
cin>> m;
cout<< "ingresar el valor de n:";
cin>> n;
cout<<"Ingresar componentes"<<endl;
for ( i = 1; i <= m; i++ )
{
for ( k = 1; k <= n; k++ )
cin>> A[i][k];
}
cout<<"Mostrar componentes"<<endl;
for ( i = 1; i <= m; i++ )
{
for ( k = 1; k <= n; k++ )
cout<< A[i][k]<<" ";
cout<<endl;
}
return 0;
}
ARREGLOS BIDIMENSIONALES:
OPERACIONES BSICAS CON MATRICES
Acciones
Resultados
ngreso
for(i=o;i<n;i++){
for(j=0;j<n;j++){
cout<<M[<<i<<]<<[<<j<<]:;
cin>>matriz[i][j]; } }
Escritura
for(i=o;i<n;i++){
for(j=0;j<n;j++){
cout<<M[<<i<<]<<[<<j<<]:<<matriz[i
][j];
} }
Suma
Producto
escalar
for(i=o;i<n;i++){
for(j=0;j<n;j++){
c[i][j] = a[i][j] + b[i][j];
for(i=o;i<n;i++){
for(j=0;j<n;j++){
c[i][j] = a[i][j] * numero
#include <iostream>
using namespace std;
main ()
{
int posf,posc;
int a[50][50],n,i,j,x,f,c;
cout<<"INGRESAR EL NUMERO
DE FILAS DE LA MATRIZ: ";
cin>>f;
cout<<endl;
cout<<"INGRESAR EL NUMERO
DE COLUMNAS DE LA MATRIZ: ";
cin>>c;
cout<<endl;
for(i=0;i<f;i++){
for(j=0;j<c;j++){
cout<<"Ingresar
elemento M["<<i+1<<j+1<<"]: ";
cin>> a[i][j];
cout<<endl;
}
}
cout<<"INGRESAR ELEMENTO A
BUSCAR EN EL ARRAY: ";
cin>>x;
cout<<endl;
for(i=0;i<f;i++){
for(j=0;j<c;j++){
if(a[i][j]==x){
posf=i;
posc=j;
cout<<endl<<"La posicin es:
"<<posf+1<<","<<posc+1<<endl;
}
}
}
cout<<endl<<"El elemento buscado es:
"<<x<<endl;
}
MATRICES
Arreglos bi-dimensionales en C
Usamos la estructura for para acceder los elementos de la matriz
#define DIM1 3
#define DIM2 3
int i, j, k;
int M[DIM1][DIM2] = { 1,2,3,4,5,6,7,8,9}; /*inicializa la matriz M */
k=1;
for( i=0; i<DIM1; i++)
for( j=0; j<DIM2; j++)
{
M[ i ][ j ] = k;
k ++;
}
for( i=0; i<DIM1; i++)
for( j=0; j<DIM2; j++)
cout<<M[ i ][ j ]);
/* se imprime la matriz M */
MATRICES
Arreglos bi-dimensionales en C
Problema: Escriba un programa que lea una matriz cuadrada, la
presente en pantalla, y nos escriba la suma de todos los nmeros que
no estn en la diagonal
#include <iostream>
Using namespace std;
#define FILAS 3
#define COLUM 3
main()
{
/* Declaracion de variables */
int M[FILAS][COLUM] /* ENTRADA se guarda en arreglo de 2 dimensione
int i, j, suma;
/* lectura por filas, la matriz es cuadrada */
for( i=0; i<FILAS; i++)
for( j=0; j<COLUM; j++)
cin>>M[ i ][ j ] ;
MATRICES
Arreglos bi-dimensionales en C
Problema: continuacin
/* escritura por filas, la matriz es cuadrada */
for( i=0; i<FILAS; i++)
{
for( j=0; j<COLUM; j++)
cout<<M[ i ][ j ] ;
cout<<endl;
}
/* calculo de la suma */
suma = 0;
for( i=0; i<FILAS; i++)
/* se imprime la matriz M */
for( j=0; j<COLUM; j++)
if( ! (i==j))
suma += M[i][j];
/* imprime suma */
cout<<la suma es: <<suma;
}
MATRICES
Arreglos multi-dimensionales en C
Declarar un arreglo multidimensional en C:
tipo
nombre-arreglo[dim-1][dim-2][dim-n];
Ejercicio
Leer los datos de una matriz 3 x 4, denominada
Matriz, y mostrar la suma de los datos de cada fila
#include <iostream>
using namespace std;
int main()
{int matriz[3][4];int arreglo[3];int i,j;
//Ingreso de los datos
for (i=0;i<3;i++)
{
for (j=0;j<4;j++) {
cout << "Ingrese el numero entero correspondiente a la posicion ["<<i<<"] ["<<j<<"]: ";
cin >> matriz[i][j]; } }
//Muestra en pantalla la matriz ingresada
cout << "\n La matriz que usted ingreso es: \n";
for (i=0;i<3;i++) {
for (j=0;j<4;j++) {
cout << matriz[i][j]<<" "; }cout << "\n"; }
//Suma los datos de cada fila
for (i=0;i<3;i++) {
arreglo[i]=0;
for (j=0;j<4;j++) {
arreglo[i]=arreglo[i]+matriz[i][j]; } }
//Muestra en pantalla los resultados
for (i=0;i<3;i++) { cout << "\n La suma de los datos de la fila "<<i<<" es: " <<
arreglo[i]; }
return 0;}
Ejercicio
EJERCICIO
#include <iostream>
using namespace std;
void CargarMat();
int SumaFilaPar(int mat[ ][3]);
int mat [4][3],f,c; //Declaracin de variables globales
main()
{
CargarMat();
cout<<"La sumatoria de las filas pares es: "<<SumaFilaPar(mat);
}
#include <iostream>
using namespace std;
void CargarMat();
int SumaFilaPar(int mat[][3]);
int mat [4][3],f,c; //Declaracin de variables globales
main(){
CargarMat();
cout<<"La sumatoria de las filas pares es: "<<SumaFilaPar(mat);
}
void CargarMat(){
cout<<"Ingrese los componentes enteros de la matriz: ";
for(f=0;f<4;f++){
for(c=0;c<3;c++){
cin>>mat[f][c];
}
}
}
int SumaFilaPar(int mat[][3]){
int suma=0;
for(f=0;f<4;f=f+2){
for(c=0;c<3;c++){
suma=suma+mat[f][c];
}
}
return (suma);
}
char cadena[5];
cadena[1] = H;
cadena[2] = o;
cadena[3] = l;
cadena[4] = a;
cadena[5] = \0;
cadena
H
o
l
a
\0