Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin Orientada a
Objetos
Compilado por:
Mag. Sonia Mora.
Dra. Mayela Coto.
EIF200 FUNDAMENTOS DE INFORMTICA
Ejercicio: clase Colonia
Suponga que se quiere analizar el comportamiento de
colonias de bacterias que se desarrollan en alimentos.
Bsicamente se almacena informacin de la existencia de
la bacteria x en el alimento y.
Se define entonces la clase Colonia, representando a
colonias de bacterias que se desarrollan o no en una serie
de alimentos.
<tipo de los elementos> <nombre del arreglo> [<filas >] [<columnas >]
cout<<"Llenando la matriz"<<endl;
1 2 9 3
mat1.llenarMatriz(); 5 6 7 8
. 9 3 2 3
} EIF200 FUNDAMENTOS DE INFORMTICA 8 4 1 6
class Contenedor
{ private:
string toString() {
stringstream s;
for (int i = 0; i< tam;i++){
for (int j = 0; j< tam;j++)
s<<matriz[i][j]<<" ";
s<<endl;
}
s<<endl;
return s.str();
}
En el main
cout<<mat1.toString();
EIF200 FUNDAMENTOS DE INFORMTICA
class Contenedor
{ private:
1 2 9 3
5 6 7 8
9 3 2 3
8 4 1 6
La suma es 77
EIF200 FUNDAMENTOS DE INFORMTICA Imgenes usadas en esta diapositiva son de dominio pblico
class Contenedor
{ private:
int suma() {
int sum = 0;
for (int i = 0; i<tam;i++)
for (int j = 0; j<tam;j++)
sum += matriz[i][j];
return sum;
}
En el main
cout<<"La suma de los valores de la matriz es "<<mat1.suma()<<endl;
class Contenedor
{ private:
EIF200 FUNDAMENTOS DE INFORMTICA Imgenes usadas en esta diapositiva son de dominio pblico
class Contenedor
{ private:
float promedio() {
float suma = 0;
for (int i = 0; i<tam;i++)
for (int j = 0; j<tam;j++)
suma += matriz[i][j];
return (float)suma/(tam*tam);
}
En el main
cout<<"El promedio de los valores de la matriz es "<<mat1.promedio()<<endl;
1 2 9 3 2 4 18 6
5 6 7 8 10 12 14 16
9 3 2 3 18 6 4 6
8 4 1 6 16 8 2 12
En el main
cout<<"Digite el valor por el que desea multiplicar la matriz ";
cin>>valor;
mat1.multiplicarEscalar(valor);
mat1.toString();
EIF200 FUNDAMENTOS DE INFORMTICA
class Contenedor
{ private:
int matriz[tam][tam];
Bsqueda de un elemento
En la clase Contenedor defina un mtodo que
devuelva true si un elemento determinado se
encuentra en la matriz y false si no.
1 2 9 3
5 6 7 8
9 3 2 3
8 4 1 6
En el main
cout<<"Digite el valor que desea buscar ";
cin>>valor;
if (mat1.encuentraElem(valor))
cout <<"El valor " <<valor<<" SI se encuentra en la matriz "<<endl;
else
cout <<"El valor " <<valor<<" NO se encuentra en la matriz "<<endl;
class Contenedor
{ private:
int matriz[tam][tam];
Mayor elemento
En la clase Contenedor defina un mtodo que
retorne el mayor valor de la matriz.
[i]>max
En el main
cout<<"El valor maximo de la matriz es "<<mat1.buscaMaximo()<<endl;
class Colonia {
private:
int matriz [tam] [tam]; //tam valor constante definido previamente
[0] 1 0 0 1
};
[1] 0 1 1 1
bacteria
[2] 1 0 1 0
[3]
1 1 0 0
void bacteriasAlimento(int j) {
Imgenes usadas
en esta
diapositiva son de
EIF200 FUNDAMENTOS DE INFORMTICA dominio pblico
class Contenedor
{ private:
Suma diagonal
int matriz[tam][tam];
La suma de la diagonal es 15
A la suma de los elementos de la diagonal principal de una
matriz cuadrada se le llama traza de la matriz
EIF200 FUNDAMENTOS DE INFORMTICA
class Contenedor
{ private:
Suma diagonal
int matriz[tam][tam];
int sumaDiagonal(){
int i = 0, suma=0;
while (i<tam){
suma = suma + matriz[i][i];
i++;
}
return suma;
}
En el main
cout<<"La suma de la diagonal es "<<mat1.sumaDiagonal()<<endl;
Ejercicio #1
int matriz[tam][tam];
En el main
cout<<"Digite el valor que desea contar ";
cin>>valor;
cout<<"El valor "<<valor<<" se encuentra "<<mat1.cuentaElem(valor)<<" veces"<<endl;
class Contenedor
{ private:
Ejercicio #2
int matriz[tam][tam];
En el main
int x,y;
mat1.buscaPosMinimo(x,y);
cout<< "La posicion del valor minimo en la matriz es ["<<x<<"]["<<y<<"]"<<endl;
class Contenedor
{ private:
Ejercicio #3
int matriz[tam][tam];
int sumaDiagonalInversa(){
int suma=0;
for (int i=0; i<tam; i++)
suma = suma + matriz[i][tam-1-i];
return suma;
}
En el main
cout<<"La suma de la diagonal inversa es "<<mat1.sumaDiagonalInversa()<<endl;
Matriz identidad
int matriz[tam][tam];
0 0 1 0
0 0 0 1
Matriz identidad
int matriz[tam][tam];
bool esIdentidad()
{ for(int i=0;i<tam;i++)
for(int j=0;j<tam;j++)
if (i == j)
{ if (matriz[i][j] != 1)
return false; }
else { if (matriz[i][j] != 0)
return false; }
return true; }
EIF200 FUNDAMENTOS DE INFORMTICA
En el main
if (mat1.esIdentidad())
cout <<"La matriz SI es la matriz identidad "<<endl;
else
cout <<"La matriz NO es la matriz identidad "<<endl;
class Contenedor
{ private:
Matriz simtrica
int matriz[tam][tam];
[0] 1 2 9 3
[1] 2 6 7 8
[2] 9 7 2 3
[3] 3 8 3 6
[0] [1] [2] [3]
Matriz simtrica
int matriz[tam][tam];
bool esSimetrica()
{
for(int i = 1;i <tam;i++)
for(int j = 0;j < i;j++)
if (matriz[i][j]!= matriz[j][i])
return false;
return true;
}
EIF200 FUNDAMENTOS DE INFORMTICA
En el main
if (mat1.esSimetrica())
cout <<"La matriz SI es simetrica "<<endl;
else
cout <<"La matriz NO es simetrica "<<endl;
class Contenedor
{ private:
Matriz Transpuesta
int matriz[tam][tam];
[0] 1 2 9 3 [0] 1 5 9 8
[1] 5 6 7 8 [1] 2 6 3 4
[2] 9 3 2 3 [2] 9 7 2 1
[3] 8 4 1 6 [3] 3 8 3 6
[0] [1] [2] [3] [0] [1] [2] [3]
Matriz Transpuesta
int matriz[tam][tam];
En el main
cout<<"La matriz transpuesta es"<<endl;
mat1.transponerMatriz();
cout<<mat1.toString();
0 x
1 x x x
2 x x x x x
3 x x x x x x x
En el main
cout<<"La suma del triangulo de la matriz es "<<mat1.sumaTrianguloMatriz()<<endl;