Tema 2. Programación basada en objetos. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema 2. Programación basada en objetos. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas"

Transcripción

1 Tema 2. Programación basada en objetos Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

2 2.1. Objetivos Estudiar los conceptos de clase y objeto, y su implementación mediante el lenguaje C++. Constructores y destructores. Sobrecarga de operadores. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 2

3 2.2. Encapsulación de los datos Encapsulación de los datos ListinTelefonico cap construirlistin insertartelefono buscartelefono Interfaz destruirlistin main insercion Programa busqueda Programación Avanzada - Ingeniería Técnica en Informática de Gestión 3

4 2.2. Encapsulación de los datos El interfaz amortigua los efectos de los cambios internos de la estructura. Si no es preciso cambiar el interfaz, los cambios no afectarán al programa. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 4

5 2.3 Características beneficiosas Mayor abstracción. Entidades de más alto nivel. Modularidad. Agrupación de estructuras de datos con las funciones que facilitan su manipulación. Ocultación de la información. Para usar algo no es preciso saber cómo está hecho. Encapsulación de los datos. El acceso a los datos se hace a través de un interfaz. La encapsulación es la piedra angular que hace que las otras tres se cumplan. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 5

6 2.4. Objetos Necesitamos un mecanismo en los lenguajes de programación que obligue a los programas a manejar los datos a través de la interfaz. Los objetos son ese mecanismo que permite la encapsulación. Objeto Error de compilación cap Acceder directamente a los datos construirlistin insertartelefono buscartelefono destruirlistin Interfaz main insercion busqueda Programa Programación Avanzada - Ingeniería Técnica en Informática de Gestión 6

7 2.5. Objetos y clases Un objeto es una instancia de una clase. Una clase contiene dos tipos de elementos: Datos Funciones que manejan los datos. Dos tipos de elementos en una clase según el tipo de acceso: Privados Públicos La interfaz de la clase lo forman las funciones públicas. El resto de las funciones del programa que no pertenecen a la clase están obligadas a usar los datos a través de la interfaz. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 7

8 2.6 Transformando un Tipo de Dato en una Clase struct Hora { int minutos; int horas; ; void ponerenhora( Hora& oh, int h, int m ) { oh.minutos = m; oh.horas = h; if( m>59 ) normalizar( oh ); void normalizar( Hora& oh ) { oh.horas += oh.minutos / 60; oh.minutos = oh.minutos % 60; void mostrarhora( const Hora &oh ) { cout<<oh.horas<< : <<oh.minutos; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 8

9 2.6 Transformando un Tipo de Dato en una Clase class Hora { public: void ponerenhora( int h, int m); void mostrar( ); private: int horas; int minutos; void normalizar( ); ; Para definir una clase se pueden usar dos palabras clave: class struct (elementos públicos) Los datos serán privados. Las funciones que permitían el manejo de la estructura pasarán a pertenecer a la clase. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 9

10 2.6.1 Miembros de una clase. Las funciones y datos que pertenecen a la clase reciben el nombre de miembros de la clase. Métodos Funciones Atributos Datos Los miembros privados son inaccesibles desde las funciones que no pertenecen a la clase (Encapsulación). Las funciones públicas son la interfaz de la clase. Los datos de una clase son equivalentes a los campos de un tipo de dato struct de C. Las funciones de una clase están incrustadas en ella, por lo tanto no necesitan recibir el objeto, YA LO TIENEN. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 10

11 Declaración y uso de las clases // Sin clases int main( ) { Hora h; ponerenhora( h, 6, 50 ); mostrar( h ); normalizar( h ); h.minutos = 80;//Contenido incorrecto return 0; // Con clases int main( ) { Hora h; h.ponerenhora( 6, 50 ); h.mostrar( ); h.normalizar( ); // ERROR h.minutos = 80; // ERROR return 0; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 11

12 Definición de funciones miembro Se debe poner el nombre de la clase void Hora::mostrar( ) { cout<< horas << : <<minutos; void Hora::normalizar( ) { horas += minutos / 60; minutos = minutos % 60; Cuando estoy en la clase se sobreentiende que hablo de Hora::minutos void Hora::ponerEnHora( int h, int m ) { minutos = m; horas = h; if( m>59 ) normalizar( ); Programación Avanzada - Ingeniería Técnica en Informática de Gestión 12

13 Convertir en una clase: /* Archivo Cuenta.h */ struct Cuenta{ char titular[30]; int numero; float saldo; ; void asignarsaldo ( Cuenta &, float = 0.0); void inicializar ( Cuenta &, char *, int, float = 0.0); /*Archivo Cuenta.cpp */ #include <iostream> using namespace std; #include Cuenta.h void asignarsaldo (Cuenta &c, float s) { if (s<0.0) { cerr<<"saldo NEGATIVO"; s=0.0; c.saldo=s; void inicializar (Cuenta &c, char *t, int n, float s) { strcpy (c.titular, t); c.numero=n; asignarsaldocuenta (c, s); Programación Avanzada - Ingeniería Técnica en Informática de Gestión 13

14 viene de la página anterior /* Archivo Principal.cpp */ int main ( ) { Cuenta c1, c2; inicializar (c1, "Luis López", 35006); inicializar(c2, "Jesús García", 35007, 1000); asignarsaldo (c1, 500.0); asignarsaldo ( c2 ); return 0; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 14

15 2.7. Funciones inline Si una función es breve, se puede escribir su código dentro de la estructura class. Entonces es una función inline. class Hora { public: int leerminutos( ) { return minutos; int leerhoras( ) { return horas; ; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 15

16 2.8. Funciones const Cuando una función no modifica al objeto propietario de la función es conveniente definirla como const. class Hora { public: int leerminutos( ) const { return minutos; int leerhoras( ) const { return horas; ; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 16

17 2.9. Constructores Constructor: Función que se ejecuta automáticamente al crearse un objeto. Propósito: Inicializar el objeto. Características: Su nombre es el de la clase. No devuelve nada. Puede haber varios, por ejemplo: Uno sin parámetros: por defecto. Uno con un parámetro de la misma clase: copia. Los dos anteriores, el compilador los proporciona de forma implícita: Si declaro un constructor, pierdo el implícito por defecto. Cualquiera de los dos puedo declararlo para redefinirlo a mi gusto. Crear un objeto siempre supone usar un constructor... y ha de decidirse cuál en cada caso. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 17

18 2.10. Destructores Destructor: Función que se ejecuta automáticamente cuando un objeto deja de existir. Propósito: Liberar los recursos que el objeto tuviera ocupados (memoria, ficheros, etc.). class Lista { Nodo *cap; public: ~Lista( ); ; Lista::~Lista( ) { Nodo *nt; while( cap!= NULL ) { nt = cap; cap = cap->sig; delete nt; Si no, hay un destructor implícito. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 18

19 2.11. El constructor copia Construye un objeto a partir de otro de la misma clase. Hay uno implícito que copia miembro a miembro. Si el constructor copia implícito no es adecuado, debo reescribirlo. Dada una clase A, el constructor copia se define como: class A { ; A( const A&origen); Se trata de inicializar un objeto de la clase A a partir de otro objeto de la clase A (origen). Programación Avanzada - Ingeniería Técnica en Informática de Gestión 19

20 2.12. Constructores y arrays. Los objetos de un array también se construyen y se destruyen. Paso de parámetros a constructores de arrays: class Complejo { public: ; Complejo(float r=0.0, float i=0.0) { int main() { Complejo vc1[10]; Complejo vc2[3]= {1.0, 2.0, 3.0; Complejo vc3[2]= {Complejo(1.0, 1.0), Complejo(2.0, 2.0); Complejo * pc, * pvc; pc = new Complejo(1.1, 2.2); pvc = new Complejo[5];... delete pc; delete[] pvc;... Programación Avanzada - Ingeniería Técnica en Informática de Gestión 20

21 2.13. Funciones y clases amigas (friend) Una función amiga es una función qué aunque no pertenece a una clase recibe el privilegio de poder acceder a la parte privada. Para hacer una función amiga de una clase se ha de poner en la clase la palabra friend seguida del prototipo de la función. Si se quiere que todas las funciones de una clase A puedan acceder a la parte privada de una clase B, se definirá la clase A como amiga de B. class B { friend class A; ; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 21

22 2.14. this this es la dirección (inmutable) del objeto sobre el que se está ejecutando una función miembro. class A { A* direccion( ) { return this; A objeto( ) { return *this; A& objetoreferencia( ) { return *this; void escrx( int v) { this->x = v; private: int x; ; // En alguna función A a, b; A* pa = a.direccion( ); // pa = &a A* pb = b.direccion( ); // pb = &b b = a.objeto( ); // b=a a.objetoreferencia( ).escrx( 10 ); // Lo mismo que a.escrx( 10 ) Programación Avanzada - Ingeniería Técnica en Informática de Gestión 22

23 2.15. Sobrecarga de operadores La sobrecarga de operadores consiste en asociar funciones a operadores. El operador es una abreviatura que implica la ejecución de una función. Podemos sobrecargar los operadores que existen, pero no podemos: Inventar operadores nuevos. Cambiar el número de operandos que requiere un operador. Sobrecargar el operador + consiste en escribir una función llamada operator+. Lo mismo para el resto de operadores. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 23

24 2.15 Sobrecarga de operadores class Racional { public: Racional( int n, int d = 1): num( n ), den( d ) { Racional( ) { private: int num; // Numerador int den; // Denominador ; Queremos que funcione: Racional a, b, c; a = b + c; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 24

25 2.15 Sobrecarga de operadores En a = b + c hay dos operadores: b + c Racional + Racional a=resultado(b+c) Rac = Rac Para sobrecargar b + c debemos escribir una función llamada operator+. operator+ puede tener dos formas: Miembro de la clase Racional: b.operator+( c ) No miembro: operator+( b, c ) Podemos escoger la forma que queramos. Según la que elijamos tendremos distinto número de parámetros. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 25

26 2.15 Sobrecarga de operadores Qué debe devolver b + c? Racional + Racional Racional Qué debe hacer b + c? Sumar b más c y devolver el resultado Modificar a los objetos b o c? No es lo que ocurre con los tipos de datos del lenguaje (int, float, etc.) Programación Avanzada - Ingeniería Técnica en Informática de Gestión 26

27 2.15 Sobrecarga de operadores Como no miembro, la función sería: Racional operator+( const Racional& b, const Racional& c ) { Racional tmp; tmp.num = b.num*c.den + b.den*c.num; tmp.den = b.den*c.den; return tmp; Si accede a miembros privados desde una función no miembro, la función debe ser friend: class Racional { friend Racional operator+(const Racional& b, const Racional& c ); // Resto del class ; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 27

28 2.15 Sobrecarga de operadores Falta el operator= Racional = Racional No es necesario implementarlo, porque todas las clases tienen una versión implícita de ese operador. Racional& operator=(const Racional&); Realiza la asignación de cada uno de los datos miembros de la clase. Lo deberemos redefinir cuando necesitemos que este operador haga algo diferente. Pregunta: funcionará?: a = b + c + d; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 28

29 2.16. Racional += Racional Haremos que la función sea miembro de la clase Racional a += b a.operator+=( b ) Un operador no es normal que retorne void, así que haremos que devuelva Racional. La función debe modificar el primer operando racional. class Racional { Racional& operator+=( const Racional& ); ; Racional& Racional::operator+=( const Racional& b ) { num = num * b.den + den * b.num; den *= b.den; return *this; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 29

30 2.17. Racional == Racional Qué debe devolver a == b? bool. Mejor como función externa: a == b operator==(a, b) class Racional {... friend bool operator==(const Racional&,... ;... const Racional&); bool operator==(const Racional& a, const Racional& b) { return a.num/a.den == b.num/b.den; Problema con los tipos de datos: 4/5 == 1/3 true? Sobrecargamos también!=? Programación Avanzada - Ingeniería Técnica en Informática de Gestión 30

31 Racional Uso: Racional q, p; p = -q; // p = q.operator-( ); Declaración: class Racional { ; Racional operator-( ) const; Código de la función: // Versión 1 Racional Racional::operator-( ) const { Racional aux; aux.num = -num; aux.den = den; return aux; // Versión 2 Racional Racional::operator-( ) const { return Racional( -num, den ); Programación Avanzada - Ingeniería Técnica en Informática de Gestión 31

32 2.19. Operaciones entre clases distintas Si se quiere poder sumar Complejo y Racional con el operador +, hay dos opciones: Sobrecargar operator+ para Complejo y Racional. Suponiendo que ya se dispone de la suma de complejos, especificar la conversión de Racional en Complejo. De esta forma, en Complejo + Racional: 1. Se convierte automáticamente el Racional en un Complejo. 2. Se efectúa la suma con la sobrecarga del operator+ para dos complejos.

33 2.20. Complejo + Racional Complejo c1, c2; Racional q; c1 = c2 + q; Declaración en las clases: class Complejo { Complejo operator+( const Racional&)const; ; class Racional { friend Complejo Complejo::operator+( const Racional& ) const; ; Código de la función: Complejo Complejo::operator+( const Racional& q)const { float rac = static_cast<float>( q.num ) / q.den ; return Complejo( real + rac,imaginaria );

34 2.21. Racional + Complejo Complejo c1, c2; Racional q; c1 = q + c2; Declaración en las clases: class Complejo { friend Complejo operator+( const Racional&, const Complejo& ); ; class Racional { friend Complejo operator+(const Racional&, const Complejo& ); ; Código de la función: Complejo operator+( const Racional& q, const Complejo& c) { float rac = static_cast<float>( q.num ) / q.den ; return Complejo(c.real+rac,c.imaginaria );

35 2.22. Conversión mediante constructores El constructor permite convertir un objeto a otra clase diferente. class Complejo { public: Complejo(const Racional&);... friend Complejo operator+(const Complejo&, const Complejo&); private: ; float real, imaginaria; Complejo::Complejo(const Racional& q) { real = static_cast<float>(q.num) / q.den; imaginaria = 0.0; Se puede evitar que se produzcan conversiones implícitas (coerciones), poniendo la palabra explicit delante del constructor. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 35

36 2.22. Conversión mediante constructores Racional r; Complejo c1, c2; c1 = c2 + r; C1 = r + c2; El objeto r primero se convierte en un Complejo mediante el constructor, después se llama a la sobrecarga del operador + que suma dos complejos. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 36

37 Racional y Racional++ class Racional { Racional& operator++( ); Racional operator++( int ); ; Racional& Racional::operator++( ) { num += den; return *this; Racional Racional::operator++( int ) { Racional tmp = *this; num += den; return tmp; El parámetro entero es artificial, sólo sirve para diferenciar el operador posfijo del prefijo. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 37

38 2.23. Operadores de E/S Se trata de sobrecargar los operadores >> y <<. Racional q; cout << Dame un racional... ; cin >> q; cout << q vale << q << endl; cout pertenece a la clase ostream, mientras que cin pertenece a istream. Estos operadores no pueden ser funciones miembro, porque el operando de la izquierda no es el de mi clase. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 38

39 2.23. Operadores de E/S El operador de salida es <<: Racional q(2, 3); cout << q; // operator<<(cout, q); Se debe devolver por referencia el operando izquierdo (un ostream) para poder ordenar más salidas en la misma expresión: cout << q1 << y << q2 << endl; Posible implementación: ostream& operator<<(ostream& os, const Racional& q) { os << q.num << / << q.den; return os; Si se accede a datos privados, la función tendrá que ser friend. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 39

40 2.23. Operadores de E/S El operador de entrada es >>: Racional q; cin >> q; // operator>>(cin, q); El formato que lee operator>> debe ser similar al que escribe operator<<. Posible implementación: istream& operator>>(istream& is, char c; // para leer / Racional& q) { is >> q.num >> c >> q.den; return is; Consideraciones análogas al caso anterior, pero: istream en vez de ostream. Operando derecho, por referencia no const. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 40

41 2.24. El operador = Dada una clase C, su cabecera es: C& C::operator=(const C&); Todas las clases disponen de un operator= implícito, que debe redefinirse si no es adecuado. El operator= implícito asigna los datos de un objeto al otro, miembro a miembro. No se debe confundir el constructor copia con el operator=. Al constructor sólo se le puede llamar cuando se está inicializando un objeto que es nuevo. Pero puede ser útil definirlo a partir de la asignación, hecha sobre *this. Es importante prever casos como a=a; (autoasignación). Programación Avanzada - Ingeniería Técnica en Informática de Gestión 41

42 2.25. Operador de indexación Para acceder a un elemento de un objeto contenedor mediante su índice (no siempre int): obj[ind] obj.operator[](ind) // acceso al elemento ind de obj Por ejemplo, para que funcione: VectorFloat v(10); // Diez flotantes float x;... x = v[5]; // Lectura v[6] = x; // Escritura Para poder escribir, operator[] no puede devolver una copia del elemento, sino una referencia a él. Para poder leer incluso si el contenedor es const, necesitamos una versión que devuelva copia o referencia const. Programación Avanzada - Ingeniería Técnica en Informática de Gestión 42

43 2.25. Operador de indexación class VectorFloat{ public: // Para lectura y escritura (Op1) float& operator[](int i) { return elementos[i]; // Para sólo lectura (Op2) float operator[](int i) const { return elementos[i];... private: int nelems; // Número de elementos int *elementos; ; void raro(vectorfloat& vvble, const VectorFloat& vcte) { float x;... x = vvble[0]; // Versión Op1 x += vcte[1]; // Versión Op2 vvble[2] = 2*x; // Versión Op1 Programación Avanzada - Ingeniería Técnica en Informática de Gestión 43

44 2.26. Operador de llamada Para utilizar un objeto como si fuera una función: obj(arg 1,... arg n ) obj.operator()(arg 1,... arg n ) Puede definirse para el número de argumentos que se desee. Por ejemplo, para acceso a elementos de una matriz: class MatrizFloat{ public: float& operator()(int i, int j) { return elementos[i*ncols+j]; float operator()(int i, int j) const... { return elementos[i*ncols+j]; private: ; int nfils, ncols; int *elementos; Programación Avanzada - Ingeniería Técnica en Informática de Gestión 44

Tema 6. Gestión dinámica de memoria

Tema 6. Gestión dinámica de memoria Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

Tema: Sobrecarga de Operadores.

Tema: Sobrecarga de Operadores. Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen

Más detalles

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 6 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 6 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase

Más detalles

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

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo) . Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos

Más detalles

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

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

Plantillas: un mecanismo de polimorfismo

Plantillas: un mecanismo de polimorfismo Plantillas: un mecanismo de polimorfismo UPCO ICAI Departamento de Electrónica y Automática 1 Polimorfismo a través de programación genérica Las plantillas permiten programar un clase o una función de

Más detalles

Las clases como tipos de datos definidos por el usuario

Las clases como tipos de datos definidos por el usuario . La clase Fraccional. Representación en UML de los niveles de acceso 3. Categorías de los objetos que aparecen en los métodos 4. El puntero this. Métodos operadores La clase Fraccional Vamos a diseñar

Más detalles

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara. Constructores Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara. Los constructores tienen el mismo nombre

Más detalles

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

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.

Más detalles

Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005

Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005 Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II Enero de 200 1. Definición de Clases Cada clase contiene: datos (datos miembro o campos),

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

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

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.

Más detalles

Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle

Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Contenido Introducción Clases y Objetos en C++: Módulos: Clases, estructuras y espacios

Más detalles

Tema 3. Tipos de datos simples

Tema 3. Tipos de datos simples Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Guía práctica de estudio 04: Clases y objetos

Guía práctica de estudio 04: Clases y objetos Guía práctica de estudio 04: Clases y objetos Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 04: Clases y

Más detalles

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder

Más detalles

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista: Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para

Más detalles

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Tema 7.- Fundamentos de la Programación Orientada a Objetos Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

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

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Ejercicio 1. Ejercicio 2

Ejercicio 1. Ejercicio 2 Todos los ejercicios incluyen una parte opcional de mayor dificultad, indicada con una serie de asteriscos en función del grado de dificultad. Ejercicio 1 Este ejercicio servirá para practicar la declaración

Más detalles

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

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida INFORMÁTICA II 1 CONTENIDO 2 1 Programación orientada a objetos - POO 2 Clases 3 Constructores y destructores 4 Definiciones 5 Entrada y salida PROGRAMACIÓN ORIENTADA A OBJETOS Los lenguajes de programación

Más detalles

Las plantillas permiten definir funciones genéricas.

Las plantillas permiten definir funciones genéricas. Introducción (Genericidad). Plantillas de funciones o funciones genéricas. Sintaxis de plantillas. Ejemplos de declaraciones. A tener en cuenta Un ejemplo de plantilla de funciones: Máximo de un vector.

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

Tema: Arreglos de Objetos en C++.

Tema: Arreglos de Objetos en C++. Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.

Más detalles

15. Parámetros o argumentos

15. Parámetros o argumentos Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el

Más detalles

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

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : Aprender qué es un diseño modular de un programa Aprender a diseñar

Más detalles

Definición y Conversión de datos. Agustín J. González ELO-329

Definición y Conversión de datos. Agustín J. González ELO-329 Definición y Conversión de datos Agustín J. González ELO-329 1 Calificador Const El calificador const previene que un objeto sea modificado con posterioridad a su definición. El objeto calificado como

Más detalles

Lenguaje de Programación

Lenguaje de Programación UG C++ C++ Universidad de Guanajuato Sesión 33 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.

Más detalles

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros

Más detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A. SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:

Más detalles

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

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Descripción y Contenido del Curso. Programación C++ Capacity Academy. Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo

Más detalles

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad

Más detalles

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

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO

ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO Contenido Introducción... 1 Concepto de la Herencia... 2 Relación de

Más detalles

Funciones. Parámetros por valor

Funciones. Parámetros por valor Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

funciones printf scanf

funciones printf scanf FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones

Más detalles

Tema 10: Tipos de datos definidos por el usuario

Tema 10: Tipos de datos definidos por el usuario Tema 10: Tipos de datos definidos por el usuario Indice 1. Introducción 2. Registros 2.1. Elementos de un registro 2.2 Arrays de registros 2.3. Registros con arrays 2.4. Registros con registros 2.5. Paso

Más detalles

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

Programación 1 Tema 3. Información, datos, operaciones y expresiones Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes. Para aportes y sugerencias puede escribir al correo del autor: thenewinquirer01@gmail.com Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

Más detalles

Programación Avanzada

Programación Avanzada Programación Avanzada Referencias Circulares y Namespaces 1 Índice 1. INTRODUCCIÓN.. 3 2. REFERENCIAS CIRCULARES.. 4 Ejercicio 1 4 Ejercicio 2 4 Ejercicio 3 5 3. NAMESPACES 6 Introducción 6 Creación de

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 2 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 2 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Reserva

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 4 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 4 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Categorías de métodos. Métodos constructores y destructores

Categorías de métodos. Métodos constructores y destructores 1. Categorías de los métodos 2. Inicialización de miembros 3. Métodos constructores 4. Inicialización de objetos con y sin constructores 5. Sobrecarga de funciones constructoras 6. Argumentos implícitos

Más detalles

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Carnet Nombre: Examen C++ Grupo A Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: AGENDA TELEFÓNICA (4.0 PTOS.)...1 3. EJERCICIO 2:

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Tema: Tipos Abstractos de Datos (TAD s) en C++. Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

Ejercicios propuestos de. Programación orientada a objetos. con C++ Cristina Cachero Pedro J. Ponce de León

Ejercicios propuestos de. Programación orientada a objetos. con C++ Cristina Cachero Pedro J. Ponce de León de Programación orientada a objetos con C++ Cristina Cachero Pedro J. Ponce de León Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante Esta obra está bajo licencia Creative Commons

Más detalles

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso: Contenidos 1. Introducción a las variables untero 2. Reaso: - oerador de dirección: & - referencias 3. Declaración de variables de tio untero 4. Inicialización de variables de tio untero - El untero nulo:

Más detalles

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

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 Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar

Más detalles

La sintaxis básica para definir una clase es la que a continuación se muestra:

La sintaxis básica para definir una clase es la que a continuación se muestra: DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 3 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº3 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi primeras

Más detalles

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 CAPITULO 3. ENTRADA Y SALIDA BÁSICA Usando la librería estandar de entrada y salida, seremos

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011 TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso Origen Nuevo lenguaje de propósito general de Microsoft para la plataforma.net Es el único que ha sido diseñado específicamente.net

Más detalles

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final Certamen Final 1. Se tiene una aplicación Java que muestra dos botones. Cuando presionamos el botón de la izquierda, incrementa el número mostrado en el botón de la derecha. Cuando presionamos el botón

Más detalles

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16

Más detalles

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

Más detalles

Modulo 11. Clases y Objetos en Java

Modulo 11. Clases y Objetos en Java El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.

Más detalles

Entrada y salida de datos en C y C++

Entrada y salida de datos en C y C++ Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida

Más detalles

El polimorfismo. Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas.

El polimorfismo. Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas. El polimorfismo Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas. Polimorfismo El polimorfismo se refiere al hecho de que una misma función adopte múltiples formas. Esto se consigue por medio

Más detalles

Conversión entre Tipos

Conversión entre Tipos Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen

Más detalles

Programación con Visual C#

Programación con Visual C# Programación con Visual C# Duración: 40.00 horas Descripción Visual C# es uno de los lenguajes de programación desarrollados por Microsoft, basado en la programación orientada a objetos. Es imprescindible

Más detalles

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas Agenda 2.1 Familiarización con el ambiente de programación 2.2 Análisis de la estructura de un programa 2.3 Envío de mensajes a la salida estándar

Más detalles

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance Capítulo 1. Introducción general 1.1 Comencemos 1.2 Variables y expresiones aritméticas 1.3 La proposición FOR 1.4 Constantes simbólicas 1.5 Entrada y salida de caracteres 1.6 Arreglos 1.7 Funciones 1.8

Más detalles

UN PROGRAMA EN C++ QUE IMPLEMENTA GRUPOS ABELIANOS

UN PROGRAMA EN C++ QUE IMPLEMENTA GRUPOS ABELIANOS Vol. (7) 1: pp. 55-60 UN PROGRAMA EN C++ QUE IMPLEMENTA GRUPOS ABELIANOS (1) Edgar Ruiz L. RESUMEN El artículo presenta un programa en C++ que implementa el concepto algebraico de grupo conmutativo o abeliano.

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

Capítulo 6. Introducción a la POO

Capítulo 6. Introducción a la POO Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

Clases y funciones amigas: friend

Clases y funciones amigas: friend 1. Introducción a las funciones amigas (Funciones friend) 2. Funciones amigas 3. Clases amigas 4. Ejemplo: La clase fraccional. Métodos operadores amigos 5. Ejemplo: Las clases Coche y Camión. 1 Introducción:

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Clases en C++ Agustín J. González ELO329

Clases en C++ Agustín J. González ELO329 Clases en C++ Agustín J. González ELO329 1 Clases y Objetos Una clase es un tipo de datos definido por el usuario. Provee un molde o diseño" para múltiples objetos del mismo tipo o categoría. Un objeto

Más detalles

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros Necesidad de la herencia La mente humana clasifica los conceptos de acuerdo a dos dimensiones: pertenencia y variedad. Se puede decir que el Ford Fiesta es un tipo de coche (variedad o, en inglés, una

Más detalles

Tema: Introducción al IDE de Microsoft Visual C#.

Tema: Introducción al IDE de Microsoft Visual C#. Tema: Introducción al IDE de Microsoft Visual C#. Objetivos: El propósito de este tema es que el alumno se familiarice con el entorno de desarrollo de Visual C# Express mientras crea el formulario más

Más detalles

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Convertidor Dec->Hex y Hex->Dec (5.0 ptos.)... 1 1.1.1 Apartado A (4.0 ptos.)... 1 1.1.2 Apartado B (1.0

Más detalles