      program bolletta
c
c   Tema Esame 13 gennaio 1999
c
c   Stampa di una bolletta telefonica
c
c   Dati utilizzati:
c
c     nome      : stringa (max 15 caratteri) contenente il nome dell'utente
c     indirizzo : stringa (max 30 caratteri) contenente l'indirizzo
c                 dell'utente
c     ncodice   : codice tipologia utente:  1 = privato,
c                                           2 = azienda,
c                                           3 = neo-abbonato.
c     lettprec  : numero scatti lettura precedente
c     lettatt   : numero scatti lettura attuale
c     nscatti   : numero scatti effettuati ( = lettatt-lettprec)
c     nsoglia   : numero scatti oltre il quale cambia il costo dello scatto
c                 in relazione alla tipologia di utente
c     prscatto1 : costo scatto in relazione alla tipologia di utente
c     prscatto2 : variazione costo dello scatto dopo aver superato NSOGLIA
c     prcanone  : canone fisso dipendente dal tipo di utente
c     prtotale  : totale bolletta
c
c
      character*15 nome
      character*30 indirizzo
      integer prcanone,prscatto1,prscatto2,prtotale


c input dei dati

      write(*,*)'Introduci il nome dell''utente: '
      read(*,100)nome
      write(*,*)'Introduci l''indirizzo dell''utente: '
      read(*,101)indirizzo

100   format(a15)
101   format(a30)

      write(*,*)'Qual''e'' la tipologia dell''utente ?'
      write(*,*)' 1:  privato'
      write(*,*)' 2:  azienda'
      write(*,*)' 3:  neo-abbonato'
      write(*,*)
      read(*,*)ncodice

      write(*,*)'Lettura scatti precedente = '
      read(*,*)lettprec
      write(*,*)'Lettura scatti attuale = '
      read(*,*)lettatt


c  utilizzo di GOTO CALCOLATO in relazione a 'ncodice'

      goto(10,20,30)ncodice

c caso utente privato

10    prcanone=60000
      prscatto1=150
      nscatti=lettatt-lettprec
      prtotale=nscatti*prscatto1+prcanone
      goto 40


c caso utente azienda

20    prcanone=100000
      prscatto1=120
      prscatto2=180
      nsoglia=150
      nscatti=lettatt-lettprec
      if(nscatti.gt.nsoglia) then
         prtotale=nsoglia*prscatto1+(nscatti-nsoglia)*prscatto2+prcanone
      else
         prtotale=nscatti*prscatto1+prcanone
      endif
      goto 40


c caso utente neo-abbonato

30    prcanone=40000
      prscatto1=100
      prscatto2=150
      nsoglia=100
      nscatti=lettatt-lettprec
      if(nscatti.gt.nsoglia) then
         prtotale=nsoglia*prscatto1+(nscatti-nsoglia)*prscatto2+prcanone
      else
         prtotale=nscatti*prscatto1+prcanone
      endif


c  stampa della bolletta con output formattato

40    write(*,105)
      write(*,110)nome
      write(*,111)indirizzo
      write(*,112)lettprec
      write(*,113)lettatt
      write(*,114)nscatti


      if(ncodice.eq.1) then
        write(*,115)nscatti*prscatto1
      else
        if(nscatti.le.nsoglia) then
           write(*,116)prscatto1,nscatti,nscatti*prscatto1
        else
           write(*,116)prscatto1,nsoglia,nsoglia*prscatto1
           write(*,117)prscatto2,nscatti-nsoglia,
     &                 (nscatti-nsoglia)*prscatto2
        endif

      endif

      write(*,118)prcanone
      write(*,119)prtotale
      write(*,105)


105   format(/,1x,65('_'),/)
110   format(1x,'Nome utente: ',a15)
111   format(1x,'indirizzo:   ',a15)
112   format(1x,'scatti lettura precedente: ',i5)
113   format(1x,'scatti lettura attuale:    ',i5)
114   format(1x,'scatti effettuati: ',i5)

115   format(/,6x,'œ 150 per scatto       costo totale scatti:  œ ',i8)
116   format(/,9x,'œ ',i3,' primi ',i3,' scatti',13x,'costo  œ ',i8)
117   format(9x,'œ ',i3,' successivi ',i3,' scatti',8x,'costo  œ ',i8)

118   format(/,36x,'canone fisso:  œ ',i8)
119   format(/,33x, 'TOTALE BOLLETTA:  œ ',i8)


      stop
      end


