Accedi

Convertitore temperature

PROBLEMA

Scrivere un algoritmo che legga una sequenza di numeri interi strettamente maggiori di 0 terminante con uno 0 e ne ricerca il valore minimo visualizzandolo sullo schermo.


RAPPRESENTAZIONE TECNICO-ILLUSTRTIVA

Farsi dare il numero se risulta diverso da zero, se il conteggio è uguale a 0 assegnare a “numero_inserito” il valore della variabile numero, e poi incrementare la variabile conteggio. Poi se “numero_inserito” è maggiore del numero inserito associare ad “numero_inserito” il valore della variabile numero altrimenti non fare nulla. Ripetere tutto ciò finché non viene inserito lo 0 per terminare l’inserimento della sequenza, alla fine mostrare la variabile “numero_inserito” cioè il valore minimo inserito.


TABELLA DATI

IDENTIFICATORE DESCRIZIONE
Restat Variabile modificabile dall’utente per decide il continuo o la chiusura del programma di tipo intero
Scelta_menu Scelta del menu per indicare l’unità base di misura della temperatura inserita di tipo intero
Valore Temperatura inserita dall’utente di tipo float
Celsius Temperatura convertita in Celsius di tipo float
Fahrenheit Temperatura convertita in Fahrenheit di tipo float
Kelvin Temperatura convertita in Kelvin di tipo float

 


DIAGRAMMA A BLOCCHI

Clicca qui per visualizzare il Diagramma a blocchi.


CODICE SORGENTE

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
  //Sezione dichiaratica
  int restart, scelta_menu, i=1;
  float valore, celsius, fahrenheit, kelvin;
  //interfaccia
  do {
    do {
      //visualizza menu
      system("cls");
      printf("1. Base della temperatura in Celsius\n");
      printf("2. Base della temperatura in Fahrenheit\n");
      printf("3. Base della temperatura in kelvin\n");
      printf("\nInserire preferenza: ");
      scanf("%d", &scelta_menu);
    } while(scelta_menu<=0 || scelta_menu>=4);
    do {
      system("cls");
      if (scelta_menu==3){
        printf("Inserire temperatura (minimo -273.15K): ");
      }
      else{
        printf("Inserire temperatura: ");
      }
      scanf("%f", &valore);
    } while(valore<-273.15 && scelta_menu==3);
    printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
    system("cls");
    //Scelta 1
    if (scelta_menu==1){
    //calcoli e output
      fahrenheit=(valore*1.8)+32;
      printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
      printf("\nfahrenheit:\t%f\t|", fahrenheit);
      if (valore>-273.14){
        kelvin=valore+273.15;
        printf("\nKelvin:\t\t%f\t|", kelvin);
      }
      else{
        printf("\nKelvin:\t\tIMPOSSIBILE\t|");
      }
      printf("\nCelsius:\t%f\t|", valore);
      printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
    }
    else{
    //Scelta 2
      if (scelta_menu==2){
      //calcoli e output
        celsius=(valore-32)*(0.555);
        printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
        printf("\ncelsius:\t%f\t|", celsius);
          if (valore>-951.34){
            kelvin=(valore+459.67)*(0.555);
            printf("\nKelvin:\t\t%f\t|", kelvin);
          }
          else {
            printf("\nKelvin:\t\tIMPOSSIBILE\t|");
          }
          printf("\nFahrenheit:\t%f\t|", valore);
          printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
      }
      //scelta 3
      else{
      //calcoli e output
        celsius=valore-273.15;
        printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
        printf("\nCelsius:\t%f\t|", celsius);
        fahrenheit=(valore*1.8)-459.67;
        printf("\nFahrenheit:\t%f\t|", fahrenheit);
        printf("\nKelvin:\t\t%f\t|", valore);
        printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
      }
    }
    printf("\n\nInserisci 0 per ritornare al menu' oppure un altro numero per chiude il programma: ");
    scanf("%d", &restart);
  } while (restart==0);
  //uscita dal programma
  system("cls");
  printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
  for(i=1;i<3;i++){
    sleep(1);
    printf("\nGrazie per aver utilizzato il convertitore");
    printf("\t\t|");
  }
  printf("\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n");
  system("pause");
  return 0;
}