CENTRO DE ESTUDIOS TECNOLGICOS industrial y de servicios N 4
Aquiles Serdn Alatriste
Desarrolla software utilizando programacin estructurada. Prctica 6. Programando en C++
Nombre del Alumno: ___________________________________________ Fecha: _______________________ INTRODUCCIN: Conceptos Generales. Funciones La declaracin de una funcin nos da el nombre de la funcin, el tipo del valor que retorna y el nmero y tipo de parmetros que deben pasrsele. La sintaxis es:
tipo_retorno nom_funcion (lista_tipos_param); donde lista_tipos_param = tipo_param_1, tipo_param_2, , tipo_param_n
Donde los parntesis y el punto y coma son obligatorios. El tipo de retorno se puede omitir pero el compilador asume que es int. En C una funcin sin lista de parmetros se considera que tiene un nmero de parmetros indefinidos, mientras que en C++ se entiende que no se le pasa nada (para pasar un nmero de parmetros indefinido se ponen tres puntos (...) en la lista de parmetros). Lo ms recomendable para evitar confusiones es poner siempre void como parmetro cuando no vamos ha pasar nada. En la lista de parmetros podemos ponerle nombre a los parmetros, pero el compilador los ignorar. Definicin de funciones Una definicin de una funcin es una declaracin en la que se incluye el cuerpo de la misma y se da nombre a los parmetros. La sintaxis es: tipo_retorno nom_funcion (lista_param) { cuerpo de la funcin } lista_param = tipo_param_1 nom_param_1, , tipo param_n nom_param_2; Donde los nombres de los parmetros son obligatorios. Hay que indicar que una lista de parmetros debe indicar explcitamente el tipo de cada uno de ellos, as: int producto (int a, b) { return (a*b); } sera incorrecto, ya que el segundo parmetro no tiene tipo, habra que escribir: int producto (int a, int b) { return (a*b); } CENTRO DE ESTUDIOS TECNOLGICOS industrial y de servicios N 4 Aquiles Serdn Alatriste Desarrolla software utilizando programacin estructurada. Prctica 6. Programando en C++ Es decir, una lista de parmetros no es una declaracin de variables. Si no deseamos usar algn parmetro podemos indicarlo no ponindole nombre en la definicin de la funcin. Dentro del cuerpo de la funcin podemos declarar variables, pero no funciones, es decir, no se permiten funciones anidadas. Paso de parmetros En C++ todos los parmetros se pasan por valor, es decir, se hace una copia de los parmetros cuando llamamos a la funcin. En la llamada, antes de hacer la copia, se chequea que los parmetros actuales (los valores o variables especificados en la llamada) son del mismo tipo que los parmetros formales (los que declaramos en la lista de parmetros de la declaracin de la funcin). Si los tipos son iguales o existe una conversin implcita la llamada puede realizarse, si no son iguales deberemos realizar conversiones explcitas. Veamos un ejemplo:
El resultado de ejecutar el programa ser i vale 1 y j vale 2. Esto se debe a que cuando pasamos el parmetro val, esperamos un entero y lo que recibe la funcin es una copia del valor de i (1), al incrementar val en 1 modificamos la copia y la i queda igual. Sin embargo, el segundo parmetro es una referencia (la direccin de una variable entera), y al llamar a la funcin con j lo que se copia es su direccin, luego las modificaciones de ref se producen en la posicin en la que se encuentra j. Como se ve, podemos considerar que al poner un parmetro de tipo referencia estamos realmente pasando el parmetro por referencia. Hay que indicar que las referencias se usan igual que las variables del tipo, es decir, el ref++ no modifica la direccin, sino que modifica el valor referenciado. DESCRIPCIN DE LA PRCTICA Consideremos el siguiente algoritmo para obtener la multiplicacin de dos nmeros:
Las funciones se declaran arriba del main(), y debajo de las libreras #include. As de invoca una funcin dentro del main (). Esta es la funcin Multiplicar:
CENTRO DE ESTUDIOS TECNOLGICOS industrial y de servicios N 4 Aquiles Serdn Alatriste Desarrolla software utilizando programacin estructurada. Prctica 6. Programando en C++
1. Disee un programa que: a. Pida por teclado dos nmeros enteros , posteriormente muestre un men que le permita elegir entre realizar una SUMA, RESTA, MULTIPLICACION O DIVISION a estos nmeros, puedes utilizar la sentencia SWITCH. (ver prctica 4) b. Debers realizar una funcin por cada procedimiento es decir la funcin suma, la funcin resta, la funcin multiplicacin y la funcin divisin c. Y dependiendo de la opcin que el usuario haya elegido deber mostrar en pantalla el resultado. Recuerda crear dentro de tu carpeta de Prcticas C++, la subcarpeta Prctica 6 y guardar dentro de la carpeta el proyecto correspondiente. Una vez que tu programa corra y no marque error debers enviarme por correo la subcarpeta, para evaluar la aplicacin.