Curso C Avanzado – Clase 4

Programación estructurada

 

En C es una buena práctica dividir el código en funciones y agruparlas en módulos.

 

El paradigma de la Programación Estructurada consiste en identificar distintas funcionalidades y separarlas en funciones, de esta forma se evita tener un código muy extenso de forma continua porque dificulta mucho su modificación y mantenimiento.

Una vez definidas las distintas funciones, estas se pueden agrupar en módulos o ficheros de forma que se tiende a tener conjuntos de funciones que tratan sobre un mismo tema o concepto.

Ámbito de las variables

En C existe el concepto de ámbito de una variable (scope en inglés).

El ámbito se refiere a la visibilidad de una variable para definir en que zona del programa se podrá usar.

En C podemos definir bloques de código encerrandolo entre {.  }

 

Las variables definidas dentro de un bloque solo se pueden usar dentro de ese bloque y no serán visibles fuera de él.

Estas son las llamadas variable locales que el compilador crea al iniciar un bloque y son destruidas de forma automática al finalizar el bloque.

Las variable globales son aquellas que se definen en un módulo y que son visibles en todas las funciones creadas en ese módulo.

Las variables estáticas (static) son variables locales definidas en una función que mantienen su valor entre distintas llamadas a la función.

 

Definición de funciones

 

Una función se puede definir de la forma

Retorno nombre( parámetros )

Retorno es el valor que retornará la función y puede ser un tipo de datos (int, float…)  o void que se usa para indicar que no retorna ningún valor.

Nombre es el identificador de la función

Parámetros es una lista separada con comas de variables que pasaremos a la función.

 

Pej

float CalcularIva(float precio, float iva)

 

Paso de parámetros por valor

 

La manera más común de pasar parametros a una función es pasarlos por valor.

Se pasan constantes o variables que no cambiarán de valor en la ejecución de la función.

 

float CalcularIva(float precio, float iva)

{

      return precio*iva/100;

)

 

int main()

(

        float iva;

 

      iva = CalcularIva(1000, 21);

)

 

Paso de parámetros por referencia

 

Si queremos que un parámetro de una función se modifique dentro de la función y retorne el valor modificado se puede usar el parámetro por referencia.

En este caso, en vez de pasar el valor se pasa un puntero

 

Pej

float CalcularIva(float precio, float iva, float *pvp)

{

      float piva;

 

      piva = precio*iva/100;

      *pvp = precio + piva;

      return piva;

)

 

int main()

(

        float iva, pvp

 

      iva = CalcularIva(1000, 21, &pvp);

)

 

Este tipo de paso de parámetros suele usarse cuando en la función se debe retornar más de un valor.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *