************************************************************************ * File: r2imain.for ************************************************************************ * Scopo: illustrare la compilazione separata - modulo chiamante ************************************************************************ * Modulo cliente (cioe` chiamante) di rom2int.for PROGRAM NumeriRomaniNonCrescenti * Legge da tastiera una sequenza di caratteri fra 'I','V','X','L','C','D','M' * (che rappresentano un numero romano) terminata da un punto, e stampa il * numero intero corrispondente. * Assume che le cifre romane compaiano SOLO in ordine non crescente. IMPLICIT NONE * Dichiarazioni variabili CHARACTER car INTEGER somma * Dichiarazioni funzioni esterne INTEGER Romano2Intero * parametri: (CHARACTER) * Inizializzazione variabili DATA somma/0/ * Istruzioni esecutive WRITE (*,*) 'Inserisci le cifre di un numero romano, una per riga, $ terminando con un punto !' WRITE (*,*) 'Le cifre (M,D,C,L,X,V,I) devono comparire in ordine n $on crescente!' READ (*,100) car DO WHILE (car .NE. '.') somma = somma + Romano2Intero(car) READ (*,100) car ENDDO WRITE (*,*) 'Numero corrispondente : ', somma STOP * Istruzioni FORMAT 100 FORMAT(A1) END