Programación Orientada a Objetos

Documentos relacionados
1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Introducción al tipo de dato ARRAY

Una matriz es un arreglo rectangular de elementos. Por ejemplo:

Resumen Lenguaje Java

Modulo 1 El lenguaje Java

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Tema: Arreglos de Objetos en C++.

1. Manejo de memoria estática 2. Manejo de memoria dinámica

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Tema: Clases y Objetos en C++.

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Guía - Taller # 2 (JAVA)

1. Juego del Ahorcado

Tema 2: La clase string

MANUAL DE REFERENCIA DE C++

PROGRAMACIÓN 1 EJERCICIOS RESUELTOS (Matrices y Fuciones)

Informática FACULTAD DE FÍSICAS

Contenido. Capítulo 1. Introducción a lenguaje C 1

Tema 6. Gestión dinámica de memoria

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Vectores. 27/05/05 Programación Digital I 1

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Programación Estructurada

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Curso 0 de Informática

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

UNIDAD V: ARR R EGL G OS O BIDI D MENS N IONALE L S

Estos apuntes se han sacado de la página de internet de vitutor con pequeñas modificaciones.

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Prof. Dr. Paul Bustamante

Práctica 3: Vectores y matrices en C.

Introducción a C++ y Code::Blocks

TécniquesInformàtiques PRÀCTICA 6 (2 Sessions) Curs

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Matriz A = Se denomina MATRIZ a todo conjunto de números o expresiones dispuestos en forma rectangular, formando filas y columnas.

Columnas

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Examen escrito de Programación 1

Prof. Dr. Paul Bustamante

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Objective C (Desarrollo con Apple)

PRÁCTICAS PARA EL USO DE LA CALCULADORA CASIO MODELOS FX-570MS, FX-100MS

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Prof. Dr. Paul Bustamante

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

Programación Orientada a Objetos en C#.NET CAPÍTULO 5 H E R E N C I A. Ing. Bruno López Takeyas, M.C.

CURSO 2º GRUPO Junio 2011

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Práctica 2 Gráficos Vectoriales con SVG (versión )

Impresión por pantalla

Programación I: Matrices - Arreglos bidimensionales

ARREGLOS Y MATRICES 1. Arreglos

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)

Matemáticas Discretas TC1003

Agenda..NET C# Laboratorio #1

3. Indicar la salida por pantalla (2 puntos-15 minutos)

Matrices. Concepto de matriz Se denomina matriz a todo conjunto de números o expresiones ordenados en filas y columnas.

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

CURSO DE PROGRAMADOR EN

Práctica sobre compartición de instancias remotas.

Trabajo Práctico N 4: Diseño por Contratos

11. Algunas clases estándar de Java (II)

Tema: Sobrecarga de Operadores.

Se ha desarrollado el siguiente programa principal. Se pide: arquitectura que permita una fácil extensión

Introducción a la Programación en MATLAB

IIC1103 Introducción a la Programación

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Capítulo 6. Introducción a la POO

Tema 2. El lenguaje de programación Java (Parte 1)

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Sistemas de ecuaciones lineales

Funciones. Parámetros por valor

Tema 2. El lenguaje de programación Java. Arrays y cadenas

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

IIC1103 Capítulo 7: Ordenación y Búsqueda 1

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Metodología de la Programación II. Recursividad

Estructuras de Repetición (Hacer-Mientras)

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado

Una matriz es una tabla ordenada (por filas y columnas) de escalares a i j de la forma: a

Introducción a la programación orientada a objetos

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Java para programadores

Transcripción:

Programación Orientada a Objetos

Ejercicio: clase Colonia Se define la clase Colonia, representando a una colonia de bacterias que se desarrollan o no en una serie de alimentos. Básicamente se almacena información de la existencia de x bacterias en y alimentos. Se representa con un 1 la existencia de una bacteria i en un alimento j, y con un 0 la no existencia de la misma. bacteria [0] [1] [2] [3] 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 [0] [1] [2] [3] alimento

Arreglos multidimensionales Un arreglo multidimensional es un arreglo donde los elementos se encuentran organizados en varias dimensiones. Para su definición se usa una sintaxis similar a la usada para declarar arreglos unidimensionales, pero separando las diferentes dimensiones.

Arreglos bidimensionales En lo particular un arreglo bidimensional (matriz) es un arreglo de dos dimensiones. Para crear arreglos bidimensionales en C++, hay que indicar: El tipo de los elementos (ejemplo, int, char, float, bool, string o un tipo definido por el programador) El nombre del arreglo El número de filas y el número de columnas del arreglo (ambas entre [ ]) <tipo de los elementos> <nombre del arreglo> [<filas >] [<columnas >]

Arreglos bidimensionales Ejemplo: [0] 25 4 13 14 5 int valores[3][5]; [1] [2] 2 42 18 32 52 54 23 37 60 15 [0] [1] [2] [3] [4] Para acceder a cada elemento se usa el nombre del arreglo y un índice por cada dimensión. En el caso de las matrices se necesitan dos índices: uno para las filas y otro para las columnas. cout <<valores[2][3] 60

Clase Contenedor básica const int tam=4; { private: public: Contenedor(){ for (int i = 0; i<tam; i++) for (int j = 0; j<tam ; j++) matriz[i][j]=0; } Contenedor(int a){ for (int i = 0; i<tam; i++) for (int j = 0; j<tam ; j++) matriz[i][j]= a; } Tamaño fijo Dos tipos de constructores

Clase Contenedor básica void setpos (int i, int j, int val) { matriz[i][j] = val; } int getpos (int i, int j){ return matriz[i][j]; } void llenarmatriz() { int valor; for (int i = 0; i<tam;i++) for (int j = 0; j<tam;j++) { cout<<"valor["<<i<<"]["<<j<<"]: "; cin>>valor; setpos(i,j,valor); } } Llena la matriz con valores dados por el usuario ~ Contenedor() { // memoria estática }

Clase Contenedor básica En el main la creación de objetos puede ser de diversas formas: int main(){. Contenedor mat1; Contenedor mat2(5); 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 5 0 0 0 0 5 5 5 5 5 5 5 5 5 5 5 5. } cout<<"llenando la matriz"<<endl; mat1.llenarmatriz(); 1 2 9 3 5 6 7 8 9 3 2 3 8 4 1 6

Clase Contenedor básica En la clase Contenedor defina un método que permita imprimir la matriz de forma ordenada por filas y columnas. Ejemplo: 1 2 9 3 5 6 7 8 9 3 2 3 8 4 1 6

Clase Matriz básica class Matriz 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();

Ejercicio: Clase Colonia (cont..) class Colonia { private: }; int matriz [tam] [tam]; //tam valor constante definido previamente bacteria [0] [1] [2] [3] 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 [0] [1] [2] [3] alimento

Ejercicio: Clase Colonia(cont..) 1. Método que determine la existencia de la bacteria k en el alimento p. 2. Método que devuelva en cuantos alimentos se encuentra la bacteria i. 3. Método que muestre que bacterias están presentes en el alimento j.

Ejercicio: Clase Colonia(cont..) 1. Método que determine la existencia de la bacteria k en el alimento p. bool existebacteria() { if (matriz[k][p]== 1) return true; else return false; }

Ejercicio: Clase Colonia(cont..) 2. Método que devuelva en cuantos alimentos se encuentra la bacteria i. int numalimentos(int i) { int cont = 0; for (int j = 0; j<tam; j++) cont += matriz[i][j]; return cont; }

Ejercicio: Clase Colonia(cont..) 3. Método que muestre que bacterias están presentes en el alimento j. void bacteriasalimento(int j) { } for (int i = 0; i<tam; i++) if (matriz[i][j]== 1) cout<<"el alimento"<<j<<"tiene la bacteria "<<i;

Clase Contenedor básica En la clase Contenedor defina un método que sume todos los elementos de la matriz. Por ejemplo, si la matriz es: 1 2 9 3 5 6 7 8 9 3 2 3 8 4 1 6 La suma es 77

Clase Contenedor básica 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;

Clase Contenedor básica En la clase Contenedor defina un método que calcule el promedio de todos los elementos de la matriz.

Clase Contenedor básica 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;

Clase Contenedor básica En la clase Contenedor defina un método que multiplique todos los elementos de la matriz por un escalar (dado por el usuario) Por ejemplo, si el escalar = 2 1 2 9 3 5 6 7 8 9 3 2 3 8 4 1 6 2 4 18 6 10 12 14 16 18 6 4 6 16 8 2 12

Clase Contenedor básica void multiplicarescalar (int escalar){ for (int i = 0; i<tam;i++) for (int j = 0; j<tam;j++) matriz[i][j]*= escalar; } En el main cout<<"digite el valor por el que desea multiplicar la matriz "; cin>>valor; mat1.multiplicarescalar(valor); mat1.tostring();

Búsqueda de un elemento En la clase Contenedor defina un método que retorne true si un elemento determinado se encuentra en la matriz y false si no.

Búsqueda de un elemento bool encuentraelem(int num) { for(int i = 0;i <tam;i++) for(int j = 0;j <tam;j++) if (matriz[i][j]== num) return true; return false; } 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;

Mayor elemento En la clase Contenedor defina un método que retorne el mayor valor de la matriz.

Mayor elemento int buscamaximo() { int max=matriz[0][0]; for(int i = 0;i <tam;i++) for(int j = 0;j <tam;j++) if (matriz[i][j] > max) max=matriz[i][j]; return max; } En el main cout<<"el valor maximo de la matriz es "<<mat1.buscamaximo()<<endl;

Suma diagonal En la clase Contenedor defina un método que calcule la suma de los elementos de la diagonal principal de la matriz. Por ejemplo, si la matriz es: 1 2 9 3 5 6 7 8 9 3 2 3 8 4 1 6 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

Suma diagonal 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;

Ejercicios En la clase Contenedor : 1. Escriba un método que busque un elemento determinado en una matriz e indique cuantas veces lo encuentra. 2. Escriba un método que retorne la posición del elemento menor de una matriz. 3. Defina un método que calcule la suma de los elementos de la diagonal inversa de la matriz. 1 2 9 3 2 6 7 8 9 7 2 3 3 8 3 6

Ejercicio #1 int cuentaelem(int num) { int cont=0; } for(int i = 0;i <tam;i++) return cont; for(int j = 0;j <tam;j++) if (matriz[i][j]== num) cont++; En el main cout<<"digite el valor que desea contar "; cin>>valor; cout<<"el valor "<<valor<<" se encuentra "<<mat1.cuentaelem(valor)<<" veces"<<endl;

Ejercicio #2 void buscaposminimo(int &fil, int &col) { int min=matriz[0][0]; } En el main fil=0; col=0; for(int i = 0;i <tam;i++) for(int j = 0;j <tam;j++) if (matriz[i][j] < min) { min=matriz[i][j]; fil=i; col=j; } int x,y; mat1.buscaposminimo(x,y); cout<< "La posicion del valor minimo en la matriz es ["<<x<<"]["<<y<<"]"<<endl;

Ejercicio #3 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 Una matriz se dice que es la matriz identidad si tiene todos sus elementos nulos excepto los de la diagonal principal que son iguales a 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 En la clase Contenedor defina un método que retorne true si la matriz es la matriz identidad y false si no

Matriz identidad 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; } 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;

Matriz simétrica Una matriz A de tamaño mxn se dice que es una matriz simétrica si: m=n y si cumple que A x,y = A y,x para 1<= x<= m y 1<= y <= n. [0] [1] [2] [3] 1 2 9 3 2 6 7 8 9 7 2 3 3 8 3 6 [0] [1] [2] [3] Diseñe un método que determine si la matriz es simétrica o no

Matriz simétrica bool essimetrica() { for(int i = 0;i <tam;i++) for(int j = 0;j <tam;j++) if (matriz[i][j]!=matriz[j][i]) return false; return true; } En el main if (mat1.essimetrica()) cout <<"La matriz SI es simetrica "<<endl; else cout <<"La matriz NO es simetrica "<<endl;

Matriz Transpuesta La transpuesta de una matriz se obtiene cambiando filas por columnas [0] [1] [2] [3] 1 2 9 3 5 6 7 8 9 3 2 3 8 4 1 6 [0] [1] [2] [3] [0] [1] [2] [3] 1 5 9 8 2 6 3 4 9 7 2 1 3 8 3 6 [0] [1] [2] [3] Diseñe un método que cambie la matriz por su transpuesta

Matriz Transpuesta void transponermatriz(){ //usando set y get int aux; for (int i = 1; i<tam ;i++) for (int j = 0; j< i ;j++) { aux=getpos(i,j); setpos(i,j,getpos(j,i)); setpos(j,i,aux); } } En el main cout<<"la matriz transpuesta es"<<endl; mat1.transponermatriz(); cout<<mat1.tostring();

Ejercicio Suponga que se tiene creada una instancia Contenedor mat2 de n filas y 2*n-1 columnas. Escriba un método que calcule la suma de los elementos que forman un triángulo en la matriz. Por ejemplo si n=4, el método debe sumar los elementos contenidos en las casillas marcadas con x 0 1 2 3 4 5 6 0 1 2 3 x x x x x x x x x x x x x x x x

Ejercicio int sumatriangulomatriz () { int ini=0; int fin=col-1; int suma=0; for (i=fil-1;i>=0;i--) { for (j=ini;j<=fin;j++) suma=suma+matriz[i][j]; ini++; fin--; } return suma; } const int fil=4; const int col=7; int matriz[fil][col]; En el main cout<<"la suma del triangulo de la matriz es "<<mat1.sumatriangulomatriz()<<endl;

Ejercicio: Clase Bacteria (cont..) 4. Un alimento está imposibilitado para el consumo humano si presenta al menos tam/2 existencias de bacterias. Diseñe un método que devuelva cuántos alimentos están deshabilitados para el consumo humano. 5. Un alimento es enviado a estudios bacteriólogos si se encuentra en él la presencia de cierta cantidad de bacterias continuas (por ejemplo las bacterias 1,2,3, o 2,3,4,5, o 3,4,5,6,7 etc). Diseñe un método que devuelva el máximo número de bacterias que se encuentran de manera consecutiva para el alimento m.

Usado únicamente con fines académicos