Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Capitulo 4

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 27

Capitulo 4

Funciones
Introducción

 Para resolver problemas complejos y/o de gran tamaño es


conveniente utilizar el concepto de reducción de problemas.
 De esta forma, el problema se descompone en subproblemas, los
cuales a su vez pueden descomponerse en sub sub problemas, y así
continuar hasta que el problema original queda reducido a un
conjunto de actividades básicas, que no se pueden o no conviene
volver a descomponer.
 En lenguaje de programación C la solución de un problema se
expresa por medio de un programa; la solución de un subproblema,
por medio de una función.
 Una función la definimos como un bloque de código que realiza una
tarea especifica y puede ser llamado desde otro lugar del programa.
 La comunicación entre las funciones y el programa principal, al igual
que entre las mismas funciones, se lleva a cabo por medio de
parámetros por valor, parámetros por referencia y variables
globales. Estas últimas son menos utilizadas por razones de
eficiencia y seguridad en la escritura de programas.
 Las variables son objetos que pueden cambiar su valor durante la
ejecución de un programa. En el lenguaje de programación C
podemos distinguir entre tres tipos de variables: locales, globales y
estáticas.
 Las variables locales son objetos definidos tanto en el programa
principal como en las funciones y su alcance está limitado solamente
al programa principal o a la función en la cual están definidas.
 Las variables globales son objetos definidos antes del inicio del
programa principal y su alcance es muy amplio, ya que tiene
influencia tanto en el programa principal como en todas las
funciones.
 Las variables estáticas son similares a las locales, pero conservan
su valor durante la ejecución del programa. Es decir, comienzan a
existir cuando se llama a la función y conservan su valor aun cuando
el control regresa al programa principal.
 En el lenguaje C una función se escribe de la siguiente forma:

 Donde: tipo-de-resultado representa el tipo de resultado que devuelve la


función (entero, real, carácter, cadena de caracteres, etc.); si no regresa
ningún resultado, entonces se escribe la palabra reservada void.
 Nombre-de-función representa el nombre de la función. Es conveniente
utilizar un nombre representativo de lo que realiza la función.
 Parámetros se utiliza para indicar la lista de parámetros que recibe la
función.
 Instrucciones representa, como su nombre lo indica, al conjunto de
instrucciones que pertenecen a la función
Ejemplo Funcion

 Realizar un programa que calcula el cubo de los 10 primeros


números naturales con la ayuda de una función. En la solución del
problema se utiliza una variable global, aunque esto, como veremos
más adelante, no es muy recomendable
 Observa que la línea de código siguiente es una función del programa
:
 Int cubo(void);
 Puesto que esta función se declara posteriormente, pero se utiliza en
el programa principal, el compilador del lenguaje C requiere estar
enterado de la existencia de la misma. Toma nota de que el tipo de la
función es entero (int) y no tiene parámetros. Las funciones pueden
regresar resultados de diferentes tipos de datos o bien no regresar
ninguno, en cuyo caso al inicio se debe incluir la palabra reservada
void.
 La línea int I; indica que I es una variable global de tipo entero.
Observa que la variable global se definió antes del programa principal
 La instrucción CUB = cubo(); expresa que el resultado de la función
cubo() se asigna a la variable local CUB. Observa la forma de invocar
o llamar a la función. Cabe destacar que es posible evitar el uso de la
variable local CUB escribiendo el resultado del llamado a la función
cubo como se muestra a continuación:
 printf(“\nEl cubo de %d es: %d”, cubo());
 Finalmente, ya en la función cubo, la instrucción:
 return (I*I*I);
 A continuación se muestra el resultado que arroja el programa:
Conflicto entre los nombres de las
variables
 Las variables locales, tal y como lo analizamos anteriormente, tienen
prioridad sobre las globales que cuentan con el mismo nombre. Es
decir, si existe una variable global entera “I” y una variable local
entera con el mismo nombre, cada vez que utilicemos la variable en
la función estaremos haciendo referencia a la variable local.
 Sin embargo, puede ocurrir que en algunos casos necesitemos hacer
referencia a la variable global. En esos casos debemos incorporarle
previamente a la variable global el símbolo ::, de tal forma que si
queremos hacer referencia a la variable global I, debemos escribir: ::I.
 Ejemplo :
 Observemos a continuación el siguiente programa, el cual utiliza en
una misma función dos variables con el mismo nombre, una local y
otra global.
Parámetros por valor y por
referencia
 La comunicación entre las funciones y el programa principal, o bien
entre las mismas funciones, se lleva a cabo mediante variables
globales y parámetros por valor y por referencia.
 Los parámetros por valor permiten pasar datos entre el programa
principal y las funciones, e incluso entre las mismas funciones. En el
parámetro se escribe una copia de la variable original. Si el
parámetro sufre una alteración en la función que lo recibe, la variable
original no se ve afectada.
 Los parámetros por referencia también permiten la comunicación
entre el programa principal y las funciones, o entre las mismas
funciones. Sin embargo, en este caso, en lugar de escribir una copia
de la variable en el parámetro se escribe la dirección de la misma. Si
el parámetro sufre una alteración en la función que lo recibe, la
variable original también se ve afectada.
 Ejemplo de variables por valor
 Otro ejemplo de parámetros por valor:
 El resultado del código
anterior seria :
Parámetros por referencia
 Los parámetros por referencia también permiten la comunicación
entre el programa principal y las funciones, o entre las mismas
funciones. Sin embargo, en este caso, en lugar de escribir una copia
de la variable en el parámetro se escribe la dirección de la misma. Si
el parámetro sufre una alteración en la función que lo recibe, la
variable original también se ve afectada.
 Los parámetros por referencia son útiles cuando deseas que una
función modifique el valor de una variable original o cuando deseas
ahorrar memoria al no crear copias adicionales de la variable.
 Cuando pasas un parámetro por referencia a una función, en realidad
pasas la dirección de memoria de la variable original. Esto permite
que la función acceda y modifique directamente la variable original.
A comparación del parámetro por valor, en los parámetros por referencia
si estamos modificando la variable original.
Otro ejemplo:
 Daria como resultado lo siguiente:
Ejercicio 1
 Escribe un programa en C que, al recibir como datos dos números
enteros, determine si el segundo número es múltiplo del primero.

 If((N2%N1)==0)
 Es multiplo
 No es multiplo
 Escribeun programa que utilice una función
que tenga un argumento de tipo entero y
que devuelva la letra P si un número es
positivo y la letra N si el número es cero o
negativo.
 TAREA 3
 Crea una función para cada operación aritmética (suma, resta,
multiplicación, división) y permite al usuario realizar cálculos entre 2
números.
 Solicita el radio al usuario y crea una función que nos de como resultado
el área y el perímetro de un círculo.
 Solicita al usuario 10 números y crea una función para calcular el
promedio de estos números.
 Solicita al usuario la temperatura en grados Celsius y crea una función
para convertir estas unidades a grados Fahrenheit.
 Crea un programa que calcule el precio final de un producto con
descuento mediante el uso de funciones, dada su tasa de descuento y
precio original.
 Construye programa en C que, al recibir como dato un número entero N,
calcule el factorial de dicho número mediante el uso de una función.
 Un individuo invierte en un banco un capital específico y quiere saber
cuánto obtendrá al cabo de cierto tiempo, si el dinero se coloca a una
determinada tasa de interés mensual. Escribe el programa
correspondiente recuerda hacer uso de una función.

También podría gustarte