SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
LENGUAJE DE PROGRAMACIÓN
Mag. Ing. Ricardo Yauri
Sesión 4
• Funciones Parte I
6/07/2020 21:56 1
• 1. Subprogramas y Modularidad
1.1. Subprogramas en C
1.2. Invocación de subprograma
• 2. Funciones: Ambito de una función
2.1. Ámbito de una función
2.2. Prototipos
2.3. Etapas de tratamiento de datos
2.4. Elementos
6/07/2020 21:56 2
Funciones parte I
6/07/2020 21:56 3
1. Subprogramas y Modularidad
Un subprograma o modulo es un trozo de código que tiene:
• Entradas
• Salidas
• Instrucciones
Es un programa!
Un subprograma puede ser utilizado por el programa principal o por
otros subprogramas
6/07/2020 21:56 4
1. Subprogramas y Modularidad
Modularidad
Característica de un programa de estar divido en módulos. técnica usada por los
programadores para hacer sus códigos más cortos, ya que consiste en reducir un gran
problema complejo, en pequeños problemitas más sencillos
Permite
• Permite mayores niveles de abstracción, por ende capacidad de abordar
problemas más complejos
• Diseñar programas más claros, y por ende más fáciles de mantener
• Permite la reutilización de código, y por ende evita retrabajo y aumenta
productividad.
6/07/2020 21:56 5
1. Subprogramas y Modularidad
Dividir y conquistar
Técnica de programación consistente en dividir un problema complejo en
varios más simples.
• Estos problemas simples pueden ser nuevamente divididos
6/07/2020 21:56 6
1. Subprogramas y Modularidad
1.1. Subprogramas en C
6/07/2020 21:56 7
1. Subprogramas y Modularidad
1.1. Subprogramas en C
• Tipo_de_salida: Es el tipo de dato que devolverá esa función, que puede ser real, entera, o
tipo void(es decir que no devolverá ningún valor).
• Nombre_de_la_funcion: Es el identificador que le damos a nuestra función, la cual debe
cumplir las reglas que definimos en un principio para los identificadores.
• Parametros de entrada (argumentos): son los parámetros que recibe la función. Los
argumentos de una función no son más que variables locales que reciben un valor. Este valor
se lo enviamos al hacer la llamada a la función. Pueden existir funciones que no reciban
argumentos.
• Acciones: Constituye el conjunto de acciones, de sentencias que cumplirá la función, cuando
sea ejecutada. Entre ellas están:
 Asignaciones
 Lecturas
 Impresiones
 Cálculos, etc
6/07/2020 21:56 8
1. Subprogramas y Modularidad
1.1. Subprogramas en C
6/07/2020 21:56 9
1. Subprogramas y Modularidad
1.1. Subprogramas en C
Ejemplos
void mostrar_bienvenida(){
printf(“********************n”);
printf(“** **n”);
printf(“** BIENVENIDO **n”);
printf(“** **n”);
printf(“********************n”);
}
6/07/2020 21:56 10
1. Subprogramas y Modularidad
• Para ejecutar el código que define el cuerpo de una función, hay que realizar una
invocación a la función.
• Para invocar a una función basta con escribir el nombre de dicha función seguida de
sus parámetros si es que los tuviera.
• Después de ejecutar la función, se sigue en la línea posterior a la invocación.
1.2. Invocación Subprogramas
void mostrar_bienvenida(){
printf(“********************n”);
printf(“** **n”);
printf(“** BIENVENIDO **n”);
printf(“** **n”);
printf(“********************n”);
}
6/07/2020 21:56 11
1. Subprogramas y Modularidad
1.2. Invocación Subprogramas
int main(){
mostrar_bienvenida();
printf(“Adios!n”);
return 0;
}
6/07/2020 21:56 12
1. Subprogramas y Modularidad
1.2. Invocación Subprogramas
6/07/2020 21:56 13
1. Subprogramas y Modularidad
1.2. Invocación Subprogramas
void f(){
…
}
void g(){
…
}
void h(){
…
}
int main(){
f();
g();
f();
h();
return 0;
}
6/07/2020 21:56 14
2. Funciones
2.1. Ámbito de una función
• Las funciones están disponibles desde que se declaran hacia abajo.
• Lo que se define dentro de la función, solo lo puede usar la función.
• El código de la función esta “oculto”.
• Desde afuera de la función se ve como un todo.
• No se puede ejecutar “la mitad” de una función
6/07/2020 21:56 15
2. Funciones
2.2. Prototipos
• Para independizar la definición de la función de su posición en el código se
generan prototipos.
• Se define solo la declaración de la función
• Para poder invocar a una función el compilador necesita saber:
 Cual es su nombre.
 Cuales son sus parámetros.
 Que tipo de dato devuelve.
6/07/2020 21:56 16
2. Funciones
2.2. Prototipos
void f();
void g();
void h();
void main(){
f();
g();
f();
h();
}
void f() {…}
void g() {…}
void h() {…}
6/07/2020 21:56 17
2. Funciones
2.3. Etapas de tratamiento de datos
6/07/2020 21:56 18
2. Funciones
2.4. Elementos
6/07/2020 21:56 19
2. Funciones
2.4. Elementos
6/07/2020 21:56 20
2. Funciones
• En este tema nos centraremos en:
o La recepción y validación de entradas.
o Los detalles del cuerpo de la función
o La preparación y entrega de la salida.
2.4. Elementos
6/07/2020 21:56 21
2. Funciones
• Una función realiza transformaciones y cálculos sobre las entradas para
generar una salida.
• Una vez que se ejecutan todos los pasos necesarios la salida es “devuelta” a
quien invocó a la función.
• La devolución de la salida implica el termino de la función
• Una vez devuelto el resultado, el programa sigue su ejecución justo después de
la invocación.
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 22
2. Funciones
• Una función debe definir el tipo de dato que devuelve
o int
o double
o char
o void
o etc.
• El valor que devuelva debe ser consecuente con el tipo de dato especificado.
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 23
2. Funciones
2.4.1. Salida de una función
a) Instrucción return. Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return.
• “return” indica que ha llego el momento de entregar la salida al invocador:
o Es necesario entregar el valor a devolver.
o Implica el termino de la función.
2.4. Elementos
6/07/2020 21:56 24
return suma;
return 0;
return contador>1;
return suma-4;
return (a = = b);
a) Instrucción return. Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return.
• “return” indica que ha llego el momento de entregar la salida al invocador:
o Es necesario entregar el valor a devolver.
o Implica el termino de la función.
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 25
double pi(){
return 3.1415;
}
void main(){
…
printf( “El valor de pi es %fn” , pi() );
…
}
a) Instrucción return. Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return.
• “return” indica que ha llego el momento de entregar la salida al invocador:
o Es necesario entregar el valor a devolver.
o Implica el termino de la función.
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 26
a) Instrucción return.
void main(){
…
printf( “El valor de pi es %fn” , pi() );
…
}
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 27
a) Instrucción return. La instrucción return debe entregar un valor acorde al tipo especificado en la
declaración y además, indica el termino de la función.
Una vez invocado, no se ejecutan mas instrucciones de la función. ¿Tiene sentido entonces definir
instrucciones después de ella?
int leerNumero()
{
int n=0;
n=20;
return n;
printf(“ok”);
}
int leerNumero()
{
int n=0;
n=20;
printf(“ok”);
return n;
}
Nunca se ejecuta
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 28
a) Instrucción return.
Ejemplo 1.
int leerPositivo() {
int n=0;
n=3;
if(n>0)
return n;
}
¿Y si n<=0?
int leerPositivo()
{
int n=0;
n=3;
if(n>0)
return n;
else{
printf(“error”);
return 0;
}
}
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 29
b) Instrucción de retorno “void”. Si la función especifica un tipo de retorno “void” puede utilizar a
“return” sin especificar un valor.
• Sirve para terminar la ejecución de una función.
• Si no se utiliza ningún “return”, la función termina con el cierre de llave.
void escribirMucho(){
int i=0;
for ( i=0; ; i=i*2) {
printf( “%d-” , i );
if ( i%7 == 0 )
return;
}
}
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 30
c) Instrucción de retorno en la función “main”. Si la función main se define como void, return
termina la aplicación.
• “main” se puede definir con retorno de datos entera
• El sistema operativa interpreta este valor como “ejecutado con éxito”, “termino forzoso” u
otro.
• Altamente dependiente del sistema operativo.
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 31
c) Instrucción de retorno en la función “main”. Si la función main se define como void, return
termina la aplicación.
int main(){
double i1=0, i2=0;
i1 = leerInteres();
if (i1==0)
return 0;
i2 = leerInteres();
if (i1==0)
return 0;
printf(“Intereses: %f y %f”, i1 , i2);
return 1;
}
2. Funciones
2.4.1. Salida de una función
2.4. Elementos
6/07/2020 21:56 32
2.4.2. Cuerpo de una función
• El cuerpo de una función es un conjunto de instrucciones
a) Se pueden definir variables locales
o Estas variables solo son visibles dentro de la función.
o La función no puede afectar cosas fuera de ella.
o Los nombres de variables debe ser únicos solo dentro de ella.
b) Variables globales
o Son variables definidas fuera de toda función.
o Cualquiera las puede leer y modificar.
o Deben ser únicas a través de todo el programa.
o Las variable globales podrían sustituir la entrada y la salida!
2. Funciones
2.4. Elementos
6/07/2020 21:56 33
int x;
void f(){
int y;
x=1;
}
void g(){
int z;
y=z;
}
void h(){
int w;
w=x;
}
Y no es accesible
desde aqui
X es accesible
desde cualquier
función
2.4.2. Cuerpo de una función
2. Funciones
2.4. Elementos
6/07/2020 21:56 34
#include <stdio.h> /* printf */
#include <math.h> /* sqrt */
int n1,n2;
double pa, pg;
void promedios(){
pa = (n1+n2)/2;
pg = sqrt(n1*n2);
}
int main(){
n1=80;
n2=30;
promedios();
printf("promedios: %.0f-%.0fn",pa,pg);
return 0;
}
Permite que la función
entregue más de un
valor
2.4.2. Cuerpo de una función
2. Funciones
2.4. Elementos
6/07/2020 21:56 35
2.4.3. Entrada a una función
• Las entradas de una función se definen en forma de parámetros.
• Los parámetros se definen por un nombre y un tipo.
• Actúan como variables locales de la función.
• Definen la forma en que la función debe ser invocada.
2. Funciones
2.4. Elementos
6/07/2020 21:56 36
int main(){
f(1, 1.0, '1');
f(0);
f(12.5, 12.5, "a");
f("a", 12, 12.5);
}
2.4.3. Entrada a una función
2. Funciones
2.4. Elementos
6/07/2020 21:56 37
#include<stdio.h>
void mostrarLinea( char c, int n){
int i;
for(i=0;i<n;i++)
printf("%c",c);
printf("n");
}
void mostrarPorcentaje(double porc ){
printf("%.2f%%n",100*porc);
}
void main(){
mostrarLinea('*',6);
mostrarPorcentaje(0.12345);
mostrarLinea('*',6);
}
Ejemplo 1.
Llamada a funciones
2.4.3. Entrada a una función
2. Funciones
2.4. Elementos
6/07/2020 21:56 38
#include<stdio.h>
void mostrarLinea( char c, int n){
int i;
for(i=0;i<n;i++)
printf("%c",c);
printf("n");
}
void mostrarPorcentaje( double porc ){
printf("%.2f%%n",100*porc);
}
Ejemplo 2. Inclusión de funciones
void mostrarPorcentajeYLineas( double porc , char c , int n )
{
mostrarLinea(c , n);
mostrarPorcentaje( porc );
mostrarLinea(c , n);
}
void main(){
mostrarPorcentajeYLineas( 0.89766, '*‘ , 6);
}
2.4.3. Entrada a una función
2. Funciones
2.4. Elementos
6/07/2020 21:56 39
Referencias
• DEITEL, Harvey M.; DEITEL, Paul J. Cómo programar en C+. Pearson
Educación, novena edición, 2014.
• JOYANES AGUILAR, Luis; SANCHEZ GARCIA, LUCAS. Programación en C++: un
enfoque práctico. 2006.

Más contenido relacionado

Similar a Sesión4p.pdf

Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
karlalopezbello
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
Ronal Palomino
 

Similar a Sesión4p.pdf (20)

Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Guía funciones
Guía funcionesGuía funciones
Guía funciones
 
Practica 13
Practica 13Practica 13
Practica 13
 
6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv
 
Programación Modular - Subprogramas o funciones
Programación Modular - Subprogramas o funcionesProgramación Modular - Subprogramas o funciones
Programación Modular - Subprogramas o funciones
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
2 f programas
2 f programas2 f programas
2 f programas
 
2 f programas
2 f programas2 f programas
2 f programas
 
Manual_de_Arduino.pdf
Manual_de_Arduino.pdfManual_de_Arduino.pdf
Manual_de_Arduino.pdf
 
Funciones
FuncionesFunciones
Funciones
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Funciones
FuncionesFunciones
Funciones
 
Introduccion a la programacion en c 1
Introduccion a la programacion en c 1Introduccion a la programacion en c 1
Introduccion a la programacion en c 1
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Doc tutorial-c++
Doc tutorial-c++Doc tutorial-c++
Doc tutorial-c++
 
Doc tutorial-c++
Doc tutorial-c++Doc tutorial-c++
Doc tutorial-c++
 
Doc tutorial-c++
Doc tutorial-c++Doc tutorial-c++
Doc tutorial-c++
 
Doc tutorial-c++
Doc tutorial-c++Doc tutorial-c++
Doc tutorial-c++
 

Sesión4p.pdf

  • 1. LENGUAJE DE PROGRAMACIÓN Mag. Ing. Ricardo Yauri Sesión 4 • Funciones Parte I 6/07/2020 21:56 1
  • 2. • 1. Subprogramas y Modularidad 1.1. Subprogramas en C 1.2. Invocación de subprograma • 2. Funciones: Ambito de una función 2.1. Ámbito de una función 2.2. Prototipos 2.3. Etapas de tratamiento de datos 2.4. Elementos 6/07/2020 21:56 2 Funciones parte I
  • 3. 6/07/2020 21:56 3 1. Subprogramas y Modularidad Un subprograma o modulo es un trozo de código que tiene: • Entradas • Salidas • Instrucciones Es un programa! Un subprograma puede ser utilizado por el programa principal o por otros subprogramas
  • 4. 6/07/2020 21:56 4 1. Subprogramas y Modularidad Modularidad Característica de un programa de estar divido en módulos. técnica usada por los programadores para hacer sus códigos más cortos, ya que consiste en reducir un gran problema complejo, en pequeños problemitas más sencillos Permite • Permite mayores niveles de abstracción, por ende capacidad de abordar problemas más complejos • Diseñar programas más claros, y por ende más fáciles de mantener • Permite la reutilización de código, y por ende evita retrabajo y aumenta productividad.
  • 5. 6/07/2020 21:56 5 1. Subprogramas y Modularidad Dividir y conquistar Técnica de programación consistente en dividir un problema complejo en varios más simples. • Estos problemas simples pueden ser nuevamente divididos
  • 6. 6/07/2020 21:56 6 1. Subprogramas y Modularidad 1.1. Subprogramas en C
  • 7. 6/07/2020 21:56 7 1. Subprogramas y Modularidad 1.1. Subprogramas en C • Tipo_de_salida: Es el tipo de dato que devolverá esa función, que puede ser real, entera, o tipo void(es decir que no devolverá ningún valor). • Nombre_de_la_funcion: Es el identificador que le damos a nuestra función, la cual debe cumplir las reglas que definimos en un principio para los identificadores. • Parametros de entrada (argumentos): son los parámetros que recibe la función. Los argumentos de una función no son más que variables locales que reciben un valor. Este valor se lo enviamos al hacer la llamada a la función. Pueden existir funciones que no reciban argumentos. • Acciones: Constituye el conjunto de acciones, de sentencias que cumplirá la función, cuando sea ejecutada. Entre ellas están:  Asignaciones  Lecturas  Impresiones  Cálculos, etc
  • 8. 6/07/2020 21:56 8 1. Subprogramas y Modularidad 1.1. Subprogramas en C
  • 9. 6/07/2020 21:56 9 1. Subprogramas y Modularidad 1.1. Subprogramas en C Ejemplos void mostrar_bienvenida(){ printf(“********************n”); printf(“** **n”); printf(“** BIENVENIDO **n”); printf(“** **n”); printf(“********************n”); }
  • 10. 6/07/2020 21:56 10 1. Subprogramas y Modularidad • Para ejecutar el código que define el cuerpo de una función, hay que realizar una invocación a la función. • Para invocar a una función basta con escribir el nombre de dicha función seguida de sus parámetros si es que los tuviera. • Después de ejecutar la función, se sigue en la línea posterior a la invocación. 1.2. Invocación Subprogramas
  • 11. void mostrar_bienvenida(){ printf(“********************n”); printf(“** **n”); printf(“** BIENVENIDO **n”); printf(“** **n”); printf(“********************n”); } 6/07/2020 21:56 11 1. Subprogramas y Modularidad 1.2. Invocación Subprogramas int main(){ mostrar_bienvenida(); printf(“Adios!n”); return 0; }
  • 12. 6/07/2020 21:56 12 1. Subprogramas y Modularidad 1.2. Invocación Subprogramas
  • 13. 6/07/2020 21:56 13 1. Subprogramas y Modularidad 1.2. Invocación Subprogramas void f(){ … } void g(){ … } void h(){ … } int main(){ f(); g(); f(); h(); return 0; }
  • 14. 6/07/2020 21:56 14 2. Funciones 2.1. Ámbito de una función • Las funciones están disponibles desde que se declaran hacia abajo. • Lo que se define dentro de la función, solo lo puede usar la función. • El código de la función esta “oculto”. • Desde afuera de la función se ve como un todo. • No se puede ejecutar “la mitad” de una función
  • 15. 6/07/2020 21:56 15 2. Funciones 2.2. Prototipos • Para independizar la definición de la función de su posición en el código se generan prototipos. • Se define solo la declaración de la función • Para poder invocar a una función el compilador necesita saber:  Cual es su nombre.  Cuales son sus parámetros.  Que tipo de dato devuelve.
  • 16. 6/07/2020 21:56 16 2. Funciones 2.2. Prototipos void f(); void g(); void h(); void main(){ f(); g(); f(); h(); } void f() {…} void g() {…} void h() {…}
  • 17. 6/07/2020 21:56 17 2. Funciones 2.3. Etapas de tratamiento de datos
  • 18. 6/07/2020 21:56 18 2. Funciones 2.4. Elementos
  • 19. 6/07/2020 21:56 19 2. Funciones 2.4. Elementos
  • 20. 6/07/2020 21:56 20 2. Funciones • En este tema nos centraremos en: o La recepción y validación de entradas. o Los detalles del cuerpo de la función o La preparación y entrega de la salida. 2.4. Elementos
  • 21. 6/07/2020 21:56 21 2. Funciones • Una función realiza transformaciones y cálculos sobre las entradas para generar una salida. • Una vez que se ejecutan todos los pasos necesarios la salida es “devuelta” a quien invocó a la función. • La devolución de la salida implica el termino de la función • Una vez devuelto el resultado, el programa sigue su ejecución justo después de la invocación. 2.4.1. Salida de una función 2.4. Elementos
  • 22. 6/07/2020 21:56 22 2. Funciones • Una función debe definir el tipo de dato que devuelve o int o double o char o void o etc. • El valor que devuelva debe ser consecuente con el tipo de dato especificado. 2.4.1. Salida de una función 2.4. Elementos
  • 23. 6/07/2020 21:56 23 2. Funciones 2.4.1. Salida de una función a) Instrucción return. Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return. • “return” indica que ha llego el momento de entregar la salida al invocador: o Es necesario entregar el valor a devolver. o Implica el termino de la función. 2.4. Elementos
  • 24. 6/07/2020 21:56 24 return suma; return 0; return contador>1; return suma-4; return (a = = b); a) Instrucción return. Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return. • “return” indica que ha llego el momento de entregar la salida al invocador: o Es necesario entregar el valor a devolver. o Implica el termino de la función. 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 25. 6/07/2020 21:56 25 double pi(){ return 3.1415; } void main(){ … printf( “El valor de pi es %fn” , pi() ); … } a) Instrucción return. Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return. • “return” indica que ha llego el momento de entregar la salida al invocador: o Es necesario entregar el valor a devolver. o Implica el termino de la función. 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 26. 6/07/2020 21:56 26 a) Instrucción return. void main(){ … printf( “El valor de pi es %fn” , pi() ); … } 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 27. 6/07/2020 21:56 27 a) Instrucción return. La instrucción return debe entregar un valor acorde al tipo especificado en la declaración y además, indica el termino de la función. Una vez invocado, no se ejecutan mas instrucciones de la función. ¿Tiene sentido entonces definir instrucciones después de ella? int leerNumero() { int n=0; n=20; return n; printf(“ok”); } int leerNumero() { int n=0; n=20; printf(“ok”); return n; } Nunca se ejecuta 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 28. 6/07/2020 21:56 28 a) Instrucción return. Ejemplo 1. int leerPositivo() { int n=0; n=3; if(n>0) return n; } ¿Y si n<=0? int leerPositivo() { int n=0; n=3; if(n>0) return n; else{ printf(“error”); return 0; } } 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 29. 6/07/2020 21:56 29 b) Instrucción de retorno “void”. Si la función especifica un tipo de retorno “void” puede utilizar a “return” sin especificar un valor. • Sirve para terminar la ejecución de una función. • Si no se utiliza ningún “return”, la función termina con el cierre de llave. void escribirMucho(){ int i=0; for ( i=0; ; i=i*2) { printf( “%d-” , i ); if ( i%7 == 0 ) return; } } 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 30. 6/07/2020 21:56 30 c) Instrucción de retorno en la función “main”. Si la función main se define como void, return termina la aplicación. • “main” se puede definir con retorno de datos entera • El sistema operativa interpreta este valor como “ejecutado con éxito”, “termino forzoso” u otro. • Altamente dependiente del sistema operativo. 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 31. 6/07/2020 21:56 31 c) Instrucción de retorno en la función “main”. Si la función main se define como void, return termina la aplicación. int main(){ double i1=0, i2=0; i1 = leerInteres(); if (i1==0) return 0; i2 = leerInteres(); if (i1==0) return 0; printf(“Intereses: %f y %f”, i1 , i2); return 1; } 2. Funciones 2.4.1. Salida de una función 2.4. Elementos
  • 32. 6/07/2020 21:56 32 2.4.2. Cuerpo de una función • El cuerpo de una función es un conjunto de instrucciones a) Se pueden definir variables locales o Estas variables solo son visibles dentro de la función. o La función no puede afectar cosas fuera de ella. o Los nombres de variables debe ser únicos solo dentro de ella. b) Variables globales o Son variables definidas fuera de toda función. o Cualquiera las puede leer y modificar. o Deben ser únicas a través de todo el programa. o Las variable globales podrían sustituir la entrada y la salida! 2. Funciones 2.4. Elementos
  • 33. 6/07/2020 21:56 33 int x; void f(){ int y; x=1; } void g(){ int z; y=z; } void h(){ int w; w=x; } Y no es accesible desde aqui X es accesible desde cualquier función 2.4.2. Cuerpo de una función 2. Funciones 2.4. Elementos
  • 34. 6/07/2020 21:56 34 #include <stdio.h> /* printf */ #include <math.h> /* sqrt */ int n1,n2; double pa, pg; void promedios(){ pa = (n1+n2)/2; pg = sqrt(n1*n2); } int main(){ n1=80; n2=30; promedios(); printf("promedios: %.0f-%.0fn",pa,pg); return 0; } Permite que la función entregue más de un valor 2.4.2. Cuerpo de una función 2. Funciones 2.4. Elementos
  • 35. 6/07/2020 21:56 35 2.4.3. Entrada a una función • Las entradas de una función se definen en forma de parámetros. • Los parámetros se definen por un nombre y un tipo. • Actúan como variables locales de la función. • Definen la forma en que la función debe ser invocada. 2. Funciones 2.4. Elementos
  • 36. 6/07/2020 21:56 36 int main(){ f(1, 1.0, '1'); f(0); f(12.5, 12.5, "a"); f("a", 12, 12.5); } 2.4.3. Entrada a una función 2. Funciones 2.4. Elementos
  • 37. 6/07/2020 21:56 37 #include<stdio.h> void mostrarLinea( char c, int n){ int i; for(i=0;i<n;i++) printf("%c",c); printf("n"); } void mostrarPorcentaje(double porc ){ printf("%.2f%%n",100*porc); } void main(){ mostrarLinea('*',6); mostrarPorcentaje(0.12345); mostrarLinea('*',6); } Ejemplo 1. Llamada a funciones 2.4.3. Entrada a una función 2. Funciones 2.4. Elementos
  • 38. 6/07/2020 21:56 38 #include<stdio.h> void mostrarLinea( char c, int n){ int i; for(i=0;i<n;i++) printf("%c",c); printf("n"); } void mostrarPorcentaje( double porc ){ printf("%.2f%%n",100*porc); } Ejemplo 2. Inclusión de funciones void mostrarPorcentajeYLineas( double porc , char c , int n ) { mostrarLinea(c , n); mostrarPorcentaje( porc ); mostrarLinea(c , n); } void main(){ mostrarPorcentajeYLineas( 0.89766, '*‘ , 6); } 2.4.3. Entrada a una función 2. Funciones 2.4. Elementos
  • 39. 6/07/2020 21:56 39 Referencias • DEITEL, Harvey M.; DEITEL, Paul J. Cómo programar en C+. Pearson Educación, novena edición, 2014. • JOYANES AGUILAR, Luis; SANCHEZ GARCIA, LUCAS. Programación en C++: un enfoque práctico. 2006.