Funciones en Lenguaje C

38
FUNCIONES: Las Subrutinas de Lenguaje C Prof. Jaime Romero

description

Usoi

Transcript of Funciones en Lenguaje C

Page 1: Funciones en Lenguaje C

FUNCIONES: Las Subrutinas de Lenguaje C

Prof. Jaime Romero

Page 2: Funciones en Lenguaje C

S U B R U T I N A S

Una subrutina es una porción de código que forma parte de un programa

más grande.

Esa porción de código realiza una tarea específica, relativamente

independiente del resto del código.

La mayoría de los lenguajes de programación soportan la creación de

subrutinas y métodos para llamarlas (invocarlas) y retornarlas.

Page 3: Funciones en Lenguaje C

S U B R U T I N A S

Existen varias ventajas de "romper" un programa en subrutinas:

• Reducción de código duplicado.

• Permite el reuso de código en múltiples programas.

• Descomposición de problemas complejos en simples piezas (lo

que aumenta la mantenibilidad y extensibilidad).

• Aumenta la legibilidad del código de un programa..

Page 4: Funciones en Lenguaje C

S U B R U T I N A S

Muchos lenguajes de programación distinguen distintas subrutinas. Por

ejemplo, el lenguaje Pascal distingue entre la subrutina Procedimiento y

la subrutina Función. En cambio existen otros lenguajes que los tratan

como sinónimos.

En lenguaje C existe sólo un tipo de Subrutina: Las Funciones, aunque

dependiendo del tipo de valor que estas retornen pueden ser utilizada

tanto como procedimientos, o como funciones.

Page 5: Funciones en Lenguaje C

S U B R U T I N A S

PROCEDIMIENTOS.

Son subrutinas que realizan un trabajo, pero que no retornan

ningún valor en su estructura.

FUNCIONES.

Son subrutinas que realizan un trabajo, y que retornan un valor en

su estructura.

Page 6: Funciones en Lenguaje C

F U N C I O N E S

El lenguaje de programación C, es un lenguaje modularizado por

excelencia.

La modularización, es una 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,

concentrándose en la solución por separado, de cada uno de ellos.

Page 7: Funciones en Lenguaje C

F U N C I O N E S

La sintaxis de una función es la siguiente:

Tipo_de_datos nombre_de_la_funcion (tipo y nombre de argumentos)

{

acciones o comandos;

}

donde:

Tipo_de_datos: 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, en

este caso la función trabajo como un Procedimiento).

Page 8: Funciones en Lenguaje C

F U N C I O N E S

La sintaxis de una función es la siguiente:

Tipo_de_datos nombre_de_la_funcion (tipo y nombre de argumentos)

{

acciones o comandos;

}

donde:

Nombre_de_la_funcion: Es el identificador que le damos a nuestra

función, la cual debe cumplir las reglas de los identificadores.

Page 9: Funciones en Lenguaje C

F U N C I O N E S

La sintaxis de una función es la siguiente:

Tipo_de_datos nombre_de_la_funcion (tipo y nombre de argumentos)

{

acciones o comandos;

}

donde:

Tipo y nombre de 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.

Page 10: Funciones en Lenguaje C

F U N C I O N E S

La sintaxis de una función es la siguiente:

Tipo_de_datos nombre_de_la_funcion (tipo y nombre de argumentos)

{

acciones o comandos;

}

donde:

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, entre otros.

Page 11: Funciones en Lenguaje C

F U N C I O N E S

En las funciones juegan un papel muy importe las variables, ya que como

se ha dicho estas pueden ser locales o globales.

Variables Globales: Estas se crean durante toda la ejecución del

programa, y son globales, ya que pueden ser llamadas, leídas,

modificadas, etc; desde cualquier función. Se definen antes del main().

Variables Locales: Estas, pueden ser utilizadas únicamente en la función

que hayan sido declaradas.

Page 12: Funciones en Lenguaje C

F U N C I O N E S

#include <librería>

int x,y,z

aaaa( ){ int var1, var2, var 3; Acciones;Return();}

Main (){ int var4, var5;}

Variables Locales: sólo funcionan dentro de la función donde son declaradas, y se destruyen cuando se sale de ella

Variables Locales de la Función Main: sólo funcionan dentro de la función Main, y se destruyen cuando se sale de ella

Variables Globales: funcionan dentro de todas las funciones del programa.

Page 13: Funciones en Lenguaje C

Argumentos o Parámetros

Un Parámetro, también conocido como argumento de una función es una

variable, o un valor que se le “pasa” a la función para que esta los utilice

para sus trabajo, pudiendo incluso cambiar sus valores.

Un parámetro es ese valor que le damos a la función para que realice su

trabajo, aunque pueden existir funciones a las cuales no se les pasa

ningún parámetro.

Page 14: Funciones en Lenguaje C

Argumentos o Parámetros

Existen dos tipos de paso de parámetros:

Parámetros por Valor: Aquí solo se pasa a la función el valor de las

variables o los literales que le enviamos como parámetros, en

consecuencia la función NO puede cambiar el valor de las variables.

Parámetros por Referencia: Aquí se pasa a la función tanto el valor de las

variables, como su dirección de estas en la memoria, por lo cual la la

función puede cambiar el valor de las variables.

Si la variable es global, la función SIEMPRE puede modificar su valor

Page 15: Funciones en Lenguaje C

Llamadas a una Función

Una función puede ser llamada o invocada a través de los siguiente

métodos:

Por una asignación: variable = función();

Por una impresión: printf(“%d”, función());

Por una condición: if (funcion()==0)

switch (funcion())

o cualquier tipo de condición lógica.

Page 16: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Al iniciar un programa en Lenguaje C, siempre automáticamente se busca la función inicial, es decir, la función MAIN, y se comienza a ejecutar

Page 17: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Se crean cuatro variables globales de tipo entero

num1num2num3may

num1 num2 num3 may

Page 18: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Se lee el primer valor, y éste es almacenado en la variable num1. Supongamos que el usuario introduce el numero 5

Num1

5

num2 num3 may

Page 19: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Se lee el segundo valor, y éste es almacenado en la variable num2. Supongamos que el usuario introduce el numero 3

Num1

5

num2

3

num3 may

Page 20: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Se lee el tercer valor, y éste es almacenado en la variable num3. Supongamos que el usuario introduce el numero 8

Num1

5

num2

3

num3

8

may

Page 21: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Como en toda asignación, primero se evalúa lo que se encuentra a la derecha de l símbolo igual (=)

Num1

5

num2

3

num3

8

may

Page 22: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Aquí se encuentra que se llama a una función denominada mayor

Num1

5

num2

3

num3

8

may

Page 23: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

El sistema operativo marca esta línea como el lugar desde donde se llama a una función, y esta dirección de memoria se almacena den una estructura denominada stack o pila

15

Pila

15

Num1

5

num2

3

num3

8

may

Page 24: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Se crean temporalmente los parámetros de la función y se copian el valor de los parámetros de la llamada en los parámetros de la función,

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

según el orden en que estos son invocados

Page 25: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

La ejecución del programa, se traslada de inmediato a la primera línea de la función

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

Page 26: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Se crea una variable local de nombre m, y se le asigna el valor cero (0).

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

m

0

Page 27: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Si el valor de la variable a es mayor que los valores de las variable b, c; entonces a la variable m se le asigna el valor de la variable a.Como esta condición no se cumple, no se realiza ninguna acción.

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

m

0

Page 28: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Si el valor de la variable b es mayor que los valores de las variable a, c; entonces a la variable m se le asigna el valor de la variable b.Como esta condición no se cumple, no se realiza ninguna acción.

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

m

0

Page 29: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Si el valor de la variable c es mayor que los valores de las variable a, b; entonces a la variable m se le asigna el valor de la variable c.Como esta condición SI se cumple, se realiza esa acción

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

m

8

Page 30: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

El comando RETURN hace que la función Retorne o devuelva el valor indicado, en este caso el valor de la variable m, es decir, 8.

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

m

8

Page 31: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Al encontrarse el fin de la función primero se destruyen los parámetros y variables locales.Luego el flujo del programa vuelve a la línea que indica la última dirección almacenada en la pila, en este caso 15

15

Num1

5

num2

3

num3

8

may

Pila

15a

5

b

3

c

8

m

8

Page 32: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Aquí se cambia el nombre de la función y sus parámetros, por el valor que esta ha devuelto, en este caso 8.Luego se asigna el valor a la variable may

Num1

5

num2

3

num3

8

may

8

Page 33: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Si el valor de la variable may es cero, se escribe que los numero son iguales, en este caso la condición no se cumple y por lo tanto no se realiza la acción de escribir, y se pasa el flujo del programa al ELSE

Num1

5

num2

3

num3

8

may

8

Page 34: Funciones en Lenguaje C

El siguiente programa utiliza una función para encontrar el mayor de tres numeros positivos, o retornar cero (0) si son iguales.

#include <stdio.h>

int mayor(int a, int b, int c){ int m=0; if ((a>b)&&(a>c)) m=a; if ((b>a)&&(b>c)) m=b; if ((c>a)&&(c>b)) m=c; return (m);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

¿Cómo se ejecuta una Función?

Ya en el ELSE se escribe el mensaje “El Mayor es:” y el valor de la variable may, es decir 8.

Indicando que el mayor de 5,3,8 es el 8, lo cual es verdad, y por lo tanto el programa cumple con su objetivo

Num1

5

num2

3

num3

8

may

8

Page 35: Funciones en Lenguaje C

Explica como funciona el siguiente programa cuando los datos de entrada son 30, 25,10

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

Ejercicio

Page 36: Funciones en Lenguaje C

Explica como funciona el siguiente programa cuando los datos de entrada son 5, 45,6

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

Ejercicio

Page 37: Funciones en Lenguaje C

Explica como funciona el siguiente programa cuando los datos de entrada son 5, 5, 5

#include <stdio.h>

int mayor(int a, int b, int c){ int mayor=0; if ((a>b)&&(a>c)) mayor=a; if ((b>a)&&(b>c)) mayor=b; if ((c>a)&&(c>b)) mayor=c; return (mayor);}void main(){ int num1, num2, num3,may; printf(“\n\nIngrese el primer valor:”); scanf(“%d”,&num1); printf(“\n\nIngrese el segundo valor:”); scanf(“%d”,&num2); printf(“\n\nIngrese el tercer valor:”); scanf(“%d”,&num3); may = mayor(num1, num2,num3); if (may==0){ printf(“Los Numeros son iguales”);} else{ printf(“El Mayor es: %d”,may);}}

Ejercicio

Page 38: Funciones en Lenguaje C

1. Realice un programa que a través de una función calcule la media de tres números.

2. Realice un programa que a través de una función día el nombre del día de la semana en función de un numero entero dado, y que también pueda indicar si el numero esta fuera del rango de los días de la semana.

3. Realice un programa que a través de funciones indique que tipo de triangulo se trata en función de triangulo es en base de la longitudes de sus lados, en los siguientes casos. Suponiendo que A determina el mayor de los tres lados y B y C corresponden con los otros dos, entonces:

Si A>=B + C No se trata de un triánguloSi A2 = B2 + C2 Es un triángulo rectángulo

Si A2 > B2 + C2 Es un triángulo obtusánguloSi A2 < B2 + C2 Es un triángulo acutángulo

Ejercicio