Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

Funciones y Procedimientos

Crear funciones en C:

En Pseudocodigo:
<inicio>
declarar variables
codigo del programa
varible=nombrefuncion(listaargumentos)
<fin>

<inicio nombre funcion(listaargumentos)>
declaracion de variable
codigo de la funcion
DEVOLVER valor
<fin nombredefuncion>

Ambito de variables según donde las definamos las variables.

En C, una funcion siempre hay que declararla y definirla
Declararla:
Indicarle al compilador que vamos a usar esa funcion e indicarle las caracteristicas que va a tener la funcion.
Definicion de la funcion:
El código en si de la función.

Deben “encajar” la declaracion con la definicion.

Como se hace la declaracion:
Indicando:
tipoRetorno nombrefncion(listaTiposArgumentos)

tipoRetorno: el tipo de dato que va a devolver

listatiposArgumento: indico el tipo de datos y el nº de datos

ejemplo:
Esto es la declaracion de la funcion: devuelve un entero y los argumentos son 2 enteros
int sumar(int,int);

Esto seria la definicion de la funcion: (ademas de tipo, le indico nombres)
int sumar(int n1, int n2) {
int resul=0;
resul=n1+n2;
return resul;
}

resul tiene que ser del mismo tipo int, que el tipo que devuelvo.

¿Las funciones donde se declara? Se hace antes de poder usarla y antes de poder definirla. (osea entre despues de los include y el main)
¿la definicion donde puede estar? Excepto dentro del main, ni dentro de una funcion, en cualquier lado (otro archivo .c, despues del main)

Nombres de funciones: requesito de las variables (letras y numeros, y se diferencias entre mayusculas y minusculas)



Procedimientos:
Los procedimeintos tecnicamente en C no existen, pero se pueden simular. Existe un tipo de datos que se llama void tipo de dato “no me interesa”, con lo cual lo tengo que poner return.
Declaración
void suma(int,int);
Definición:
void suma(int n1,int n2){
resul=n1+n2;
}
En pseudocodigo solo se pone el nombre de la función.


Nota: Cuando los argumentos son  Tablas
En los tipos de datos basicos (enteros, float), se pasa un duplicado del original.
Pero en las tablas se pasan como punteros.
Por ejemplo:
Declaración
void ordenarAscendiente(int *);

Descripción
void ordenarAscendiente(int *Tabla){
.
.
}

Un puntero es una variable que su contenido es la referencia a otra variable (para entendernos es un segundo nombre para la misma tabla). La función ordenaAscendiente trabaja en la misma tabla, no nos devuelve nada.


Pseudocodigo
C
Función Declaración:
Función Declaración:

Uso:
varible=nombrefuncion(listaargumentos)
tipoRetorno nombrefuncion(listaTiposArgumentos);
Uso:
variable=nombrefuncion(listaargmentos)

Función Descripción
Función Descripción
<inicio nombre funcion(listaargumentos)>
declaracion de variable
codigo de la funcion
DEVOLVER valor
<fin nombredefuncion>
tipoRetorno nombrefuncionsumar(int n1, int n2) {
tipoRetorno resul=0;
resul=n1+n2;
return resul;
}
Procedimiento:
Procedimiento:
Declaración:
Declaración
nombreprocedimiento(listaargumentos)
Void nombreprocedimiento(listaTiposArgumentos);
Descripción
Descripción
<inicio nombreprocedimiento(listaargumentos)>
declaracion de variable
codigo de la funcion
<fin nombredefuncion>
void nombreprocedimiento(listaTiposArgumentos) {
…..
….
}

No hay comentarios:

Publicar un comentario