/* File:  romani2.pas */

/* Legge da tastiera una sequenza di caratteri fra 'I','V','X','L','C','D','M'
  (che rappresenta un numero romano) terminata da '\n', e stampa il numero
  intero corrispondente. Assume che le cifre romane compaiano SOLO in ordine
  decrescente (come ad esempio in MMCXXLII) ma non ammette che vi sia una
  sottosequenza crescente (come ad esempio la sottosequenza CM in MCMX).

  Scopo: semplice esempio uso di funzioni */

int Romano2Intero(char ch)
{
  int ris;
  switch (ch) {
  case 'I' :  ris = 1; break;
  case  'V' : ris = 5; break;
  case  'X' : ris = 10; break;
  case  'L' : ris = 50; break;
  case  'C' : ris = 100; break;
  case  'D' : ris = 500; break;
  case  'M' : ris = 1000; break;
  default: ris = -1;
  }
  return ris;
}

int main(void)
{
  char ch;
  int somma = 0;
  printf("Inserisci un numero romano (senza spazi) terminato da '\\n'\n");
  printf("Le cifre (M,D,C,L,X,V,I) devono comparire in ordine decrescente!\n");
  scanf("%c", &ch);
  while (ch != '\n') {
    somma = somma + Romano2Intero(ch);
    scanf("%c", &ch);
  }
  printf("Numero corrispondente: %d\n", somma);
  return 0;
}
