Resumen: resolver un ejercicio básico de C para la conversión de temperaturas, en el cual se implementa la fórmula de conversión de grados Fahrenheit a Celsius y la conversión de Celsius a Fahrenheit.
Sé que es un ejercicio muy sencillo pero es muy común al comenzar a programar en ANSI C.
Este es un ejercicio de programación, no de matemáticas ni física. Por lo tanto usaré las siguientes fórmulas:
C = (F – 32) / 1.8
F = (C * 1.8) + 32
Voy a colocar la fórmula en una función y queda así:
float celsiusAFahrenheit(float celsius) {
return (celsius * 1.8f) + 32;
}
Usamos el tipo de dato float
porque no estamos trabajando con enteros. Simplemente recibimos los grados Celsius y regresamos el resultado de la fórmula. Es decir, multiplicamos por 1.8
(la f
es para indicar que es un flotante) y le sumamos 32
.
El valor que se regresa es flotante de igual forma.
Ahora veamos la otra fórmula. Queda así:
float fahrenheitACelsius(float fahrenheit) {
return (fahrenheit - 32) / 1.8f;
}
Como ves, aplicamos la fórmula. Le restamos 32
a los grados Fahrenheit y lo dividimos entre 1.8
flotante. Regresamos el resultado.
Ahora que has declarado las funciones puedes usarlas. Aquí un ejemplo de uso:
int main(void) {
printf("30 grados C a F: %f\n", celsiusAFahrenheit(30.0f));
printf("86 grados F a C: %f\n", fahrenheitACelsius(86.0f));
}
Como ves, estoy imprimiendo lo que regrese la función. Si quisieras que un usuario proporcione las variables podría ser algo así usando scanf:
float fahrenheit = 0, celsius = 0;// Aquí almacenaremos las variables del usuario
printf("Dime los grados F:\n");
scanf("%f", &fahrenheit);
float equivalencia = fahrenheitACelsius(fahrenheit);
printf("Equivalen a %f\n", equivalencia);
printf("Dime los grados C:\n");
scanf("%f", &celsius);
equivalencia = celsiusAFahrenheit(celsius);
printf("Equivalen a %f\n", equivalencia);
El código completo es el siguiente:
/**
* Conversión de temperatura en ANSI C. Convertir Fahrenheit a Celsius y Celsius a Fahrenheit
*
* @author parzibyte
* @see https://parzibyte.me/blog
* */#include <stdio.h>
float fahrenheitACelsius(float fahrenheit) {
return (fahrenheit - 32) / 1.8f;
}
float celsiusAFahrenheit(float celsius) {
return (celsius * 1.8f) + 32;
}
int main(void) {
printf("30 grados C a F: %f\n", celsiusAFahrenheit(30.0f));
printf("86 grados F a C: %f\n", fahrenheitACelsius(86.0f));
float fahrenheit = 0, celsius = 0;// Aquí almacenaremos las variables del usuario
printf("Dime los grados F:\n");
scanf("%f", &fahrenheit);
float equivalencia = fahrenheitACelsius(fahrenheit);
printf("Equivalen a %f\n", equivalencia);
printf("Dime los grados C:\n");
scanf("%f", &celsius);
equivalencia = celsiusAFahrenheit(celsius);
printf("Equivalen a %f\n", equivalencia);
}
Mira aquí más sobre C.
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Esta web usa cookies.