SlideShare a Scribd company logo
1 of 23
Download to read offline
Lenguaje de Programación I
          (L101)
       Sesión: 6 y 7
    Funciones y variables
      Ing. José C. Benítez P.
Sesión 6 y 7. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   2
Sesión 6 y 7. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   3
Funciones. Concepto

     Las funciones son bloques de código utilizados para
     dividir un programa en partes más pequeñas, cada
     una de las cuáles tendrá una tarea determinada.
     Las funciones pueden ser llamadas desde la función
     main o desde otras funciones.
     Nunca se debe llamar a la función main desde otro
     lugar del programa.

     Los argumentos de la función y sus variables locales
     se destruirán al finalizar la ejecución de la misma.


                    Programación - Prof. Ing. Jose C. Benitez P.   4
Sesión 6 y 7. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   5
Funciones. Sintaxis

     tipo_función nombre_función ( tipo y nombre de argumentos )
     {
        bloque de sentencias ;
     }

   tipo_función:
      Puede ser de cualquier tipo: char, int , float, etc..
      El valor devuelto por la función será de este tipo.
      Por defecto, es decir, si no indicamos el tipo, la función
      devolverá un valor de tipo entero ( int ).
      Si queremos que no retorne ningún valor deberemos
      indicar el tipo vacío ( void ).
   nombre_función:
      Es el nombre que le daremos a la función.
                       Programación - Prof. Ing. Jose C. Benitez P.   6
Funciones. Sintaxis

     tipo_función nombre_función ( tipo y nombre de argumentos )
     {
        bloque de sentencias ;
     }

  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.
  bloque de sentencias:
     Es el conjunto de sentencias que serán ejecutadas cuando
     se realice la llamada a la función.
                       Programación - Prof. Ing. Jose C. Benitez P.   7
Sesión 6 y 7. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   8
Funciones. Declaración.
     Al igual que las variables, las funciones también deben
     ser declaradas.
     Esto es lo que se conoce como prototipo de una
     función.
     Para que un programa en C sea compatible entre
     distintos compiladores es imprescindible escribir los
     prototipos de las funciones.

     Los prototipos de las funciones pueden escribirse
     antes de la función main o bién en otro archivo.
     En este último caso le indicaremos al compilador
     mediante la directiva #include.

                    Programación - Prof. Ing. Jose C. Benitez P.   9
Funciones. Declaración. Ejemplo.
  En el ejemplo vemos la declaración de una
                                                                          Archivo: funcion2.c
  función imprime ( prototipo ).
  Al no recibir ni retornar ningún valor, está                            /* Declaración de funciones. */
  declarada como void en ambos lados.                                     #include <stdio.h>

  También vemos que existe una variable global                            void imprime(void); /* prototipo */

  llamada num.                                                            int num=5; /* variable global */
  Esta variable es reconocible en todas las
                                                                          main() /* Escribe dos números */
  funciones del programa.                                                 {
  Y en la función main encontramos una variable                             int num=10; /* variable local */
                                                                            printf("%dn",num);
  local llamada num.                                                        imprime(); /* llamada */
  Al ser una variable local, ésta tendrá preferencia                      }
  sobre la global.                                                        void imprime(void)
                                                                          {
                                                                            printf("%dn",num);
  Por tanto la función escribirá los números 10 y 5.                      }



                           Programación - Prof. Ing. Jose C. Benitez P.                                  10
Sesión 6 y 7. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   11
Instrucción return
   Como ya hemos visto, las funciones pueden retornar
   un valor.                                                             Archivo: funcion3.c
   Esto se hace mediante la instrucción return, que
   finaliza la ejecución de la función, devolviendo o no un              /* Paso de parámetros. */
   valor.
                                                                         #include <stdio.h>
                                                                         int suma(int,int); /* prototipo */
   En una misma función podemos tener más de una                         main() /* Realiza una suma */
   instrucción return.                                                   {
                                                                            int a=10,b=25,t;
   La forma de retornar un valor es la siguiente:                           t=suma(a,b); /* guardamos el valor */
        return ( valor o expresión );                                       printf("%d=%d",suma(a,b),t);
   El valor devuelto por la función debe asignarse a una                    suma(a,b); /* el valor se pierde */
   variable. De lo contrario, el valor se perderá.                       }
                                                                         int suma(int a,int b)
                                                                         {
   En el ejemplo se puede ver lo que ocurre si no                           return (a+b);
   guardamos el valor en una variable.                                   }


Nota.
  A la hora de mostrar el resultado de la suma, en el
  printf, también podemos llamar a la función.
                               Programación - Prof. Ing. Jose C. Benitez P.                                 12
Sesión 6 y 7. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   13
Paso de parámetros

                                                                              Archivo: funcion4.c
Existen dos formas de enviar parámetros a una función:
Por valor:                                                                    /* Paso por valor. */
      Cualquier cambio que se realice dentro de la
      función en el argumento enviado, NO afectará al                         #include <stdio.h>
                                                                              void intercambio(int, int); /* prototipo */
      valor original de las variables utilizadas en la                        main() /* Intercambio de valores */
      llamada.                                                                {
      Es como si trabajaramos con una copia, no con el                            int a=1,b=2;
                                                                                  printf("a=%d y b=%d",a,b);
      original.                                                                   intercambio(a,b); /* llamada */
      No es posible enviar por valor arrays, deberemos                            printf("a=%d y b=%d",a,b);
      hacerlo por referencia.                                                 }
Por referencia:                                                               void intercambio (int x, int y)
                                                                               {
      Lo que hacemos es enviar a la función la dirección                         int aux;
      de memoria donde se encuentra la variable o dato.                          aux=x;
      Cualquier modificación SI afectará a las variables                         x=y;
                                                                                 y=aux;
      utilizadas en la llamada.                                                  printf("a=%d y b=%d",x,y);
      Trabajamos directamente con el original.                                }


                               Programación - Prof. Ing. Jose C. Benitez P.                                      14
Paso de parámetros
Para enviar un valor por referencia se utiliza el símbolo
& ( ampersand ) delante de la variable enviada.                               Archivo: funcion5.c

Esto le indica al compilador que la función que se                            /* Paso por referencia. */
ejecutará tendrá que obtener la dirección de memoria
en que se encuentra la variable.                                              #include <stdio.h>
                                                                              void intercambio(int *, int *);
                                                                              main() /* Intercambio de valores */
En el ejemplo anterior podrás comprobar que antes y                           {
después de la llamada, las variables mantienen su                               int a=1,b=2;
valor. Solamente se modifica en la función intercambio                          printf("a=%d y b=%d",a,b);
                                                                                intercambio(&a,&b); /* llamada */
( paso por valor ).                                                             printf("a=%d y b=%d",a,b);
                                                                              }
En el siguiente ejemplo podrás ver como las variables                         void intercambio (int *x, int *y)
                                                                              {
intercambian su valor tras la llamada de la función                             int aux;
( paso por referencia ).                                                        aux=*x;
                                                                                *x=*y;
Las variables con un * son conocidas como punteros,                             *y=aux;
                                                                                printf("a=%d y b=%d",*x,*y);
el único dato en C que pueden almacenar es una                                }
dirección de memoria.
                               Programación - Prof. Ing. Jose C. Benitez P.                                  15
Paso de parámetros

 Hemos visto que las funciones pueden recibir
 argumentos.
                                                                   Archivo: funcion6.c
 La función main también puede recibir
 argumentos, en este caso desde el exterior.                       /* Argumentos de la función main. */

 Los argumentos que puede recibir son:                             #include <stdio.h>
 argc: es un contador. Su valor es igual al número de              main(int argc, char *argv[]) /* argumentos */
 argumentos escritos en la línea de comandos,                      {
                                                                     printf("nCurso de Programación en C –
 contando el nombre del programa que es el primer                    Copyright (c) 2012, José C. Benítez P.n");
 argumento.                                                          printf("Programa de ejemplo.nn");
 argv: es un puntero a un array de cadenas de                        if (argc<2) {
 caracteres que contiene los argumentos, uno por                         printf("Teclee: funcion6 su_nombre");
                                                                         exit(1); /* fin */
 cadena.                                                              }
 En este ejemplo vamos a ver un pequeño programa                     printf("Hola %s",argv[1]); /*Solo el 2do argv*/
 que escribirá un saludo por pantalla.                             }

 El programa FUNCION6.EXE.

                             Programación - Prof. Ing. Jose C. Benitez P.                                  16
Llamadas a funciones con arrays
Llamadas a funciones con arrays
                                                                         Archivo: arrays3.c
   Los arrays únicamente pueden ser enviados a
   una función por referencia.                                           /* Envío de un array a una función. */
   Para ello deberemos enviar la dirección de
   memoria del primer elemento del array.                                #include <stdio.h>
                                                                         void visualizar(int []); /* prototipo */
   Por tanto, el argumento de la función deberá ser                      main() /* rellenamos y visualizamos */
   un puntero.                                                           {
                                                                           int array[25],i;
En el ejemplo se puede apreciar la forma de enviar                         for (i=0;i<25;i++) {
                                                                             printf("Elemento nº %d",i+1);
un array por referencia.                                                     scanf("%d",&array[i]);
                                                                           }
La función se podía haber declarado de otra manera,                        visualizar(&array[0]);
                                                                         }
aunque funciona exactamente igual:                                       void visualizar(int array[]) /* desarrollo */
                                                                         {
declaración o prototipo void visualizar(int *);                            int i;
desarrollo de la función void visualizar(int *array);                      for (i=0;i<25;i++) printf("%d",array[i]);
                                                                         }
llamada de la función visualizar(array):

                               Programación - Prof. Ing. Jose C. Benitez P.                                    17
Sesión 5. Temas

          Funciones
            Concepto
            Sintaxis de una función
            Declaración de funciones
            Instrucción return
            Paso de parámetros a una función
            Variables globales y locales




                  Programación - Prof. Ing. Jose C. Benitez P.   18
Variables globales y locales

      Según el lugar donde son declaradas puede haber
      dos tipos de variables.
         Globales: las variables permanecen activas
         durante todo el programa. Se crean al iniciarse
         éste y se destruyen de la memoria al finalizar.
         Pueden ser utilizadas en cualquier función.
         Locales: las variables son creadas cuando el
         programa llega a la función en la que están
         definidas. Al finalizar la función desaparecen de
         la memoria.


                     Programación - Prof. Ing. Jose C. Benitez P.   19
Variables globales y locales

                                                                     /* Variables globales y locales. */

                                                                     #include <stdio.h>
Si dos variables, una global y una local,                            int num1=1; /* variable global */
                                                                     main() /* Escribe dos cifras */
tienen el mismo nombre, la local prevalecerá                         {
                                                                       int num2=10; /* variable local */
sobre la global dentro de la función en que                            printf("%dn",num1);
ha sido declarada.                                                     printf("%dn",num2);
                                                                     }
Dos variables locales pueden tener el mismo
                                                                     /* Variables globales y locales. */
nombre siempre que estén declaradas en
                                                                     #include <stdio.h>
funciones diferentes.                                                int num1=1; /* variable global */
                                                                     main() /* Escribe dos cifras */
                                                                     {
                                                                       int num1=10; /* vaiable local */
                                                                       printf("%dn",num1);
                                                                       printf("%dn",num1);
                                                                     }


                      Programación - Prof. Ing. Jose C. Benitez P.                             20
Tarea (T6 y 7)
     Hacer un programa en C utilizando funciones .
     1. Mostrar la tabla del numero x del 1 al 24.
         Consola debe mostrar:
         Ingrese x:
         Tabla del 1 al 24 de x:
     2. Llenar la matriz de m x n.
         Consola debe mostrar:
         Ingrese m:
         Ingrese n:
         Ingrese los datos de la matriz m x n:
         Matriz de m x n:
     3. Ordena un arreglo de x números flotantes.
         Consola debe mostrar:
         Ingrese x:
         Ingrese los datos de la matriz x flotantes:
         x numeros flotantes ingresados:
         x numeros flotantes ordenados:
     4. Dado un arreglo de los Países de Latinoamérica y su población, las
         ordene por su primera letra y muestre además su población.
                        Programación - Prof. Ing. Jose C. Benitez P.         21
Presentación
   Todos los códigos fuentes deben ser presentados en un
   solo archivo de texto, cuyo nombre lleve las iniciales del
   curso, sus Apellidos, guion bajo y luego el numero de la
   tarea. Ejemplo:
                LPI_BenitezPalacios_T67.txt
   Los códigos deben estar comentados bloque a bloque.
   La presentación de esta Tarea es obligatoria y tiene 03
   puntos de bonificación en la Tercera Practica Calificada.
   Plazo de entrega: Martes 27/11/12
              Las Tareas que no cumplan las
                  indicaciones no serán
              recepcionados por el profesor.

                   Programación - Prof. Ing. Jose C. Benitez P.   22
Sesión 6 y 7. Funciones y variables

       Lenguaje de Programación I




           http://utplpi.blogspot.com
               Programación - Prof. Ing. Jose C. Benitez P.   23

More Related Content

What's hot

ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++GabrielFVilla15
 
Estructura de-un-programa-en-lenguaje-c.
Estructura de-un-programa-en-lenguaje-c.Estructura de-un-programa-en-lenguaje-c.
Estructura de-un-programa-en-lenguaje-c.itzel-patricia05
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacioncharnisch
 
Utp lpi_s2y3_elementos del lenguaje c nuevo
 Utp lpi_s2y3_elementos del lenguaje c nuevo Utp lpi_s2y3_elementos del lenguaje c nuevo
Utp lpi_s2y3_elementos del lenguaje c nuevojcbenitezp
 
Estructura hoja resumen
Estructura hoja resumenEstructura hoja resumen
Estructura hoja resumenniurkamv
 
Estructura de un rograma
Estructura de un rogramaEstructura de un rograma
Estructura de un rogramaivanjvic
 
Estructuras básicas para C++
Estructuras básicas para C++Estructuras básicas para C++
Estructuras básicas para C++Bryangio2002
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1joeshego
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++Nana Garces
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++Andy Otañez
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasmezano09
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasmezano09
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Facebook
 

What's hot (19)

Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Estructura de-un-programa-en-lenguaje-c.
Estructura de-un-programa-en-lenguaje-c.Estructura de-un-programa-en-lenguaje-c.
Estructura de-un-programa-en-lenguaje-c.
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
 
Utp lpi_s2y3_elementos del lenguaje c nuevo
 Utp lpi_s2y3_elementos del lenguaje c nuevo Utp lpi_s2y3_elementos del lenguaje c nuevo
Utp lpi_s2y3_elementos del lenguaje c nuevo
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Estructura hoja resumen
Estructura hoja resumenEstructura hoja resumen
Estructura hoja resumen
 
Estructura de un rograma
Estructura de un rogramaEstructura de un rograma
Estructura de un rograma
 
Estructuras básicas para C++
Estructuras básicas para C++Estructuras básicas para C++
Estructuras básicas para C++
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 

Viewers also liked

Utp sirn_s1_introduccion ia 2014-2
 Utp sirn_s1_introduccion ia 2014-2 Utp sirn_s1_introduccion ia 2014-2
Utp sirn_s1_introduccion ia 2014-2jcbenitezp
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje clocke23
 
Utp 2015-2_sirn_s7_r_competitivas
 Utp 2015-2_sirn_s7_r_competitivas Utp 2015-2_sirn_s7_r_competitivas
Utp 2015-2_sirn_s7_r_competitivasjcbenitezp
 
Utp i_ay_se_sistemas difusos i 2013-3
 Utp i_ay_se_sistemas difusos i 2013-3 Utp i_ay_se_sistemas difusos i 2013-3
Utp i_ay_se_sistemas difusos i 2013-3jcbenitezp
 
Presentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaPresentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaCarlos Pes
 
Utp sirn_sl8 sistemas difusos i 2013-3
 Utp sirn_sl8 sistemas difusos i 2013-3 Utp sirn_sl8 sistemas difusos i 2013-3
Utp sirn_sl8 sistemas difusos i 2013-3jcbenitezp
 
Utp ia_s1_introduccion ia
 Utp ia_s1_introduccion ia Utp ia_s1_introduccion ia
Utp ia_s1_introduccion iajcbenitezp
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoriasirfids
 
Medios,modelos y estilos de aprendizaje jaime romero
Medios,modelos y estilos de aprendizaje jaime romeroMedios,modelos y estilos de aprendizaje jaime romero
Medios,modelos y estilos de aprendizaje jaime romeroJaime David Romero Olivo
 
Lenguaje C para Administradores de Red - Script I
Lenguaje C para Administradores de Red - Script ILenguaje C para Administradores de Red - Script I
Lenguaje C para Administradores de Red - Script Isirfids
 
Utp 2015-2_sirn_s6_adaline y backpropagation
 Utp 2015-2_sirn_s6_adaline y backpropagation Utp 2015-2_sirn_s6_adaline y backpropagation
Utp 2015-2_sirn_s6_adaline y backpropagationjcbenitezp
 
Generalidades del SEO
Generalidades del SEOGeneralidades del SEO
Generalidades del SEOCarlos Pes
 
Introducción a los tipos de datos
Introducción a los tipos de datosIntroducción a los tipos de datos
Introducción a los tipos de datosCarlos Pes
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCarlos Pes
 
Utp i_ay_se_s10_algoritmo genéticos_
 Utp i_ay_se_s10_algoritmo genéticos_ Utp i_ay_se_s10_algoritmo genéticos_
Utp i_ay_se_s10_algoritmo genéticos_jcbenitezp
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y EntradaCarlos Pes
 

Viewers also liked (20)

Utp sirn_s1_introduccion ia 2014-2
 Utp sirn_s1_introduccion ia 2014-2 Utp sirn_s1_introduccion ia 2014-2
Utp sirn_s1_introduccion ia 2014-2
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Utp 2015-2_sirn_s7_r_competitivas
 Utp 2015-2_sirn_s7_r_competitivas Utp 2015-2_sirn_s7_r_competitivas
Utp 2015-2_sirn_s7_r_competitivas
 
Utp i_ay_se_sistemas difusos i 2013-3
 Utp i_ay_se_sistemas difusos i 2013-3 Utp i_ay_se_sistemas difusos i 2013-3
Utp i_ay_se_sistemas difusos i 2013-3
 
Curso c
Curso cCurso c
Curso c
 
Presentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaPresentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en Pamplona
 
Utp sirn_sl8 sistemas difusos i 2013-3
 Utp sirn_sl8 sistemas difusos i 2013-3 Utp sirn_sl8 sistemas difusos i 2013-3
Utp sirn_sl8 sistemas difusos i 2013-3
 
Logica Juridica
Logica JuridicaLogica Juridica
Logica Juridica
 
Utp ia_s1_introduccion ia
 Utp ia_s1_introduccion ia Utp ia_s1_introduccion ia
Utp ia_s1_introduccion ia
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoria
 
Medios,modelos y estilos de aprendizaje jaime romero
Medios,modelos y estilos de aprendizaje jaime romeroMedios,modelos y estilos de aprendizaje jaime romero
Medios,modelos y estilos de aprendizaje jaime romero
 
Lenguaje C para Administradores de Red - Script I
Lenguaje C para Administradores de Red - Script ILenguaje C para Administradores de Red - Script I
Lenguaje C para Administradores de Red - Script I
 
Utp 2015-2_sirn_s6_adaline y backpropagation
 Utp 2015-2_sirn_s6_adaline y backpropagation Utp 2015-2_sirn_s6_adaline y backpropagation
Utp 2015-2_sirn_s6_adaline y backpropagation
 
Generalidades del SEO
Generalidades del SEOGeneralidades del SEO
Generalidades del SEO
 
Introducción a los tipos de datos
Introducción a los tipos de datosIntroducción a los tipos de datos
Introducción a los tipos de datos
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujo
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Utp i_ay_se_s10_algoritmo genéticos_
 Utp i_ay_se_s10_algoritmo genéticos_ Utp i_ay_se_s10_algoritmo genéticos_
Utp i_ay_se_s10_algoritmo genéticos_
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
 

Similar to Utp lpi_s6y7_funciones y variables 2012-2 (20)

Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
 
Funciones
FuncionesFunciones
Funciones
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Funciones en C.docx
Funciones en C.docxFunciones en C.docx
Funciones en C.docx
 
A3 u1-16230227
A3 u1-16230227A3 u1-16230227
A3 u1-16230227
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Guía funciones
Guía funcionesGuía funciones
Guía funciones
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
07 funciones
07 funciones07 funciones
07 funciones
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Funciones
FuncionesFunciones
Funciones
 
8448148681
84481486818448148681
8448148681
 
11funciones 1231096290787715-2
11funciones 1231096290787715-211funciones 1231096290787715-2
11funciones 1231096290787715-2
 
Programación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónProgramación modular en Introducción a la Programación
Programación modular en Introducción a la Programación
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Funciones
FuncionesFunciones
Funciones
 
Funciones
FuncionesFunciones
Funciones
 

More from jcbenitezp

Cap4 jc benitez
Cap4 jc benitezCap4 jc benitez
Cap4 jc benitezjcbenitezp
 
Tarea 1 tesis i filosofia y conocimiento
Tarea 1 tesis i filosofia y conocimientoTarea 1 tesis i filosofia y conocimiento
Tarea 1 tesis i filosofia y conocimientojcbenitezp
 
It526 2017 2 ep
It526 2017 2 epIt526 2017 2 ep
It526 2017 2 epjcbenitezp
 
Uni rdsi 2016 1 sesion 13-14 redes moviles 4 g
Uni rdsi 2016 1 sesion 13-14 redes moviles 4 gUni rdsi 2016 1 sesion 13-14 redes moviles 4 g
Uni rdsi 2016 1 sesion 13-14 redes moviles 4 gjcbenitezp
 
Uni rdsi 2016 1 sesion 12 redes moviles 3 g
Uni rdsi 2016 1 sesion 12 redes moviles 3 gUni rdsi 2016 1 sesion 12 redes moviles 3 g
Uni rdsi 2016 1 sesion 12 redes moviles 3 gjcbenitezp
 
It526 2015 2 pc3
It526 2015 2 pc3 It526 2015 2 pc3
It526 2015 2 pc3 jcbenitezp
 
Calendario academico 2015 02 g
Calendario academico 2015   02 gCalendario academico 2015   02 g
Calendario academico 2015 02 gjcbenitezp
 
Db vsa-011 registro de asistencia docente ago2015
Db vsa-011 registro de asistencia docente  ago2015Db vsa-011 registro de asistencia docente  ago2015
Db vsa-011 registro de asistencia docente ago2015jcbenitezp
 
Utp 2015-2_pdi_lab3
 Utp 2015-2_pdi_lab3 Utp 2015-2_pdi_lab3
Utp 2015-2_pdi_lab3jcbenitezp
 
Utp sirn_2015-2 lab3
 Utp sirn_2015-2 lab3 Utp sirn_2015-2 lab3
Utp sirn_2015-2 lab3jcbenitezp
 
Pdi paterno m_lab2c
Pdi paterno m_lab2cPdi paterno m_lab2c
Pdi paterno m_lab2cjcbenitezp
 
Utp 2015-2_sirn_s7_r_competitivas
 Utp 2015-2_sirn_s7_r_competitivas Utp 2015-2_sirn_s7_r_competitivas
Utp 2015-2_sirn_s7_r_competitivasjcbenitezp
 
Utp sirn_s1_introduccion ia 2014-2
 Utp sirn_s1_introduccion ia 2014-2 Utp sirn_s1_introduccion ia 2014-2
Utp sirn_s1_introduccion ia 2014-2jcbenitezp
 
Utp sirn_2014-1 lab1
 Utp sirn_2014-1 lab1 Utp sirn_2014-1 lab1
Utp sirn_2014-1 lab1jcbenitezp
 
Utp sirn_s1_introduccion ia 2014-2
 Utp sirn_s1_introduccion ia 2014-2 Utp sirn_s1_introduccion ia 2014-2
Utp sirn_s1_introduccion ia 2014-2jcbenitezp
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificialjcbenitezp
 
W0 i9 inteligenciaartificial
W0 i9 inteligenciaartificialW0 i9 inteligenciaartificial
W0 i9 inteligenciaartificialjcbenitezp
 
Wi0 a sistemasinteligentesyredesneuronales
Wi0 a sistemasinteligentesyredesneuronalesWi0 a sistemasinteligentesyredesneuronales
Wi0 a sistemasinteligentesyredesneuronalesjcbenitezp
 

More from jcbenitezp (20)

Cap4 jc benitez
Cap4 jc benitezCap4 jc benitez
Cap4 jc benitez
 
Tarea 1 tesis i filosofia y conocimiento
Tarea 1 tesis i filosofia y conocimientoTarea 1 tesis i filosofia y conocimiento
Tarea 1 tesis i filosofia y conocimiento
 
It526 2017 2 ep
It526 2017 2 epIt526 2017 2 ep
It526 2017 2 ep
 
Uni rdsi 2016 1 sesion 13-14 redes moviles 4 g
Uni rdsi 2016 1 sesion 13-14 redes moviles 4 gUni rdsi 2016 1 sesion 13-14 redes moviles 4 g
Uni rdsi 2016 1 sesion 13-14 redes moviles 4 g
 
Uni rdsi 2016 1 sesion 12 redes moviles 3 g
Uni rdsi 2016 1 sesion 12 redes moviles 3 gUni rdsi 2016 1 sesion 12 redes moviles 3 g
Uni rdsi 2016 1 sesion 12 redes moviles 3 g
 
It526 2015 2 pc3
It526 2015 2 pc3 It526 2015 2 pc3
It526 2015 2 pc3
 
Calendario academico 2015 02 g
Calendario academico 2015   02 gCalendario academico 2015   02 g
Calendario academico 2015 02 g
 
Db vsa-011 registro de asistencia docente ago2015
Db vsa-011 registro de asistencia docente  ago2015Db vsa-011 registro de asistencia docente  ago2015
Db vsa-011 registro de asistencia docente ago2015
 
Utp 2015-2_pdi_lab3
 Utp 2015-2_pdi_lab3 Utp 2015-2_pdi_lab3
Utp 2015-2_pdi_lab3
 
Utp sirn_2015-2 lab3
 Utp sirn_2015-2 lab3 Utp sirn_2015-2 lab3
Utp sirn_2015-2 lab3
 
Pdi paterno m_lab2c
Pdi paterno m_lab2cPdi paterno m_lab2c
Pdi paterno m_lab2c
 
Utp 2015-2_sirn_s7_r_competitivas
 Utp 2015-2_sirn_s7_r_competitivas Utp 2015-2_sirn_s7_r_competitivas
Utp 2015-2_sirn_s7_r_competitivas
 
Utp sirn_s1_introduccion ia 2014-2
 Utp sirn_s1_introduccion ia 2014-2 Utp sirn_s1_introduccion ia 2014-2
Utp sirn_s1_introduccion ia 2014-2
 
Utp sirn_2014-1 lab1
 Utp sirn_2014-1 lab1 Utp sirn_2014-1 lab1
Utp sirn_2014-1 lab1
 
Utp sirn_s1_introduccion ia 2014-2
 Utp sirn_s1_introduccion ia 2014-2 Utp sirn_s1_introduccion ia 2014-2
Utp sirn_s1_introduccion ia 2014-2
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
W0 i9 inteligenciaartificial
W0 i9 inteligenciaartificialW0 i9 inteligenciaartificial
W0 i9 inteligenciaartificial
 
Wi0 a sistemasinteligentesyredesneuronales
Wi0 a sistemasinteligentesyredesneuronalesWi0 a sistemasinteligentesyredesneuronales
Wi0 a sistemasinteligentesyredesneuronales
 
4 g
4 g4 g
4 g
 
Article005
Article005Article005
Article005
 

Utp lpi_s6y7_funciones y variables 2012-2

  • 1. Lenguaje de Programación I (L101) Sesión: 6 y 7 Funciones y variables Ing. José C. Benítez P.
  • 2. Sesión 6 y 7. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 2
  • 3. Sesión 6 y 7. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 3
  • 4. Funciones. Concepto Las funciones son bloques de código utilizados para dividir un programa en partes más pequeñas, cada una de las cuáles tendrá una tarea determinada. Las funciones pueden ser llamadas desde la función main o desde otras funciones. Nunca se debe llamar a la función main desde otro lugar del programa. Los argumentos de la función y sus variables locales se destruirán al finalizar la ejecución de la misma. Programación - Prof. Ing. Jose C. Benitez P. 4
  • 5. Sesión 6 y 7. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 5
  • 6. Funciones. Sintaxis tipo_función nombre_función ( tipo y nombre de argumentos ) { bloque de sentencias ; } tipo_función: Puede ser de cualquier tipo: char, int , float, etc.. El valor devuelto por la función será de este tipo. Por defecto, es decir, si no indicamos el tipo, la función devolverá un valor de tipo entero ( int ). Si queremos que no retorne ningún valor deberemos indicar el tipo vacío ( void ). nombre_función: Es el nombre que le daremos a la función. Programación - Prof. Ing. Jose C. Benitez P. 6
  • 7. Funciones. Sintaxis tipo_función nombre_función ( tipo y nombre de argumentos ) { bloque de sentencias ; } 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. bloque de sentencias: Es el conjunto de sentencias que serán ejecutadas cuando se realice la llamada a la función. Programación - Prof. Ing. Jose C. Benitez P. 7
  • 8. Sesión 6 y 7. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 8
  • 9. Funciones. Declaración. Al igual que las variables, las funciones también deben ser declaradas. Esto es lo que se conoce como prototipo de una función. Para que un programa en C sea compatible entre distintos compiladores es imprescindible escribir los prototipos de las funciones. Los prototipos de las funciones pueden escribirse antes de la función main o bién en otro archivo. En este último caso le indicaremos al compilador mediante la directiva #include. Programación - Prof. Ing. Jose C. Benitez P. 9
  • 10. Funciones. Declaración. Ejemplo. En el ejemplo vemos la declaración de una Archivo: funcion2.c función imprime ( prototipo ). Al no recibir ni retornar ningún valor, está /* Declaración de funciones. */ declarada como void en ambos lados. #include <stdio.h> También vemos que existe una variable global void imprime(void); /* prototipo */ llamada num. int num=5; /* variable global */ Esta variable es reconocible en todas las main() /* Escribe dos números */ funciones del programa. { Y en la función main encontramos una variable int num=10; /* variable local */ printf("%dn",num); local llamada num. imprime(); /* llamada */ Al ser una variable local, ésta tendrá preferencia } sobre la global. void imprime(void) { printf("%dn",num); Por tanto la función escribirá los números 10 y 5. } Programación - Prof. Ing. Jose C. Benitez P. 10
  • 11. Sesión 6 y 7. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 11
  • 12. Instrucción return Como ya hemos visto, las funciones pueden retornar un valor. Archivo: funcion3.c Esto se hace mediante la instrucción return, que finaliza la ejecución de la función, devolviendo o no un /* Paso de parámetros. */ valor. #include <stdio.h> int suma(int,int); /* prototipo */ En una misma función podemos tener más de una main() /* Realiza una suma */ instrucción return. { int a=10,b=25,t; La forma de retornar un valor es la siguiente: t=suma(a,b); /* guardamos el valor */ return ( valor o expresión ); printf("%d=%d",suma(a,b),t); El valor devuelto por la función debe asignarse a una suma(a,b); /* el valor se pierde */ variable. De lo contrario, el valor se perderá. } int suma(int a,int b) { En el ejemplo se puede ver lo que ocurre si no return (a+b); guardamos el valor en una variable. } Nota. A la hora de mostrar el resultado de la suma, en el printf, también podemos llamar a la función. Programación - Prof. Ing. Jose C. Benitez P. 12
  • 13. Sesión 6 y 7. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 13
  • 14. Paso de parámetros Archivo: funcion4.c Existen dos formas de enviar parámetros a una función: Por valor: /* Paso por valor. */ Cualquier cambio que se realice dentro de la función en el argumento enviado, NO afectará al #include <stdio.h> void intercambio(int, int); /* prototipo */ valor original de las variables utilizadas en la main() /* Intercambio de valores */ llamada. { Es como si trabajaramos con una copia, no con el int a=1,b=2; printf("a=%d y b=%d",a,b); original. intercambio(a,b); /* llamada */ No es posible enviar por valor arrays, deberemos printf("a=%d y b=%d",a,b); hacerlo por referencia. } Por referencia: void intercambio (int x, int y) { Lo que hacemos es enviar a la función la dirección int aux; de memoria donde se encuentra la variable o dato. aux=x; Cualquier modificación SI afectará a las variables x=y; y=aux; utilizadas en la llamada. printf("a=%d y b=%d",x,y); Trabajamos directamente con el original. } Programación - Prof. Ing. Jose C. Benitez P. 14
  • 15. Paso de parámetros Para enviar un valor por referencia se utiliza el símbolo & ( ampersand ) delante de la variable enviada. Archivo: funcion5.c Esto le indica al compilador que la función que se /* Paso por referencia. */ ejecutará tendrá que obtener la dirección de memoria en que se encuentra la variable. #include <stdio.h> void intercambio(int *, int *); main() /* Intercambio de valores */ En el ejemplo anterior podrás comprobar que antes y { después de la llamada, las variables mantienen su int a=1,b=2; valor. Solamente se modifica en la función intercambio printf("a=%d y b=%d",a,b); intercambio(&a,&b); /* llamada */ ( paso por valor ). printf("a=%d y b=%d",a,b); } En el siguiente ejemplo podrás ver como las variables void intercambio (int *x, int *y) { intercambian su valor tras la llamada de la función int aux; ( paso por referencia ). aux=*x; *x=*y; Las variables con un * son conocidas como punteros, *y=aux; printf("a=%d y b=%d",*x,*y); el único dato en C que pueden almacenar es una } dirección de memoria. Programación - Prof. Ing. Jose C. Benitez P. 15
  • 16. Paso de parámetros Hemos visto que las funciones pueden recibir argumentos. Archivo: funcion6.c La función main también puede recibir argumentos, en este caso desde el exterior. /* Argumentos de la función main. */ Los argumentos que puede recibir son: #include <stdio.h> argc: es un contador. Su valor es igual al número de main(int argc, char *argv[]) /* argumentos */ argumentos escritos en la línea de comandos, { printf("nCurso de Programación en C – contando el nombre del programa que es el primer Copyright (c) 2012, José C. Benítez P.n"); argumento. printf("Programa de ejemplo.nn"); argv: es un puntero a un array de cadenas de if (argc<2) { caracteres que contiene los argumentos, uno por printf("Teclee: funcion6 su_nombre"); exit(1); /* fin */ cadena. } En este ejemplo vamos a ver un pequeño programa printf("Hola %s",argv[1]); /*Solo el 2do argv*/ que escribirá un saludo por pantalla. } El programa FUNCION6.EXE. Programación - Prof. Ing. Jose C. Benitez P. 16
  • 17. Llamadas a funciones con arrays Llamadas a funciones con arrays Archivo: arrays3.c Los arrays únicamente pueden ser enviados a una función por referencia. /* Envío de un array a una función. */ Para ello deberemos enviar la dirección de memoria del primer elemento del array. #include <stdio.h> void visualizar(int []); /* prototipo */ Por tanto, el argumento de la función deberá ser main() /* rellenamos y visualizamos */ un puntero. { int array[25],i; En el ejemplo se puede apreciar la forma de enviar for (i=0;i<25;i++) { printf("Elemento nº %d",i+1); un array por referencia. scanf("%d",&array[i]); } La función se podía haber declarado de otra manera, visualizar(&array[0]); } aunque funciona exactamente igual: void visualizar(int array[]) /* desarrollo */ { declaración o prototipo void visualizar(int *); int i; desarrollo de la función void visualizar(int *array); for (i=0;i<25;i++) printf("%d",array[i]); } llamada de la función visualizar(array): Programación - Prof. Ing. Jose C. Benitez P. 17
  • 18. Sesión 5. Temas Funciones Concepto Sintaxis de una función Declaración de funciones Instrucción return Paso de parámetros a una función Variables globales y locales Programación - Prof. Ing. Jose C. Benitez P. 18
  • 19. Variables globales y locales Según el lugar donde son declaradas puede haber dos tipos de variables. Globales: las variables permanecen activas durante todo el programa. Se crean al iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser utilizadas en cualquier función. Locales: las variables son creadas cuando el programa llega a la función en la que están definidas. Al finalizar la función desaparecen de la memoria. Programación - Prof. Ing. Jose C. Benitez P. 19
  • 20. Variables globales y locales /* Variables globales y locales. */ #include <stdio.h> Si dos variables, una global y una local, int num1=1; /* variable global */ main() /* Escribe dos cifras */ tienen el mismo nombre, la local prevalecerá { int num2=10; /* variable local */ sobre la global dentro de la función en que printf("%dn",num1); ha sido declarada. printf("%dn",num2); } Dos variables locales pueden tener el mismo /* Variables globales y locales. */ nombre siempre que estén declaradas en #include <stdio.h> funciones diferentes. int num1=1; /* variable global */ main() /* Escribe dos cifras */ { int num1=10; /* vaiable local */ printf("%dn",num1); printf("%dn",num1); } Programación - Prof. Ing. Jose C. Benitez P. 20
  • 21. Tarea (T6 y 7) Hacer un programa en C utilizando funciones . 1. Mostrar la tabla del numero x del 1 al 24. Consola debe mostrar: Ingrese x: Tabla del 1 al 24 de x: 2. Llenar la matriz de m x n. Consola debe mostrar: Ingrese m: Ingrese n: Ingrese los datos de la matriz m x n: Matriz de m x n: 3. Ordena un arreglo de x números flotantes. Consola debe mostrar: Ingrese x: Ingrese los datos de la matriz x flotantes: x numeros flotantes ingresados: x numeros flotantes ordenados: 4. Dado un arreglo de los Países de Latinoamérica y su población, las ordene por su primera letra y muestre además su población. Programación - Prof. Ing. Jose C. Benitez P. 21
  • 22. Presentación Todos los códigos fuentes deben ser presentados en un solo archivo de texto, cuyo nombre lleve las iniciales del curso, sus Apellidos, guion bajo y luego el numero de la tarea. Ejemplo: LPI_BenitezPalacios_T67.txt Los códigos deben estar comentados bloque a bloque. La presentación de esta Tarea es obligatoria y tiene 03 puntos de bonificación en la Tercera Practica Calificada. Plazo de entrega: Martes 27/11/12 Las Tareas que no cumplan las indicaciones no serán recepcionados por el profesor. Programación - Prof. Ing. Jose C. Benitez P. 22
  • 23. Sesión 6 y 7. Funciones y variables Lenguaje de Programación I http://utplpi.blogspot.com Programación - Prof. Ing. Jose C. Benitez P. 23