Convertire la temperatura da Celsius a Fahrenheit in C e C++
In questa lezione convertirai una temperatura da Celsius a Fahrenheit e stamperai il risultato con una cifra decimale.
Introduzione
Convertire le unità di misura è un buon esercizio per allenarsi con i calcoli con i decimali e la formattazione dei risultati. La formula da Celsius a Fahrenheit è F = C × 9 / 5 + 32, quindi 25 gradi Celsius corrispondono a 77 gradi Fahrenheit.
Punti importanti
- Attiva gli avvisi del compilatore (compiler warning) e correggili tutti.
- Comprendi bene il tipo di dato e la durata (lifetime) di ogni valore.
- Controlla sempre i dati in ingresso e i limiti degli indici degli array.
Esempi di codice C e C++
#include <stdio.h>
int main(void) {
double celsius = 25.0;
// Floating-point constants preserve fractional values.
double fahrenheit = celsius * 9.0 / 5.0 + 32.0;
printf("%.1f C = %.1f F\n", celsius, fahrenheit);
}
25.0 C = 77.0 F
#include <iomanip>
#include <iostream>
int main() {
double celsius = 25.0;
// Floating-point constants preserve fractional values.
double fahrenheit = celsius * 9.0 / 5.0 + 32.0;
std::cout << std::fixed << std::setprecision(1) << celsius << " C = " << fahrenheit << " F\n";
}
25.0 C = 77.0 F
Confronto tra C e C++
Le costanti sono scritte come 9.0, 5.0 e 32.0 perché il calcolo venga fatto con numeri in virgola mobile. Se scrivi 9 / 5 con due interi, il risultato viene troncato a 1 e la risposta è sbagliata. Lo specificatore %.1f stampa il risultato con una cifra decimale: 25.0 C = 77.0 F.
C usa piccole funzioni procedurali e mostra apertamente come i dati sono rappresentati in memoria.
C++ continua a permettere il lavoro a basso livello, ma aggiunge tipi di libreria e astrazioni più sicure.
Esercizi di approfondimento
Esegui entrambe le versioni e poi modifica il codice per osservare la differenza di sicurezza che offre ciascun linguaggio.
- Prova input non validi e valori ai limiti.
- Compila con i flag -Wall -Wextra -Wpedantic per attivare più avvisi.
- Sposta le dichiarazioni condivise in un file header e l'implementazione in un altro file.
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
Tutte le sfide