guía-didáctica-poo

Upload: gtorrealba

Post on 17-Jul-2015

2.090 views

Category:

Documents


0 download

TRANSCRIPT

Universidad Centroccidental Lisandro Alvarado Sistema de Educacin a Distancia Decanato de Ciencias y Tecnologa

Universidad Centroccidental Lisandro Alvarado Sistema de Educacin a Distancia Decanato de Ciencias y Tecnologa

Datos de IdentificacinElaborado por: Correo-electrnico: Fecha Elaboracin: Fecha de ltima Actualizacin: Profesor Giovanni Torrealba [email protected] Octubre 2010 Octubre 2010

GUA DIDCTICA: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS CON C++

v

TABLA DE CONTENIDO1 2

Pg

INTRODUCCIN ..................................................................... 1 ESTRATEGIAS DE ENSEANZA EN ESTA GUA DIDCTICA .................... 3

2.1 Filosofa para la transmisin del conocimiento.............................................................................. 3 2.1.1 Referencias cruzadas......................................................................................................................... 3 2.1.2 Imgenes alusivas ................................................................................................................................ 3 2.1.3 Otras estrategias de organizacin de la gua........................................................................... 4 2.2 Ejercicios por tpico ................................................................................................................................ 4 2.3 Tablas resumen y/o comparativas ...................................................................................................... 5 2.4 Mapas mentales .......................................................................................................................................... 53 CONOCIMIENTOS PRELIMINARES ................................................. 7

3.1 Creacin de programas ............................................................................................................................ 7 3.2 Funciones ...................................................................................................................................................... 8 3.2.1 Implementacin de una Funcin ..................................................................................................... 8 3.2.2 Parmetros de una funcin............................................................................................................... 9 3.2.3 Tipos de parmetros segn lo que retornan.............................................................................. 9 3.2.4 Tipos de parmetros segn su ubicacin .................................................................................. 10 3.2.5 Ejemplos de funciones ......................................................................................................................11 3.3 Estado de la memoria en una ejecucin .......................................................................................... 12 3.4 Corridas en fro ........................................................................................................................................ 13 3.5 Depuracin de programas ..................................................................................................................... 16 3.5.1 Cmo activar la depuracin de un programa con DevC++ ................................................... 16 3.5.2 Comenzar a depurar un programa................................................................................................ 17 3.5.3 Depurar paso a paso su programa................................................................................................ 17 3.5.4 Observar el valor de variables y miembros de clases......................................................... 18 3.5.5 Entrar en el cdigo de subrutinas, funciones o mtodos................................................... 19 3.5.6 Otras opciones de depuracin ..................................................................................................... 20 3.5.7 Aprovechar las herramientas de depuracin ......................................................................... 20 3.6 Sintaxis de comandos de programacin ........................................................................................ 20 3.6.1 Ejemplos de sintaxis de comandos en C++ ............................................................................... 21 3.7 Mtricas de programacin: legibilidad del cdigo..................................................................... 22 3.8 Entrada de datos desde archivos .................................................................................................... 24 3.8.1 Manipulacin de Archivos .............................................................................................................. 24 3.8.2 Archivos de texto............................................................................................................................. 25Profesor Giovanni Torrealba

vi

DECANATO

DE

CIENCIAS

Y

TECNOLOGA

3.8.3 Apertura y lectura de archivos ...................................................................................................25 3.8.4 Funciones de control ........................................................................................................................264 CONCEPTUALIZACIN DE PROGRAMACIN ORIENTADA A OBJETOS (POO) . 29

4.1 Qu es la Programacin Orientada a Objetos?........................................................................29 4.1.1 Ejemplo de otros paradigmas de programacin: ...................................................................29 4.1.2 Ejercicios resueltos y propuestos ..............................................................................................30 4.2 Clases, instancias y objetos................................................................................................................30 4.2.1 Ejercicios resueltos y propuestos ...............................................................................................31 4.3 Composicin de los objetos ..................................................................................................................31 4.3.1 Atributos ..............................................................................................................................................32 4.3.2 Mtodos ................................................................................................................................................32 4.3.3 Ejemplos de Objetos .......................................................................................................................33 4.3.4 Ejercicios resueltos y propuestos ..............................................................................................34 4.4 Lenguajes Orientados a Objetos .....................................................................................................35 4.4.1 Ejercicios resueltos y propuestos ..............................................................................................36 4.5 Pilares de la Programacin Orientada a Objetos.......................................................................38 4.5.1 Abstraccin .........................................................................................................................................38 4.5.2 Encapsulamiento.................................................................................................................................40 4.5.3 Herencia ................................................................................................................................................40 4.5.4 Polimorfismo ........................................................................................................................................42 4.5.5 Ejercicios resueltos y propuestos ..............................................................................................445 IDENTIFICACIN DE OBJETOS .................................................. 47

5.1 Tcnicas para identificar objetos y componentes ....................................................................48 5.2 Ejemplificacin de requerimientos ..................................................................................................49 5.3 Equivalencias entre ejemplificacin tabulada y POO ................................................................51 5.4 El control remoto de los objetos......................................................................................................52 5.5 Ejercicios resueltos y propuestos ...................................................................................................556 REPRESENTACIN DE CLASES .................................................... 61

6.1 UML ...............................................................................................................................................................61 6.2 Notacin grfica de clases con UML ...............................................................................................61 6.3 Relaciones entre clases - Diagramas de clases ..........................................................................63 6.4 Paso de mensajes ....................................................................................................................................63 6.5 Ejercicios resueltos y propuestos ...................................................................................................647 OBJETOS EN C++ .................................................................. 67UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO

GUA DIDCTICA: I NTRODUCCIN A

LA

PROGRAMACIN ORIENTADA

A

OBJETOS

CON

C++

vii

7.1 Batera de ejercicios resueltos ........................................................................................................ 67 7.2 Estructura de un POO con C++.......................................................................................................... 67 7.3 Interfaz e implementacin de clases ............................................................................................. 68 7.3.1 Interfaz de clases con C++ ........................................................................................................... 68 7.3.2 Implementacin de clases con C++ ............................................................................................. 70 7.4 El programa principal y su compilacin............................................................................................ 71 7.5 Acceso a los datos de una clase........................................................................................................ 73 7.5.1 Constructores y destructores ..................................................................................................... 74 7.5.2 Sobrecarga de mtodos ................................................................................................................. 75 7.5.3 Setters (Sets) y Getters (Gets) ................................................................................................ 75 7.6 Integracin de los componentes del proyecto con POO y DevC++ ..................................... 77 7.7 Demostracin paso a paso: crear un POO con DevC++............................................................. 79 7.8 Recomendaciones para la identificacin de errores al compilar ......................................... 80 7.8.1 Metodologa para corregir errores de compilacin con Devc++ ...................................... 81 7.8.2 Algunos errores tpicos que reporta el Lenguaje C++ ......................................................... 81 7.9 Ejercicios resueltos y propuestos ................................................................................................... 848 METODOLOGA PARA EL ANLISIS Y PROGRAMACIN ORIENTADA A OBJETOS ........................................................................... 87

8.1 Justificacin de la necesidad de una metodologa .................................................................... 88 8.2 Demostracin de la aplicacin de la metodologa ...................................................................... 89 8.3 Ejemplos de programas orientados a objetos.............................................................................. 91 8.4 Ejercicios propuestos ........................................................................................................................... 939 RESPUESTAS A EJERCICIOS PROPUESTOS ...................................... 95

9.1 Planteamientos del tpico 4.1.2 ........................................................................................................ 95 9.2 Planteamientos del tpico 4.2.1 ........................................................................................................ 95 9.3 Planteamientos del tpico 4.3.4 ........................................................................................................ 96 9.4 Planteamientos del tpico 4.4.1 ........................................................................................................ 97 9.5 Planteamientos del tpico 4.5.5 ........................................................................................................ 98 9.6 Planteamientos del tpico 5.5.......................................................................................................... 100 9.7 Planteamientos del tpico 6.5.......................................................................................................... 107 9.8 Planteamientos del tpico 7.9.......................................................................................................... 108 9.9 Planteamientos del tpico 8.4............................................................................................................11110 BIBLIOGRAFA ....................................................................119

Profesor Giovanni Torrealba

GUA DIDCTICA: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS CON C++

ix

NDICE DE ILUSTRACIONESIlustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin

Pg

1: demostracin de las partes de una tabla resumen / comparativa. ...................... 5 2: estrategias de enseanza / aprendizaje en esta gua didctica......................... 6 3: Pasos durante la creacin de un programa............................................................ 7 4: Ejemplo de una Funcin con parmetros. ............................................................ 11 5: Ejemplo de una Funcin sin parmetros. ............................................................. 12 6: Extracto de programa que multiplica los primeros N nmeros......................... 13 7: Programa que multiplica los primeros N nmeros. Correccin 1. ...................... 14 8: Programa que multiplica los primeros N nmeros. Correccin 2. ...................... 15 9: Programa que multiplica los primeros N nmeros. Solucin final...................... 15 10: Cmo activar la depuracin de un programa con DevC++.................................. 17 11: Cmo comenzar a depurar con DevC++. .............................................................. 17 12: Depuracin paso a paso con DevC++. .................................................................. 18 13: Observar el valor de variables mientras depuras. ........................................... 19 14: Entrar en el cdigo de subrutinas, funciones o mtodos................................. 19 15: Ejemplo de aplicacin de mtricas de programacin........................................ 23 16: Sintaxis para abrir un archivo de texto............................................................ 26 17: Programa con entrada exclusiva por archivo de texto..................................... 27 18: Un Telfono en trminos de objetos. ................................................................ 33 19: Una Cuenta Bancaria en trminos de objetos. .................................................. 33 20: Un Automvil en trminos de objetos............................................................... 34 21: IDE DevC++, para el Lenguaje Orientado a Objetos C++................................. 36 22: Pilares de la Programacin Orientada a Objetos............................................. 38 23: Jerarqua de clases de transportes .................................................................. 41 24: Demostracin de un caso de polimorfismo ....................................................... 43 25: Identificacin de objetos y sus componentes (Ejemplo Organizacin). ........ 48 26: Identificacin de objetos y miembros por ejemplificacin tabulada. ........... 51 27: El cielo en la pantalla del computador. .............................................................. 52 28: El control remoto del cielo................................................................................. 53 29: funcionamiento del control remoto del cielo. ................................................... 54 30: El ejemplo Trabajadores en la pantalla del computador. ................................ 54 31: funcionamiento del control remoto del problema Organizacin...................... 55 32: Representacin de una clase segn la notacin UML. ...................................... 61 33: Sintaxis para representar los atributos en la clase, segn UML. .................. 62 34: Sintaxis para representar los mtodos en la clase, segn UML..................... 62 35: Diagrama de clases base para ejemplo de la Organizacin. ............................ 63 36: Sintaxis para la programacin de la interfaz de una clase ............................. 69 37: Archivo Trabajador.h con la interfaz de la clase. ........................................... 70 38: Archivo Trabajador.cpp con la implementacin de la clase............................. 70 39: Archivo Trabajador.h con la interfaz de la clase. ........................................... 71 40: Sintaxis para la programacin del programa principal. ................................... 72Profesor Giovanni Torrealba

x

DECANATO

DE

CIENCIAS

Y

TECNOLOGA

Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin Ilustracin

41: Archivo Principal.cpp con el Programa Principal. .............................................. 73 42: Archivo Trabajador.h con la interfaz de la clase............................................ 76 43: Archivo Trabajador.cpp con la implementacin de la clase. ........................... 76 44: Integracin de componentes de un POO con el proyecto en DevC++............. 77 45: Barra de herramientas en la IDE de DevC++. .................................................. 78 46: Paso a paso para crear un POO con DevC++. .................................................... 79 47: Sintaxis para la programacin del programa principal. ................................... 80 48: Ejemplo 1 de aplicacin de metodologa............................................................ 89 49: Ejemplo 2 de aplicacin de metodologa. .......................................................... 90 50: Ejemplo 3 de aplicacin de metodologa. .......................................................... 90 51: Ejemplo 1 de POO (Proy-CtaBanco). .................................................................. 91 52: Del ejemplo y abstraccin al POO (Proy-CtaBanco). ....................................... 91 53: Ejemplo 2 de POO (Proy-NroEntero). .............................................................. 92 54: Ejemplo 3 de POO (Proy-Llamada). ................................................................... 92 55: Del ejemplo y abstraccin al POO (Proys Llamada y NroEntero). ................. 93

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO

GUA DIDCTICA: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS CON C++

xi

NDICE DE TABLASTabla Tabla Tabla Tabla Tabla Tabla Tabla Tabla Tabla Tabla Tabla

Pg

1: comparacin entre parmetros por valor y por referencia ......................................... 10 2: compatibilidad entre parmetros formales y parmetros actuales........................... 11 3: Primera corrida en fro, se identifica un problema ..................................................... 14 4: Segunda corrida en fro, se identifica otro problema ................................................ 14 5: Tercera corrida en fro, se identifica otro problema ................................................. 15 6: Comparacin entre clases, instancias y objetos .......................................................... 31 7: tabulacin de informacin y requerimientos (ejercicio de la organizacin).............. 51 8: Ejemplificacin del ejercicio de los billetes ................................................................ 57 9: Ejemplificacin del ejercicio de los artculos .............................................................. 57 10: Ejemplificacin del ejercicio de los sobres de dinero .............................................. 57 11: Efecto del tipo de visibilidad de miembros ................................................................ 62

Profesor Giovanni Torrealba

GUA DIDCTICA: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS CON C++

1

1 INTRODUCCINLa Programacin de Computadoras es una tcnica que ha ido evolucionando desde hace ya varias dcadas, pasando desde lenguajes de bajo nivel, donde era preciso configurar los programas desde los mismos circuitos del computador, pasando por tarjetas perforadas (como fichas de biblioteca, pero con huequitos que lea una mquina), luego por la muy arraigada programacin estructurada, hasta establecerse de la manera ms natural en la actualidad con la Programacin Orientada a Objetos (POO). Esta forma de programar se basa en las caractersticas de las cosas que conforman la situacin problemtica, observndolas y describindolas tal y como las ves en el mbito real: con sus propiedades y su comportamiento. La gran mayora de los lenguajes actuales de programacin admiten bien sea todas las caractersticas de la Programacin Orientada a Objetos, o algn subconjunto del mismo. En lo que te resta de carrera, e incluso en tu vida profesional como Ingeniero Informtico o Analista de Sistemas, estars estrechamente vinculado a las tcnicas, diseos y metodologas orientadas a objetos, actividades imprescindibles en la implantacin de soluciones software. Esta gua te ofrece: Conocimientos bsicos y herramientas tiles para las actividades de programacin. Conceptualizacin de la POO. Metodologa para el diseo y modelaje de planteamientos con POO. Aplicacin de POO con el Lenguaje C++. Mltiples ejercicios resueltos y propuestos en cada captulo. Soluciones a los ejercicios propuestos. La gua se ha concebido con tcnicas ilustrativas nemotcnicas que te permiten identificar rpidamente la idea que se te presenta. La seccin de Estrategias de Enseanza te explica cmo sacarle mximo provecho a esto.

Anmate y vamos juntos a aprender a programar con POO!!!

Profesor Giovanni Torrealba

GUA DIDCTICA: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS CON C++

3

2 ESTRATEGIAS DE ENSEANZA EN ESTA GUA DIDCTICALa gua se ha diseado de manera que cuentes con distintas herramientas de comprensin del contenido, posibilitndote un estudio ms ameno e interactivo. A medida que avances en los contenidos de la gua, te resultar ms fcil navegar en la lectura y estudiar de la misma. Entre las tcnicas que se aplican en toda la gua encontrars: referencias cruzadas, mapas mentales, tablas comparativas y fichas resumen. Otro elemento que encontrars es que cada tpico relevante tiene su propio grupo de ejercicios resueltos y propuestos tipo examen, de manera que puedas prever el tipo de cuestiones a las que te enfrentars en las evaluaciones.

2.1

FILOSOFA PARA LA TRANSMISIN DEL CONOCIMIENTO

Se ha procurado el uso intensivo de imgenes, ilustraciones y tablas resmenes que demuestren el contenido de los objetivos planteados de una manera grfica.

Una imagen dice ms que mil palabras Un grfico dice ms que mil imgenes !2.1.1 REFERENCIAS CRUZADAS

Las referencias cruzadas te indicarn el lugar donde puedes obtener mayor informacin de un tpico. La referencia te llevar a la pgina exacta donde conseguirs el detalle que buscas. Ejemplo:

Aprende ms de referencias cruzadas en Pg. 42.1.2 IMGENES ALUSIVAS

Cuando veas las siguientes imgenes, esto es lo que significan: IDEA: estars frente a un planteamiento genial.

TIP: nota o recomendacin; seguramente vers indicaciones de cmo lograr o cmo entender algo de una manera ms fcil.

Profesor Giovanni Torrealba

4

DECANATO DE CIENCIAS Y TECNOLOGA

SOLUCIN: cuando veas el cubo mgico armado, estars frente a ejercicios ya resueltos! PROBLEMA: el cubo mgico por armar indica ejercicios propuestos.

REFERENCIA CRUZADA: la lupa en el libro te invita a buscar ms informacin en el sitio indicado. MAPA MENTAL: te indica que la ilustracin est estructurada como un mapa mental del tema o tpico.2.1.3 OTRAS ESTRATEGIAS DE ORGANIZACIN DE LA GUA

Encontrars en toda la gua los siguientes instrumentos que te permitirn comprender ms fcilmente el conocimiento que queremos transmitirte: Ejercicios por tpico. Tablas resumen y/o comparativas. Mapas mentales. Seguidamente te explicamos un poco ms en detalle cada una de estas estrategias, para que los asimiles al mximo.

2.2

EJERCICIOS POR TPICO

Cada tpico de esta gua didctica se ha concebido con uno o varios ejercicios resueltos, ideados con el mismo nivel de dificultad al que te enfrentars en las evaluaciones. Por otra parte, tambin dispondrs de mltiples ejercicios propuestos, mismos que te invitamos a resolver en su totalidad. Al final de la gua didctica conseguirs las respuestas a los ejercicios propuestos. Recuerda que en programacin hay muchas formas de resolver el mismo problema, pero siempre con la condicin de que se cumplan con las reglas del ejercicio planteado y los objetivos por evaluar. Considerando esto, la respuesta que encontrars seguramente corresponder a una de las soluciones posibles.

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO

GUA DIDCTICA: I NTRODUCCIN A

LA

PROGRAMACIN ORIENTADA

A

OBJETOS

CON

C++

5

2.3

TABLAS RESUMEN Y/O COMPARATIVAS

Cuando veas tablas con informacin tabulada, concntrate en la idea que se intenta transmitir en cada uno de sus ttulos, filas, columnas y celdas. Los ttulos de la tabla, de las filas y columnas te darn la explicacin del contenido respectivo. Posiblemente en la celda donde se cruzan los ttulos consigas informacin del tema tratado en filas y el tratado en columnas.

En una tabla tambin suele denominarse a cada fila como un REGISTRO, y a cada columna como un CAMPO.Observa la siguiente tabla resumen identificando las partes de la misma:IDENTIFICACIN DE LAS PARTES DE UNA TABLA RESUMEN / COMPARATIVA

Tema de filas (Estado) y columnas (Ao)

Ttulo de la tabla

Ttulos de columnas

Ttulos de filas

En esta tabla hay 3 registros y 2 campos

Celdas

Ilustracin 1: demostracin de las partes de una tabla resumen / comparativa.

2.4

MAPAS MENTALES

Un mapa mental es un diagrama que usaremos con mucha frecuencia para representar las palabras, ideas, tareas, u otros conceptos ligados y dispuestos radialmente alrededor de de una idea central o de un tema.

En esta gua, las partes de una Tabla Resumen se explicaron usando un mapa mental. Observa el tpico 2.3 y vers cmo alrededor de la tabla resumen se colocaron las ideas que te muestran cada parte de la mismaProfesor Giovanni Torrealba

6

DECANATO

DE

CIENCIAS

Y

TECNOLOGA

Analiza detenidamente el siguiente mapa mental donde resumimos las estrategias de enseanza y aprendizaje que te hemos presentado.ESTRATEGIAS DE ENSEANZA / APRENDIZAJE EN ESTA GUA DIDCTICA

REFERENCIAS CRUZADAS

Te indican donde puedes buscar ms informacin

IDEA: estars frente a un planteamiento genial

TIP: vers indicaciones de cmo lograr o entender algo de una manera ms fcil

MAPA MENTAL: indica que una ilustracin est estructurada como un mapa mental

SOLUCIN: el cubo mgico armado, te indica ejercicios ya resueltos

IMGENES ALUSIVAS

REFERENCIA CRUZADA: te invita a buscar ms informacin en el sitio indicado

PROBLEMA: el cubo mgico por armar indica ejercicios propuestos

TABLAS RESUMEN Y/O COMPARATIVASCONCNTRATE EN LA IDEA que se intenta transmitir en cada uno de sus ttulos, filas, columnas y celdas.

EJERCICIOS

POR TPICO

CADA TPICO de esta gua didctica tiene varios ejercicios resueltos y propuestos, con el mismo nivel de dificultad de las evaluaciones. Al final de la gua estn las soluciones.

Ilustracin 2: estrategias de enseanza / aprendizaje en esta gua didctica.UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO

GUA DIDCTICA: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS CON C++

7

3 CONOCIMIENTOS PRELIMINARESLos siguientes tpicos constituyen un conocimiento que debes dominar antes de que empieces a trabajar con Programacin Orientada a Objetos. Posiblemente ya manejes las definiciones y trminos que se presentan, de manera que revsalos detenidamente y verifica que los dominas, ya que en la gua se hacen muchas referencias a los mismos.

3.1

CREACIN DE PROGRAMAS

El proceso de crear un programa de computadoras consiste, en trminos generales, en la siguiente secuencia de pasos:

Codificar el Programa Fuente

Compilar el Programa Fuente

Construir el Programa Objeto

Enlazar el Programa Objeto

Obtener el Programa Ejecutable

Ilustracin 3: Pasos durante la creacin de un programa.Codificar el Programa Fuente: el programa fuente consiste en todos los archivos con las lneas de cdigo que hacemos en un programa. en este curso, el cdigo fuente ser con Lenguaje C++. Compilar el Programa Fuente: Compilar consiste en verificar que todas las reglas del lenguaje (sintaxis) se cumplen en las instrucciones del programa fuente. La compilacin se invoca desde la interfaz de desarrollo (IDE) la cual se vale del compilador del lenguaje respectivo.Profesor Giovanni Torrealba

8

DECANATO DE CIENCIAS Y TECNOLOGA

Construir el Programa Objeto: el slo hecho de que el programa fuente sea sintcticamente correcto no garantiza que vaya a funcionar. El programa objeto se crea automticamente luego de la compilacin es exitosa, y lo que resulta es un cdigo intermedio que contiene mltiples tablas con las referencias a variables y llamadas a subrutinas, funciones y mtodos, para su posterior verificacin de que se declararon y/o existen. Enlazar el Programa Objeto: enlazar el programa consiste en verificar las tablas de referencias, creadas en el programa objeto, y comprobar que toda referencia a variable, subrutina, funcin o mtodo est disponible en el programa fuente o en las libreras que se incluyeron. Obtener el Programa Ejecutable: una vez se superan exitosamente las etapas anteriores, se produce el programa ejecutable, el cual podrs hacerle doble clic en el explorador de archivos y hacerlo funcionar. En Windows los programas ejecutables tienen extensin EXE.

3.2

FUNCIONES

Una funcin contiene una o ms sentencias y se crean generalmente para realizar una nica tarea. En la Programacin Orientada a Objetos, las funciones se utilizan para definir los mtodos de las clases. Cuando ests haciendo programas y veas que se refieren a mtodos, entonces sabrs que se trata de funciones definidas por el usuario.

Todos los lenguajes de programacin ofrecen innumerables funciones que ya estn programadas, y tambin la posibilidad de crear nuevas por parte del programador. A estas se les denomina Funciones Definidas por el Usuario, considerndote a ti como usuario del Lenguaje (programador).3.2.1 IMPLEMENTACIN DE UNA FUNCIN

Para que puedas programar una funcin, debes seguir la siguiente sintaxis:tipo_de_retorno NombreFuncion (lista parmetros) { sentencias return valor; }

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO

GUA DIDCTICA: I NTRODUCCIN A

LA

PROGRAMACIN ORIENTADA

A

OBJETOS

CON

C++

9

Cuando en el tipo de retorno aparece la palabra reservada void significa que la funcin no retorna ningn valor.void NombreFuncion (lista parmetros) { sentencias ..... }

Usualmente se les denomina Procedimientos a las funciones que no retornan ningn valor3.2.2 PARMETROS DE UNA FUNCIN

Los parmetros se usan para enviar valores a una funcin, con los que ella trabajar para realizar los procesos. Son los valores de entrada que recibe una funcin. Por ejemplo, una funcin que realizase una suma de dos nmeros tendra como parmetros a esos dos nmeros. Los dos nmeros son la entrada, as como la salida sera el resultado. Tambin se conocen como Argumentos. Una funcin puede utilizar parmetros por valor y parmetros por referencia, o puede no tener parmetros.3.2.3 TIPOS DE PARMETROS SEGN LO QUE RETORNAN

Segn el valor que puede retornar un argumento, los parmetros se clasifican en parmetros por valor o por referencia. PARMETROS POR VALOR : El paso de argumentos por valor significa que al compilar la funcin y el cdigo que llama a la funcin, sta recibe una copia de los valores de los parmetros que se le pasan como argumentos. PARMETROS POR REFERENCIA: Cuando una funcin debe modificar el valor de la variable pasada como parmetro y que esta modificacin retorne a la funcin llamadora, se debe pasar el parmetro por referencia. Los parmetros por referencia tambin pueden identificarse ya que constituyen parmetros de entrada y salida. Los parmetros por valor son slo de entrada. En este mtodo, el compilador no pasa una copia del valor del argumento; en su lugar, pasa una direccin de memoria, que indica a la funcin dnde existe la direccin de los argumentos pasados.

Profesor Giovanni Torrealba

10

DECANATO

DE

CIENCIAS

Y

TECNOLOGA

Para declarar un parmetro como paso por referencia, el smbolo & debe preceder al nombre del parmetro.COMPARACIN ENTRE PARMETROS POR VALOR Y POR REFERENCIAComparacin Tipo parmetro

Por valor Se declaran sin & Copia de los valores de los argumentos que se pasan No cambia el valor del argumento original Solo de entrada

Por referencia Se declaran con & El mismo valor que el argumento que se pasa (la misma direccin) El cambio es retornado al argumento original Son de entrada y salida

Cmo identificarlos Qu recibe la funcin Cmo se afecta el parmetro que se enva Entrada y/o salida

Tabla 1: comparacin entre parmetros por valor y por referencia3.2.4 TIPOS DE PARMETROS SEGN SU UBICACIN

Tanto en la definicin (cabecera) de la funcin como en las llamadas deben colocarse parmetros; la siguiente terminologa los distingue Parmetros formales: estn en la definicin de la funcin (cabecera). Debe indicarse el tipo de cada argumento. Slo se definen 1 vez, 2 veces cuando se trabaja con clases (una en la interfaz y otra en la implementacin). Parmetros actuales: estn en cada llamada a una funcin. No debe colocarse el tipo de cada argumento. Los veremos mltiples veces, todas las que sea necesaria, en un programa; cada vez que se invoca a una funcin, esos parmetros sern actuales. Para que la invocacin a una funcin est correcta sintcticamente en sus parmetros actuales con respecto a los parmetros formales, deben cumplirse las siguientes reglas:

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO

GUA DIDCTICA: I NTRODUCCIN A

LA

PROGRAMACIN ORIENTADA

A

OBJETOS

CON

C++

11

COMPATIBILIDAD ENTRE PARMETROS FORMALES Y PARMETROS ACTUALESRegla Compatibilidad

Debe cumplir con lo siguiente Para N parmetros formales deben haber N parmetros actuales. Ej: si hay 3 parmetros en los formales, deben haber 3 en los actuales Deben ser parmetros del mismo tipo. Ej: Si en los formales hay un char y un int, igualmente deben haber un char y un int en los actuales Deben estar en el mismo orden. Ej: si en los formales hay un char y un int, y en los actuales hay un int y un char, ambos pares de parmetros tienen el mismo tipo pero no estn en el mismo orden.

Misma cantidad

Mismo tipo

Mismo orden

Tabla 2: compatibilidad entre parmetros formales y parmetros actuales3.2.5 EJEMPLOS DE FUNCIONES EJEMPLO DE UNA FUNCIN CON PARMETROSvoid ImprimirMensaje (string mensaje) { cout