Vous êtes sur la page 1sur 31

Programacin modular

Introduccin a la programacin

Actividad
Investigar qu es o para qu sirve la programacin modular.

Programacin modular

DECLARACIN DE FUNCIONES

Declaracin de funciones
INTRODUCCIN Una funcin es un mini programa dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o ms veces para ejecutar dichas sentencias.

Declaracin de funciones
Las funciones ahorran espacio, reduciendo repeticiones y haciendo ms fcil la programacin, proporcionando un medio de dividir un proyecto grande en mdulos pequeos ms manejables.

CONCEPTO DE FUNCIN
C++ se puede utilizar como lenguaje de programacin estructurada, tambin conocida como programacin modular. Por esta razn para escribir un programa se divide este en varios mdulos, en lugar de uno solo largo. El programa se divide en muchos mdulos (rutinas pequeas denominadas funciones), que producen muchos beneficios: aislar mejor los problemas, escribir programas correctos ms rpido y producir programas que son ms fciles de mantener.
Funcin 1
Mdulo 1 Mdulo 2

Funcin 2

Funcin 3
Mdulo 3

CONCEPTO DE FUNCIN
As, pues, un programa C++ se compone de varias funciones, cada una de las cuales realiza una tarea principal. El mejor medio para escribir un programa es escribir funciones independientes para cada tarea que haga el programa. Cada funcin realiza una determinada tarea y cuando se ejecuta return se retorna al punto en el que fue llamado por el programa principal.

ESTRUCTURA DE FUNCIN
Una funcin es sencillamente, un conjunto de sentencias que se pueden llamar desde cualquier parte de un programa. Las funciones permiten al programador un grado de abstraccin en la resolucin de un problema. Las funciones no se pueden anidar. Esto significa que una funcin no se puede declarar dentro de otra funcin. La razn para esto es permitir un acceso muy eficiente de los datos. En C++ todas las funciones son externas o globales, es decir, pueden ser llamadas desde cualquier punto del programa.

NOMBRE DE UNA FUNCIN


Un nombre de una funcin comienza con una letra o un subrayado ( _ ) y puede contener tantas letras, nmeros o subrayados como desee. C++ es sensible a maysculas, lo que significa que las letras maysculas y minsculas son distintas a efectos de la funcin.
int max (int x, int y) double media (double x1 , double x2) //nombre de la funcin max // nombre de la funcin media

LLAMADA A UNA FUNCIN


Las funciones, para poder ser ejecutadas, han de ser llamadas o invocadas. Cualquier expresin puede contener una llamada a una funcin que redirigir el control del programa a la funcin nombrada.

Declaracin de una funcin


Antes de que una funcin pueda ser invocada, debe ser declarada. Una declaracin de una funcin contiene solo la cabecera de la funcin (llamado tambin prototipo). tipo_resultado nombre (tipo param1, tipo param2, ); Los nombres de los parmetros se pueden omitir. double med (double, double); double med ( double x1, double x2);

PARMETROS DE UNA FUNCIN


C++ proporciona dos mtodos para pasar variables (parmetros) entre funciones. Una funcin puede utilizar parmetros por valor y parmetros por referencia, o puede no tener parmetros.

PARMETROS DE UNA FUNCIN


El mecanismo que C++ utiliza para pasar parmetros a funciones y optimizar el paso de parmetros, dependiendo del tipo de datos que se utiliza. Suponiendo que se tenga la declaracin de una funcin circulo con tres argumentos: void circulo ( int x, int y, int diametro); Cuando se llama a circulo se deben pasar tres parmetros a esta funcin. En el punto de llamada cada parmetro puede ser una constante, una variable o una expresin, como en el siguiente ejemplo: circulo (25, 40, vueltas*4);

Programacin modular

USO DE BIBLIOTECAS DE FUNCIONES

Entrada y salida
Como se haba mencionado, C no posee instrucciones para la entrada y salida de datos estas operaciones se realizan mediante funciones de biblioteca y proporcionan un alto repertorio de opciones para el programador, permitindole escoger la opcin que mas se adapta al problema que desee solucionar.

Salida con formato


La forma general de la salida con formato es la siguiente: #include<stdio.h> printf(cadena de control, lista de argumentos); Donde: Cadena de control: es una cadena con los cdigos que controlan la forma como se desplegaran los resultados en el dispositivo de salida. Lista de argumentos: es la lista con las variables o las expresiones que sern desplegadas.

En la funcin printf(); la cadena de control contiene los caracteres que se visualizan en la pantalla, las ordenes que le dicen a printf() como visualizar el resto de los argumentos o ambas cosas. La directiva #include indica al compilador cual archivo de cabecera es necesario para compilar exitosamente los programas; dependiendo del compilador con que se trabaje, puede ser obligatorio o no incluir este archivo para esta funcin.

Problema: Hacer un programa que realice la conversin de centmetros a pulgadas.

#include<stdio.h> void main(void) { int iCentimetro; float fPulgada; iCentimetro=15; fPulgada=iCentimetro*2.54; printf(\n Conversin De Centmetros A Pulgadas ); printf(\n %d Centimetros Son %f Pulgadas , iCentimetro, fPulgada); printf(\n); }

Observaciones
La conversin de un tipo de dato en otro. La variable iCentimetro ha sido declarada como un nmero entero; al obtener su valor en fPulgada el compilador ha realizado su conversin en forma automtica para tener compatibilidad de tipos en la operacin. En general, C convierte todos los operadores al tipo del operador mayor. Ordenados de mayor a menor se tiene long double, double, float, unsigned long, long, unsigned, int.

Cdigo %c %d %i %e %E %f %g %G %o %s %u %x %X %p %n %%

Formato Carcter Enteros decimales con signo Enteros decimales con signo Notacin cientfica (e minscula) Notacin cientfica (E mayscula) Coma flotante Usar %e %f el que resulte ms corto Usar &E %f el que resulte mas corto Octal sin signo Cadena de caracteres Enteros decimales sin signo Hexadecimales sin signo (letras minsculas) Hexadecimales sin signo (letras maysculas) Mostrar puntero El argumento asociado es un puntero, a entero al que se asigna el nmero de caracteres escritos Imprimir es signo %

Cdigos de formato
Es importante cuidar que en una lista de control una variable siempre tenga su correspondiente especificador de formato y que dicho formato sea compatible con el tipo de dato al que se le va a dar una salida.

Un entero definido como long no puede ser impreso solamente usado el especificador de campo %d; es necesario anteponer el especificador 1 para indicar que se trata de un tipo largo. Este modificador de campo tambin puede anteponerse a i, o, u y x. Programa: Volver a escribir el programa de conversin de centmetros a pulgadas declarando los centmetros del tipo long int. Solucin: /* archivo : centapu2.c */ #include<stdio.h> void main(void) { long int lCentimetro; float fPulgada; lCentimetro=65915; fPulgada=lCentimetro*2.54; printf(\n Conversin De Centmetros A Pulgadas ); printf(\n %1d Centimetros Son %f Pulgadas , lCentimetro, fPulgada); printf(\n); }

Observaciones
65915 es un nmero que no es soportado por el tipo int pero si por un tipo long int. Si se intenta utilizar esta cantidad con el tipo int no se desplegara un resultado correcto en la pantalla. Obsrvese la 1 entre % y d en la especificacin del campo. La salida de este programa lucira aproximadamente as:

Error comn: No olvide que cada tipo de dato tiene su propio especificador. Los especificadores no realizan conversiones de tipo, solo son una indicacin de la forma como el compilador interpretara los unos y ceros que se almacenan internamente. printf(%s, iNumero); /*ERROR en el tipo de especificador. En la pantalla aparece basura.*/

Entrada con formato


La lectura desde un dispositivo externo se realiza por medio de la funcin scanf(). Por su conducto es posible leer datos desde el teclado de una terminal, y especificar adems el tipo de dato que se desea recibir.

Entrada con formato


La forma general de la funcin scanf() es muy parecida a la de printf() y se muestra a continuacin: #include<stdio.h> scanf(cadena de control, lista de argumentos); Donde: Cadena de control: Es una cadena con los cdigos que controlaran la forma se recibirn los datos desde el dispositivo de entrada. Lista de argumentos: Es la lista con las direcciones de las variables que sern ledas.

Entrada con formato


La cadena de control le indica a scanf() que tipo de datos debe esperar para poder representarlos internamente de manera correcta. La siguiente es una tabla de los especificadores de scanf(): Cdigo %c %d %i %e %f %o %s %x %n %u %[] Formato Carcter Enteros decimales con signo Enteros decimales con signo Notacin cientfica Punto flotante Octal sin signo Cadena de caracteres Hexadecimales sin signo Recibe un valor entero igual al numero de caracteres ledos Lee un entero sin signo Muestra un conjunto de caracteres

Programa: En una tienda departamental se desea instaurar un sistema de cmputo en el cual la cajera introduzca el total a pagar y la cantidad con la que se paga, el programa debe dar por resultado el cambio que se le ha de entregar al cliente: Solucin: /*archivo: cambio*/ /*Calculo del cambio*/ #include<stdio.h> void main(void) { float fTotal, fPago, fCambio; printf(\n Determinacion del cambio \n Total a pagar: ); scanf(%f, &fTotal); printf(\n Pago del cliente: ); scanf(%f, &fPago); fCambio= fPago-fTotal; printf(\n Cambio: %f, fCambio); printf(\n); }

Observaciones
Dentro de scanf() se coloca la cadena de control que, como hemos visto, tiene una forma similar a la de printf(). En la lista de variables se colocan la o las variables que han de ser ledas desde el teclado. Cada una de estas variables debe ser antecedida por un & para que scanf() asigne correctamente el valor en la localidad de memoria dedicada a esa variable. Es muy importante este signo, ya que de no colocarlo podran suceder cosas impredecibles. De la lista de especificadores podemos notar que un nmero entero puede ser ledo con %d o con %i. Asimismo, un nmero real puede ser ledo con %e, %f %g. No siempre es deseable tener tanta precisin en el nmero de salida; por ejemplo, en la escritura de nmeros que representan cantidades monetarias basta con dos decimales. Como casi todos los lenguajes, C permite definir una longitud de salida fija.

Vous aimerez peut-être aussi