Aunque ya la hemos estado utilizando en muchos ejercicios, vamos a estudiar un poco más en profundidad cómo funciona la consola en jC.
Además de pintar, jC también es capaz de pedir e imprimir texto. Esto se denomina "consola", pues es la forma estándar de comunicarse con un ordenador: introduciendo órdenes por el teclado y observando el resultado por la pantalla.
- Las funciones que tenemos a nuestra disposición para manejarnos con la consola son precisamente dos:
- print( <expr> ): Permite mostrar cualquier valor por la pantalla. Hay dos variantes: print() y println(), la segunda realiza un salto de línea tras imprimir.
Ejemplo
print( "Tu nombre es: " ); println( nombre );
-
readln( <msg> ): Devuelve la cadena de texto introducida por el usuario. El mensaje permite que el usuario conozca qué datos se le están preguntando.
Ejemplo
def nombre = readln( "Introduce tu nombre: " ); print( "Hola, " ); println( nombre );
Dado que lo que devuelve readln() es una cadena, el código anterior es equivalente a:Ejemplo
char[] nombre = readln( "Introduce tu nombre: " ); print( "Hola, " ); println( nombre );
- Funciones de conversión de cadena a número:
- strToInt( <cadena de texto> ): Esta función acepta una cadena de texto como parámetro, y devuelve el número entero que contiene.
Ejemplo
int edad = strToInt( cadenaDeTexto ); println( edad );
- strToDbl( <cadena de texto> ): Esta función acepta una cadena de texto como parámetro, y devuelve el número real que contiene.
Ejemplo
int altura = strToDbl( cadenaDeTexto ); println( altura );
Realizaremos ahora un programa completo, que permita convertir grados celsius en farenheit, y viceversa. Para convertir los grados celsius (c) en farenheit (f), es necesario aplicar la fórmula:
f = ( c * 1,8 ) + 32Para realizar la conversión inversa, de farenheit (f) a celsius (c):
c = ( f - 32 ) / 1,8Es muy fácil escribir, por tanto dos funciones que hagan las conversiones respectivas. Dado que los grados llevan posiciones decimales, es necesario que las variables a utilizar sean de tipo número real (double).
double cnvtGradosCelsiusFarenheit(double x)
{
return ( ( x * 1.8 ) + 32 );
}
double cnvtGradosFarenheitCelsius(double x)
{
return ( ( x - 32 ) / 1.8 );
}
Sólo resta, por tanto, pedir una cadena de texto, y convertirla a un número real (double), esto puede hacerse de manera muy sencilla:
def grados = strToDbl( readln( "Introduce unos grados: " ) );Una vez que se ha llamado a las funciones anteriores con la variable grados, sólo es necesario imprimir el resultado. El programa completo aparece a continuación:
/** @name conversorGrados
* @brief Convierte los grados celsius a farenheit y vicecersa.
* @author jbgarcia@uvigo.es
* @date 2013-11-21
*/
import std.io;
import std.string;
double cnvtGradosCelsiusFarenheit(double x)
{
return ( ( x * 1.8 ) + 32 );
}
double cnvtGradosFarenheitCelsius(double x)
{
return ( ( x - 32 ) / 1.8 );
}
def grados = strToDbl( readln( "Introduce unos grados: " ) );
print( "Los grados celsius introducidos son grados farenheit: " );
println( cnvtGradosCelsiusFarenheit( grados ) );
print( "Los grados farenheit introducidos son grados celsius: " );
println( cnvtGradosFarenheitCelsius( grados ) );

No hay comentarios:
Publicar un comentario