Coruniversitaria, Corporación Universitaria de Ibagué
Facultad de Ingeniería de Sistemas

Estructuras de Programación

Inicio

Generalidades

Ejercicios

Talleres

Proyecto

 

 

 Funciones

  La modularidad de los programas es un elemento clave en la programación estructurada.  La parametrización de funciones permite la reutilización de software y la facilidad de mantenimiento, y es también característica fundamental de la programación orientada a objetos.

¿Qué es una función?

 En programación, una función es un segmento independiente de código fuente diseñado para realizar una tarea específica. Todos los programas escritos en C/C++ tienen al menos una función llamada main(). Usted ya ha utilizado algunas funciones de biblioteca, como getch(), gets(), clrscr(), printf(), pow()...

 Las funciones de biblioteca son las que ya vienen predefinidas en el lenguaje de programación, pero usted también puede crear sus propias funciones. Esto le permitirá escribir una función y luego utilizarla de forma repetida al igual que las funciones de biblioteca. De hecho, usted puede crear su propia biblioteca de funciones, grabarlas en su disco y luego invocarlas en sus programas de la misma forma que hace con getch(), gets(), clrscr(), printf(), pow()...

 Las funciones son los bloques constructores del lenguaje C/C++ y el lugar donde se produce toda la actividad del programa.

Formato general de una función

tipo_dev nombre_de_la_función (lista de parámetros)
{
  cuerpo de la función
}


El tipo_dev especifica el tipo de dato que devuelve la función. Una función puede devolver cualquier tipo de dato (int, float, char, void) excepto un arreglo. Todas las funciones que no son de tipo void devuelven un valor. Este valor se especifica explícitamente en la instrucción return. La lista de parámetros es una lista de nombres de variable separados por comas con sus tipos asociados. Los parámetros reciben los valores de los argumentos cuando se llama a la función. Una función puede no tener parámetros, en cuyo caso la lista de parámetros está vacía, lo cual se puede especificar colocando la palabra clave void entre los paréntesis.

Las variables que están definidas dentro de una función son variables locales.

¿Cómo se declara una función?

En C/C++, cuando se crea una función diferente a main() y antes de main(), primero debe declararse y después definirse. La declaración de una función se realiza mediante lo que se denomina prototipo de una función, el cual consta del nombre de la función y de información importante relativa a la misma. Los prototipos de las funciones aparecen al comienzo del programa y antes de main().

Cuando se define una función, se indica de nuevo el nombre de la función, la información relativa a la misma (igual que en el prototipo de la función) y el cuerpo de la función, que contiene todo el código fuente utilizado por la función. Todo esto se muestra en el siguiente ejemplo:

/*
Programa : FuncionC.cpp
Autor : Un buen programador
Fecha : H/o/y
Descripción : Este programa ilustra una forma simple de programa estructurado en bloques o módulos.
*/

#include "iostream.h"
#include "conio.h"
// prototipo de funciones:
void saludo(); //La función visualiza un saludo en la pantalla
float cuadrado(float numero); // La función eleva un número al cuadrado.

void main()
{
float valor, respu;
clrscr();
saludo(); // Llamada a la función saludo.
cout << "Por favor, escriba un número y se lo elevaré al cuadrado -> ";
cin >> valor;
respu = cuadrado(valor); // Llamada a la función cuadrado.
cout << endl << "El cuadrado de "<< valor << " es " << respu;
getch();
}


void saludo()
{
cout << "Hola!. Bienveni2 a la programación modular\n" << endl;
}


float cuadrado(float numero)
{
float respu;
respu = numero * numero;
return(respu); // Devuelve el cuadrado del número
}

 

Ejercicios "amistosos"

  • Modificar los ya codificados programas de computación en Lenguaje C/C++ utilizando FUNCIONES:

// Otro programa modular sencillo en lenguaje C...

#include "iostream.h"
#include "conio.h"
#define lp clrscr()

void diafeliz(){
    cout << "Dic. 21 /2003"<< endl;
    cout << "DEPORTES TOLIMA CAMPEON * !!!"<< endl;
}

int suma(int x, int y){
    return(x+y);
}

void tolgoles(){
    int ngi, ngc, totg;
    cout << "Cuantos goles marco Tolima en la gran final?"<<endl;
    cout << "En Ibague -> "; cin >> ngi;
    cout << "En Cali     -> "; cin >> ngc;
    lp;
    diafeliz();                   // Llamado de funcion
    totg = suma(ngi,ngc); // Llamado de funcion con paso de    parametros
    cout << "Goles que marco en la gran final -> "<< totg;
}

void main(){
    lp;
    tolgoles();  // Llamado a la funcion
    getch();
}

______________________________________________

Métodos  en lenguaje Java:

-------------------------------------------------------------------------

/**
* @(#)DT2003.java
*
*
* @author Viejo Gus
* @version 1.00 2008/10/28
*/
import javax.swing.JOptionPane;

class DTolima{
   private String ngi,ngc;
   public DTolima() {
       ngi=ngc=" ";
   }
   public void diafeliz(){
       JOptionPane.showMessageDialog(null,"Dic. 21 /2003\n"+"DEPORTES TOLIMA CAMPEÓN * !!!");
   }
   public void tolgoles(){
       ngi=JOptionPane.showInputDialog("Cuántos goles marcó Tolima en la gran final en Ibagué?");
       ngc=JOptionPane.showInputDialog("Cuántos goles marcó Tolima en la gran final en Cali?");
   }

}

public class DT2003{
   public static void main(String arg[]){
       DTolima DT = new DTolima();
       DT.diafeliz();
       DT.tolgoles();
   }
}

 



Inicio | Biografía | Cursos | Para pensar... | Para reflexionar... | Para reir | Enlaces

 
Profesor Gustavo Martínez Villalobos
Email: gustavo.martinez@unibague.edu.co
Facultad de Ingeniería de Sistemas, Coruniversitaria
Ibagué, Tolima, COLOMBIA