SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
PROGRAMACION II

 MODULO II - FUNDAMENTOS DEL LENGUAJE C

                   LECCION III – BLOQUE DE FUNCIONES



  1.   Concepto
  2.   Estructura
  3.   Declaración de una función
  4.   Referencia a una función
  5.   Tipo de parámetros
  6.   Variables locales
  7.   Funciones estándar de entrada y salida
  8.   Recursión




                                                       TEMA Nº 0 pág. 1/6
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto

  función es una parte de código independiente del programa principal y de
     otras funciones, que puede ser llamada enviándole unos datos (o sin
     enviarle nada), para que realice una determinada tarea y/o proporcione
     unos resultados.
  -Las funciones son una parte muy importante del lenguaje C.
  -Mediante el uso de funciones se consigue un código limpio, claro y elegante.
  -La adecuada división de un programa en funciones constituye un aspecto
     fundamental en el desarrollo de programas de cualquier tipo.
  -Las funciones, ya compiladas, pueden guardarse en librerías.

                Las librerías son conjuntos de
                funciones compiladas, normalmente
                con una finalidad análoga o relacionada,
                que se guardan bajo un determinado
                nombre listas para ser utilizadas por
                cualquier usuario.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Estructura
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
  El paso de parámetros se refiere a la acción de transformar los parámetros formales
  a parámetros reales; es decir, de asignar un contenido a las variables que
  representan a los argumentos:
  tipo funcion_llamada(
           parámetro_formal_1,
           parámetro_formal_2,
  ...
  );
  funcion_llamadora( ... )
  {
  /* ... */
  funcion_llamada( parámetro_real_1, parámetro_real_2, ... )
  /* ... */
  } /* funcion_llamadora */
                                               Hay dos posibilidades: que los argumentos reciban el resultado
                                               de la evaluación de la expresión correspondiente o que se
                                               sustituyan por la variable que se indicó en el parámetro real de
                                               la misma posición. El primer caso, se trata de un paso de
                                               parámetros por valor, mientras que el segundo, se trata de un
                                               paso de variable (cualquier cambio en el argumento es un
                                               cambio en la variable que
                                               consta como parámetro real).
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
  El paso por valor consiste en asignar a la variable del parámetro formal
  correspondiente el valor resultante del parámetro real en su misma posición. El
  paso de variable consiste en sustituir la variable del parámetro real por la del
  parámetro formal correspondiente y, consecuentemente, poder emplearla dentro de
  la misma función con el nombre del parámetro formal.

                 En C, el paso de parámetros sólo se
                 efectúa por valor;

                 es decir, se evalúan todos los parámetros
                 en la llamada y se asigna el resultado al
                 parámetro formal correspondiente
                 en la función.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – variables locales
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Ejemplo


  /* Fichero: simpson.c */                              x = x + dx;
  #include <stdio.h>                                    } /* for */
  #include <math.h>                                     } /* if */
  double f( double x )                                  return result;
                                               } /* integral_f */
  {
          return 1.0/(1.0 + x*x);              void main( void )
  } /* f */                                    {
                                                       double a, b;
  double integral_f( double a, double b, int           int n;
       n)                                              printf( "Integración numérica de f(x).n" );
                                                       printf( "Punto inicial del intervalo, a = ? " );
  {
                                                       scanf( "%lf", &a );
          double result;                               printf( "Punto final del intervalo, b = ? " );
          double x, dx;                                scanf( "%lf", &b );
          int i;                                       printf( "Número de divisiones, n = ? " );
          result = 0.0;                                scanf( "%d", &n );
          if( (a < b) && (n > 0) ) {                   printf(
          x = a;                                       "Resultado, integral(f)[%g,%g] = %gn",
          dx = (b-a)/n;                                a, b, integral_f( a, b, n )
          for( i = 0; i < n; i = i + 1 ) {             ); /* printf */
          result = result + f(x);              } /* main */
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada/salida de datos
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar
  Se ocupan de obtener datos de la entrada estándar que, habitualmente, se trata del teclado.
  Devuelven algún valor adicional que informa del resultado del proceso de lectura. El valor devuelto no
  tiene por qué emplearse si no se necesita, pues muchas veces se conoce que la entrada de datos se
  puede efectuar sin mayor problema.

  scanf( "formato" [, lista_de_&variables ] )

  Para poder depositar los datos leídos en las variables indicadas, esta función requiere que los
  argumentos de la lista de variables sean las direcciones de memoria en las que se encuentran. Por
  este motivo, es necesario emplear el operador “dirección de” (&). De esta manera, scanf deja
  directamente en las zonas de memoria correspondiente la información que haya leído y,
  naturalmente, la variable afectada verá modificado su contenido con el nuevo dato


              scanf( "%d", &num_articulos );                         La función scanf devuelve el
                                                                     número de datos correctamente
                                                                     leídos. Es decir, todos aquellos
                                                                     para los que se ha encontrado
                                                                     algún texto compatible con una
                                                                     representación de su tipo.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar
  getchar( )

  Devuelve un carácter leído por la entrada estándar (habitualmente,
  el buffer del teclado).
  En caso de que no pueda leer ningún carácter, devuelve el carácter
  EOF. Esta constante está definida en stdio.h y, por tanto, puede
  emplearse para determinar si la lectura ha tenido éxito o, por lo contrario,
  se ha producido algún error o se ha llegado al final de los datos
  de entrada.


                        gets( cadena_caracteres )


       Lee de la entrada estándar toda una serie de caracteres hasta
       encontrar un final de línea (carácter 'n'). Este último carácter es
       leído pero no se almacena en la cadena de caracteres que tiene
       por argumento.
       De no leer nada devuelve NULL, que es una constante definida en
       stdio.h y cuyo valor es 0.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar

  La salida estándar es el lugar donde se muestran los datos producidos
  (mensajes, resultados, etcétera) por el programa que se encuentra en
  ejecución. Normalmente, esta salida es la pantalla del ordenador o
  una ventana dentro de la pantalla. En este último caso, se trata de la
  ventana asociada al programa.

  printf( "formato" [, lista_de_campos ] )

   Los especificadores de campo tienen el formato siguiente:
       %[-][+][anchura[.precisión]]tipo_de_dato



        printf( "El importe de la factura núm.: %5d", num_fact );
        printf( "de Sr./-a. %s sube a %.2f_n", cliente, importe );
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar

     %[-][+][anchura[.precisión]]tipo_de_dato
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar


    putchar( carácter )
    Muestra el carácter indicado por la salida estándar.
    puts( "cadena de caracteres" )
    Muestra una cadena de caracteres por la salida estándar.



          Ejemplo
          putchar( „n' );
          Ejemplo
          puts( "Hola a todos!n" );
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Funciones de entrada/salida de datos

       • No forman parte del lenguaje, están en librería estándar:
        #include <stdio.h>
       • Escribir por pantalla: printf
       printf ( <cadena> );
       printf ( <cadena con formato>, <expresión 1>, <expresión 2>, ...);
       printf("¡Buenos días!");
       printf("Un entero: %d y un real: %fn", 27*12, 3.1416);
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Lenguaje C – Ejercicios


  1- Muestre en pantalla el mensaje "Bienvenido“.
  2- Muestre en pantalla el mensaje "C no tiene misterios".
  3- Muestre en pantalla la suma de 100 y 120.
  4- Muestre en pantalla el producto de 50 y 51.
  5- Guarde en la variable x (entera) el número 23, en la variable y (entera) el número 24, en la variable z (entera) el
          número 25 y muestre en pantalla la suma de los valores de las tres variables.
  6- Guarde en la variable x (entera) el número 10, en la variable y (entera) el número 11, en la variable z (entera) el
          número 12, calcule su producto y lo guarde en una variable llamada producto, y finalmente muestre en pantalla
          el valor de la variable producto.
  7- Pida al usuario dos números enteros (que se guardarán en las variables a y b) y muestre su suma en pantalla.
  8- Pida al usuario dos números enteros (que se guardarán en las variables n1 y n2) y muestre su producto en pantalla.
  9- Pida al usuario dos números reales (que se guardarán en las variables dato1 y dato2) y muestre en pantalla el
          resultado de dividir dato1 entre dato2.
  10- Pida al usuario dos números reales (que se guardarán en las variables dato1 y dato2).Si dato2 es cero,deberá
          mostrar un mensaje de error, y en caso contrario mostrará en pantalla el resultado de dividir dato1 entre dato2.

Contenu connexe

Tendances

Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4flaquita_dany
 
Estructura de Programa en C++
Estructura de Programa en C++Estructura de Programa en C++
Estructura de Programa en C++ncrmax
 
Estructura de un rograma
Estructura de un rogramaEstructura de un rograma
Estructura de un rogramaivanjvic
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++grachika
 
Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.comFresyMetal
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Capitulo 2 tipos de datos en c
Capitulo 2 tipos de datos en cCapitulo 2 tipos de datos en c
Capitulo 2 tipos de datos en cecastelocc
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1joeshego
 
Fundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasFundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasLuis Ortiz
 
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 c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
Instrucciones Básicas para C++
Instrucciones Básicas para C++Instrucciones Básicas para C++
Instrucciones Básicas para C++pilgrim15
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoEnAutomático
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programaTensor
 

Tendances (20)

Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Estructura de Programa en C++
Estructura de Programa en C++Estructura de Programa en C++
Estructura de Programa en C++
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Estructura de un rograma
Estructura de un rogramaEstructura de un rograma
Estructura de un rograma
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.com
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Capitulo 2 tipos de datos en c
Capitulo 2 tipos de datos en cCapitulo 2 tipos de datos en c
Capitulo 2 tipos de datos en c
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
 
Fundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasFundamentos de programación: Subprogramas
Fundamentos de programación: Subprogramas
 
OPERADORES PARA C++
OPERADORES PARA C++OPERADORES PARA C++
OPERADORES 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.
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
Instrucciones Básicas para C++
Instrucciones Básicas para C++Instrucciones Básicas para C++
Instrucciones Básicas para C++
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programa
 

En vedette

Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1karlalopezbello
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2karlalopezbello
 
Mapa signos de puntuación
Mapa signos de puntuaciónMapa signos de puntuación
Mapa signos de puntuacióndiagraviccrismin
 
ORTOGRAFIA - ACENTUACION
ORTOGRAFIA  -  ACENTUACIONORTOGRAFIA  -  ACENTUACION
ORTOGRAFIA - ACENTUACIONguest59bb070
 
Vicios de diccion
Vicios de diccionVicios de diccion
Vicios de diccionjamilethv
 
Signos De Puntuacion
Signos De PuntuacionSignos De Puntuacion
Signos De PuntuacionUpel
 
Mapa conceptual de los signos de puntuación.
Mapa conceptual de los signos de puntuación.Mapa conceptual de los signos de puntuación.
Mapa conceptual de los signos de puntuación.Cristina Reyes Coronel
 
Práctica de sílaba y acentuación
Práctica de sílaba y acentuaciónPráctica de sílaba y acentuación
Práctica de sílaba y acentuaciónRafael Campos Brusil
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-karlalopezbello
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2karlalopezbello
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 

En vedette (20)

Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1
 
algoritmica
algoritmicaalgoritmica
algoritmica
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2
 
Acentuación
AcentuaciónAcentuación
Acentuación
 
Acentuacion
AcentuacionAcentuacion
Acentuacion
 
Ortog. acentuación eso
Ortog. acentuación esoOrtog. acentuación eso
Ortog. acentuación eso
 
mapa conceptual
mapa conceptualmapa conceptual
mapa conceptual
 
Mapa signos de puntuación
Mapa signos de puntuaciónMapa signos de puntuación
Mapa signos de puntuación
 
ORTOGRAFIA - ACENTUACION
ORTOGRAFIA  -  ACENTUACIONORTOGRAFIA  -  ACENTUACION
ORTOGRAFIA - ACENTUACION
 
Didactica del chat
Didactica del chatDidactica del chat
Didactica del chat
 
Vicios de diccion
Vicios de diccionVicios de diccion
Vicios de diccion
 
Signos De Puntuacion
Signos De PuntuacionSignos De Puntuacion
Signos De Puntuacion
 
Mapa conceptual de los signos de puntuación.
Mapa conceptual de los signos de puntuación.Mapa conceptual de los signos de puntuación.
Mapa conceptual de los signos de puntuación.
 
Práctica de sílaba y acentuación
Práctica de sílaba y acentuaciónPráctica de sílaba y acentuación
Práctica de sílaba y acentuación
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-
 
Transparencias5
Transparencias5Transparencias5
Transparencias5
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 

Similaire à Programacion ii modulo2-leccion3

Similaire à Programacion ii modulo2-leccion3 (20)

Guía funciones
Guía funcionesGuía funciones
Guía funciones
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
07 funciones
07 funciones07 funciones
07 funciones
 
Funciones
FuncionesFunciones
Funciones
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de biblioteca
 
Primera clase
Primera clasePrimera clase
Primera clase
 
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 
Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)
 
Utp lpi_s6y7_funciones y variables 2012-2
 Utp lpi_s6y7_funciones y variables 2012-2 Utp lpi_s6y7_funciones y variables 2012-2
Utp lpi_s6y7_funciones y variables 2012-2
 
Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)
 
Funciones
FuncionesFunciones
Funciones
 

Plus de karlalopezbello (20)

Didactica del foro
Didactica del foroDidactica del foro
Didactica del foro
 
Guia completa de_moodle
Guia completa de_moodleGuia completa de_moodle
Guia completa de_moodle
 
Publicacion de material
Publicacion de materialPublicacion de material
Publicacion de material
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacion
 
Actividades en moodle
Actividades en moodleActividades en moodle
Actividades en moodle
 
Plataforma moodle
Plataforma moodlePlataforma moodle
Plataforma moodle
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtual
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 
Transparencias3
Transparencias3Transparencias3
Transparencias3
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
 
Manejo archivos
Manejo archivosManejo archivos
Manejo archivos
 
Ordenacion
OrdenacionOrdenacion
Ordenacion
 
Recursion
RecursionRecursion
Recursion
 
Uml
UmlUml
Uml
 

Programacion ii modulo2-leccion3

  • 1. PROGRAMACION II MODULO II - FUNDAMENTOS DEL LENGUAJE C LECCION III – BLOQUE DE FUNCIONES 1. Concepto 2. Estructura 3. Declaración de una función 4. Referencia a una función 5. Tipo de parámetros 6. Variables locales 7. Funciones estándar de entrada y salida 8. Recursión TEMA Nº 0 pág. 1/6
  • 2. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto función es una parte de código independiente del programa principal y de otras funciones, que puede ser llamada enviándole unos datos (o sin enviarle nada), para que realice una determinada tarea y/o proporcione unos resultados. -Las funciones son una parte muy importante del lenguaje C. -Mediante el uso de funciones se consigue un código limpio, claro y elegante. -La adecuada división de un programa en funciones constituye un aspecto fundamental en el desarrollo de programas de cualquier tipo. -Las funciones, ya compiladas, pueden guardarse en librerías. Las librerías son conjuntos de funciones compiladas, normalmente con una finalidad análoga o relacionada, que se guardan bajo un determinado nombre listas para ser utilizadas por cualquier usuario.
  • 3. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
  • 4. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
  • 5. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Estructura
  • 6. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
  • 7. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros El paso de parámetros se refiere a la acción de transformar los parámetros formales a parámetros reales; es decir, de asignar un contenido a las variables que representan a los argumentos: tipo funcion_llamada( parámetro_formal_1, parámetro_formal_2, ... ); funcion_llamadora( ... ) { /* ... */ funcion_llamada( parámetro_real_1, parámetro_real_2, ... ) /* ... */ } /* funcion_llamadora */ Hay dos posibilidades: que los argumentos reciban el resultado de la evaluación de la expresión correspondiente o que se sustituyan por la variable que se indicó en el parámetro real de la misma posición. El primer caso, se trata de un paso de parámetros por valor, mientras que el segundo, se trata de un paso de variable (cualquier cambio en el argumento es un cambio en la variable que consta como parámetro real).
  • 8. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros El paso por valor consiste en asignar a la variable del parámetro formal correspondiente el valor resultante del parámetro real en su misma posición. El paso de variable consiste en sustituir la variable del parámetro real por la del parámetro formal correspondiente y, consecuentemente, poder emplearla dentro de la misma función con el nombre del parámetro formal. En C, el paso de parámetros sólo se efectúa por valor; es decir, se evalúan todos los parámetros en la llamada y se asigna el resultado al parámetro formal correspondiente en la función.
  • 9. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros
  • 10. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros
  • 11. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
  • 12. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
  • 13. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – variables locales
  • 14. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Ejemplo /* Fichero: simpson.c */ x = x + dx; #include <stdio.h> } /* for */ #include <math.h> } /* if */ double f( double x ) return result; } /* integral_f */ { return 1.0/(1.0 + x*x); void main( void ) } /* f */ { double a, b; double integral_f( double a, double b, int int n; n) printf( "Integración numérica de f(x).n" ); printf( "Punto inicial del intervalo, a = ? " ); { scanf( "%lf", &a ); double result; printf( "Punto final del intervalo, b = ? " ); double x, dx; scanf( "%lf", &b ); int i; printf( "Número de divisiones, n = ? " ); result = 0.0; scanf( "%d", &n ); if( (a < b) && (n > 0) ) { printf( x = a; "Resultado, integral(f)[%g,%g] = %gn", dx = (b-a)/n; a, b, integral_f( a, b, n ) for( i = 0; i < n; i = i + 1 ) { ); /* printf */ result = result + f(x); } /* main */
  • 15. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada/salida de datos
  • 16. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar Se ocupan de obtener datos de la entrada estándar que, habitualmente, se trata del teclado. Devuelven algún valor adicional que informa del resultado del proceso de lectura. El valor devuelto no tiene por qué emplearse si no se necesita, pues muchas veces se conoce que la entrada de datos se puede efectuar sin mayor problema. scanf( "formato" [, lista_de_&variables ] ) Para poder depositar los datos leídos en las variables indicadas, esta función requiere que los argumentos de la lista de variables sean las direcciones de memoria en las que se encuentran. Por este motivo, es necesario emplear el operador “dirección de” (&). De esta manera, scanf deja directamente en las zonas de memoria correspondiente la información que haya leído y, naturalmente, la variable afectada verá modificado su contenido con el nuevo dato scanf( "%d", &num_articulos ); La función scanf devuelve el número de datos correctamente leídos. Es decir, todos aquellos para los que se ha encontrado algún texto compatible con una representación de su tipo.
  • 17. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar getchar( ) Devuelve un carácter leído por la entrada estándar (habitualmente, el buffer del teclado). En caso de que no pueda leer ningún carácter, devuelve el carácter EOF. Esta constante está definida en stdio.h y, por tanto, puede emplearse para determinar si la lectura ha tenido éxito o, por lo contrario, se ha producido algún error o se ha llegado al final de los datos de entrada. gets( cadena_caracteres ) Lee de la entrada estándar toda una serie de caracteres hasta encontrar un final de línea (carácter 'n'). Este último carácter es leído pero no se almacena en la cadena de caracteres que tiene por argumento. De no leer nada devuelve NULL, que es una constante definida en stdio.h y cuyo valor es 0.
  • 18. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar La salida estándar es el lugar donde se muestran los datos producidos (mensajes, resultados, etcétera) por el programa que se encuentra en ejecución. Normalmente, esta salida es la pantalla del ordenador o una ventana dentro de la pantalla. En este último caso, se trata de la ventana asociada al programa. printf( "formato" [, lista_de_campos ] ) Los especificadores de campo tienen el formato siguiente: %[-][+][anchura[.precisión]]tipo_de_dato printf( "El importe de la factura núm.: %5d", num_fact ); printf( "de Sr./-a. %s sube a %.2f_n", cliente, importe );
  • 19. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar %[-][+][anchura[.precisión]]tipo_de_dato
  • 20. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar putchar( carácter ) Muestra el carácter indicado por la salida estándar. puts( "cadena de caracteres" ) Muestra una cadena de caracteres por la salida estándar. Ejemplo putchar( „n' ); Ejemplo puts( "Hola a todos!n" );
  • 21. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Funciones de entrada/salida de datos • No forman parte del lenguaje, están en librería estándar: #include <stdio.h> • Escribir por pantalla: printf printf ( <cadena> ); printf ( <cadena con formato>, <expresión 1>, <expresión 2>, ...); printf("¡Buenos días!"); printf("Un entero: %d y un real: %fn", 27*12, 3.1416);
  • 22. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Lenguaje C – Ejercicios 1- Muestre en pantalla el mensaje "Bienvenido“. 2- Muestre en pantalla el mensaje "C no tiene misterios". 3- Muestre en pantalla la suma de 100 y 120. 4- Muestre en pantalla el producto de 50 y 51. 5- Guarde en la variable x (entera) el número 23, en la variable y (entera) el número 24, en la variable z (entera) el número 25 y muestre en pantalla la suma de los valores de las tres variables. 6- Guarde en la variable x (entera) el número 10, en la variable y (entera) el número 11, en la variable z (entera) el número 12, calcule su producto y lo guarde en una variable llamada producto, y finalmente muestre en pantalla el valor de la variable producto. 7- Pida al usuario dos números enteros (que se guardarán en las variables a y b) y muestre su suma en pantalla. 8- Pida al usuario dos números enteros (que se guardarán en las variables n1 y n2) y muestre su producto en pantalla. 9- Pida al usuario dos números reales (que se guardarán en las variables dato1 y dato2) y muestre en pantalla el resultado de dividir dato1 entre dato2. 10- Pida al usuario dos números reales (que se guardarán en las variables dato1 y dato2).Si dato2 es cero,deberá mostrar un mensaje de error, y en caso contrario mostrará en pantalla el resultado de dividir dato1 entre dato2.