Page 37

printf("\nEscriba los Grados a convertir: "); grados = leer_valor(); fahrenheit = (((grados * 9.0)/5.0) + 32.0) ; printf("%.3f Grados = %.3f Fahrenheit", grados, fahrenheit); pausa(); } double leer_valor(void) { double valor; /* Variable para guardar lo leido del teclado */ scanf("%lf", &valor); return valor; } Veamos que hemos hecho: primero incluimos todas las definiciones presentes en el archivo convers.h que habiamos previamente creado. Luego main() entra en un loop, que finalizará cuando la variable fin tome un valor CIERTO, y dentro del cual lo primero que se hace es llamar a mostrar_menú(), que pone los rótulos de opciones . Luego se entra en un SWITCH que tiene como variable ,el retorno de la función selección() (recuerde que tiene que ser un entero), según sea éste se saldrá por alguno de los tres CASE. Observe que selección() lee el teclado mediante un getche(), (similar a getch() antes descripta, pero con la diferencia que aquella hace eco del caracter en la pantalla) y finalmente devuelve la diferencia entre el ASCII del número escrito menos el ASCII del número cero, es decir, un entero igual numericamente al valor que el operador quizo introducir . Si este fue 1, el SWITCH invoca a la función cm_a_pulgadas() y en caso de ser 2 a grados_a_fahrenheit() . Estas dos últimas proceden de igual manera: indican que se escriba el dato y pasan el control a leer_valor(), la que mediante scanf() lo hace, retornando en la variable valor, un double, que luego es procesado por aquellas convenientemente. Como hasta ahora la variable fin del programa principal no ha sido tocada, y por lo tanto continua con FALSO ,la iteración del while sigue realizandose, luego que se ejecuta el BREAK de finalización del CASE en cuestión. En cambio, si la selección() hubiera dado un resultado de tres, el tercer case, la convierte en CIERTO, con lo que se finaliza el WHILE y el programa termina. Vemos en este ejemplo, la posibilidad de múltiples llamados a funciones, una llama a otra, que a su vez llama a otra, la cual llama a otra, etc ,etc, dando un esquema de flujo de programa de la forma :

Curso de iniciación al lenguaje C  

#include <stdio.h> main() printf("Bienvenido a la Programación en lenguaje C \n"); return 0; { } es mucho /* este es un comentario cor...

Advertisement