Descrittori di formato - Fondamenti di Informatica T

Transcript

Descrittori di formato - Fondamenti di Informatica T
Descrittori di formato
Simbolo Significato
d
n
r
w
n° di cifre a destra del punto decimale
n° di spazi da saltare
fattore di ripetizione
larghezza del campo
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
1
Descrittori di formato
Attenzione!
w determina il numero totale di caratteri da utilizzare per
rappresentare il dato =>
in output, se lo spazio assegnato è insufficiente...
- se il dato è un numero, non viene visualizzato;
- se è una stringa, viene troncata
d specifica il numero di cifre decimali utilizzate per visualizzare il
numero reale ed è una frazione dello spazio totale w. Se il numero
ha più cifre decimali, verrà arrotondato e non troncato.
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
2
Descrittori di formato
Descrittore
Iw
Fw.d
Ew.d
Lw
A[w]
nX
Significato
intero di w cifre
reale di w cifre (d decimali)
reale di w cifre (d decimali)
variabile logica
stringa di w caratteri
salta n caratteri (n spazi)
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
3
Descrittore I (numeri interi)
Sintassi: rIw
I è utilizzato per controllare il formato di
rappresentazione dei numeri interi
Gli interi sono allineati a destra all'interno dei loro
campi, in modo che l'ultimo intero occupi
l'ultima colonna a destra del campo
NB: se il numero intero è troppo grande per
essere contenuto nel campo, il campo è
riempito di *
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
4
Esempio (utilizzo del descrittore I)
...
INTEGER :: int1 = -12, int2 = 4, int3 = -12345
...
WRITE (*,100) int1, int1+12, int2, int3
WRITE (*,101) int1, int1+12, int2, int3
100 FORMAT(' ', 2I5, I6, I10)
101 FORMAT(' ', I5, I4, I6, I5)
...
OUTPUT:
bbb-12bbbb0bbbbb4bbb-12345
bbb-12bbb0bbbbb4*****
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
5
Descrittore F (numeri reali)
Sintassi: rFw.d
F è utilizzato per controllare il formato di
rappresentazione dei numeri reali
I valori reali sono allineati a destra all'interno dei loro
campi, in modo che l'ultima cifra decimale occupi
l'ultima colonna a destra del campo
NB: il numero verrà arrotondato al numero di cifre
decimali specificato. Se il numero reale è troppo
grande per essere contenuto nel campo, il campo
è riempito di *
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
6
Esempio (utilizzo del descrittore F)
...
REAL :: var1 = -12.3, var2 = .123, var3 = &
123.456
...
WRITE (*,100) var1, var2, var3
WRITE (*,101) var1, var2, var3
100 FORMAT(' ', 2F6.3, F8.3)
101 FORMAT(' ', 3F10.2)
...
OUTPUT:
bb******b0.123b123.456
bbbbb-12.30bbbbbb0.12bbbb123.46
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
7
Descrittore E (numeri reali)
Sintassi: rEw.d
E è utilizzato per controllare il formato di
rappresentazione dei numeri reali in formato
esponenziale (notazione scientifica)
I numeri vengono rappresentati come valori
normalizzati compresi tra 0.1 e 1 e
moltiplicati per una potenza di 10.
NB: Se il numero reale è troppo grande per
essere contenuto nel campo, il campo è
riempito di *
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
8
Esempio (utilizzo del descrittore E)
...
REAL :: var1 = 1.2346E6, var2 = 0.001, var3 = 77.7E10, &
var4 = -77.7E10
...
WRITE (*,100) var1, var2, var3, var4
100 FORMAT(' ', 2E14.4, E13.6, E11.6)
...
OUTPUT:
bbbbbb.1235E+07bbbbb.1000E-02-0.777000E-12*********
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
9
Ancora sul descrittore E
Attenzione!
Valutate attentamente la dimensione del campo
quando utilizzate il descrittore E
Esempio: stampa di un numero con 4 cifre significative
serve un campo con w=11
Infatti:
0. ddddE ee
In generale, bisogna che sia soddisfatta la relazione:
w d 7
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
10
Descrittore L (variabile logica)
Sintassi: rLw
L è utilizzato per controllare il formato di
rappresentazione delle variabili logiche
Il valore stampato può essere solo T (true) o F
(false)
Le lettere vengono allineate a destra nel
campo di output
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
11
Descrittore A (stringa di caratteri)
Sintassi: rA o rAw
A è utilizzato per controllare il formato di
rappresentazione di testi e stringhe di
caratteri
Se la larghezza del campo (w) è maggiore
della lunghezza della stringa, la stringa è
allineata a destra.
Se la larghezza del campo (w) è minore della
lunghezza della stringa, la stringa viene
troncata.
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
12
Esempio (utilizzo del descrittore A)
...
CHARACTER(LEN=17) :: stringa = &
'Ecco una stringa.'
...
WRITE (*,100) stringa
WRITE (*,101) stringa
WRITE (*,102) stringa
100 FORMAT(' ', A)
101 FORMAT(' ', A20)
102 FORMAT(' ', A6)
...
OUTPUT:
bEcco una stringa.
bbbbEcco una stringa.
bEcco u
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
13
Descrittori X e T (posizionamento
orizzontale)
Sintassi: nX
X inserisce un numero di spazi vuoti pari ad n,
in genere tra due valori nella stessa riga
Sintassi: Tc
T permette di scrivere a partire dalla colonna c
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
14
Alcune procedure intrinseche
Il FORTRAN90 è molto ricco di procedure
intrinseche.
In genere si tratta di funzioni.
Vediamo alcuni esempi delle più utilizzate.
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
15
Funzioni di biblioteca
• COS (X) : funzione dello stesso tipo di X
restituisce il coseno di X
X può essere reale o complesso
• COSH (X) : funzione dello stesso tipo di X
restituisce il coseno iperbolico di X
X può solo reale
• SIN (X) : funzione dello stesso tipo di X
restituisce il seno di X
X può essere reale o complesso
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
16
Funzioni di biblioteca
• SINH (X) : funzione dello stesso tipo di X
restituisce il seno iperbolico di X
X può essere solo reale
• TAN (X) : funzione dello stesso tipo di X
restituisce la tangente di X
X può essere solo reale
• TANH (X) : funzione dello stesso tipo di X
restituisce il tangente iperbolica di X
X può essere solo reale
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
17
Funzioni di biblioteca
• INT (A, kind) : funzione intera
converte il numero A in un numero intero,
se A è
complesso, converte
solo la parte reale, se A è intero,
modifica solo la precisione
kind è un argomento facoltativo
• REAL (A, kind) : funzione reale
converte il numero A in un numero reale,
se A è
complesso, converte
solo la parte reale, se A è reale,
modifica solo la precisione
kind è un argomento facoltativo
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
18
Funzioni di biblioteca
• EXP (X) : funzione dello stesso tipo di X
restituisce l’esponenziale di X
X può essere reale o complesso
• LOG (X) : funzione dello stesso tipo di X
restituisce il logaritmo neperiano X
X può essere reale o complesso (se
reale, X > 0)
• LOG10 (X) : funzione dello stesso tipo di X
restituisce il logaritmo in base 10 di X
X deve essere reale e positivo
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
19
Funzioni di biblioteca
• ABS (A) : funzione dello stesso tipo di A
fornisce il valore assoluto di A
se A è complesso, restituisce (reale2+immaginario2)0.5
• MAX (A1, A2, A3, …) : funzione dello stesso tipo dei suoi
argomenti
restituisce il valore massimo degli argomenti
gli argomenti possono essere reali o interi, ma dello stesso
tipo
• MIN (A1, A2, A3, …) : funzione dello stesso tipo dei suoi
argomenti
restituisce il valore minimo degli argomenti
gli argomenti possono essere reali o interi, ma dello stesso
tipo
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
20
Funzioni di biblioteca
• DBLE (A) : funzione reale in doppia precisione
converte il numero A in reale in doppia precisione
A può essere reale, complesso o intero, se A è
complesso,
viene convertita solo la parte reale
• SQRT (X) : funzione dello stesso tipo di X
restituisce la radice quadrata di X
X può essere reale o complesso (se reale, X positivo o
nullo, se complesso, la parte reale deve essere positiva o
nulla, idem per la parte immaginaria)
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
21
Subroutine intrinseche
• RANDOM_NUMBER (harvest)
Restituisce uno o più numeri pseudocasuali da una
distribuzione uniforme nel range [0, 1[
Sintassi
CALL random_number(numero)
Fondamenti di Informatica L-A - Ing. Meccanica Alma Mater Studiorum - Univ. di Bologna (c) 2004
22