G. Mecca – [email protected] – Università della Basilicata
Linguaggio C++
Le Stringhe Parte 2 FORTRAN
versione 2.2
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Sommario
m
Un Altro Esempio: il FORTRAN 77
Stringhe >> Sommario
G. Mecca - Programmazione Procedurale in Linguaggio C++ 3
m
In FORTRAN
ðil tipo utilizzato per le stringhe è una variante del tipo CHARACTER utilizzato per i caratt.
m
Sintassi
ðcharacter*<lung> <variabile>
ðdove <lung> è la lunghezza massima per le stringhe
m
Esempio
ðcharacter*10 nome
Un Altro Esempio: il FORTRAN 77
m
Semantica
ðalla variabile viene attribuito uno spazio in memoria pari esattamente a <lung> byte ði byte hanno inizialmente un valore indefinito ðsuccessivamente è possibile variare il valore
della variabile
m
Attenzione: differenza con il C++
ðle stringhe del FORTRAN hanno sempre una lunghezza fissata a priori
Stringhe >> FORTRAN
G. Mecca - Programmazione Procedurale in Linguaggio C++ 5
m
Principali operazioni sulle stringhe in FORTRAN
ðassegnazione ðconcatenazione
ðestrazione di carattere ðestrazione di sottostringa ðcalcolo della lunghezza
Un Altro Esempio: il FORTRAN 77
m
Assegnazione
ðsintassi ordinariam
Semantica
ðil valore specificato viene memorizzato nello spazio di memoria della variabile
ðse il valore contiene meno caratteri rispetto alla lunghezza della stringa, vengono
aggiunti spazi
ðse il valore contiene più caratteri, vengono ignorati i caratteri in eccesso
Stringhe >> FORTRAN
G. Mecca - Programmazione Procedurale in Linguaggio C++ 7
m
Esempio
program prova character*10 nome nome = 'Rossi'
write(*,*) '-', nome, '-‘
nome = 'Rossixxxxxxxxxxx' write(*,*) '-', nome, '-' stop
end -Rossi -
-Rossixxxxx-
Un Altro Esempio: il FORTRAN 77
m
Concatenazione: //
ðcharacter*10 nome, cognome, s ðnome = ‘Franco’
ðcognome = ‘Rossi’
ðs = nome // cognome
ðil valore di s è ‘Franco Rossi ’
Stringhe >> FORTRAN
G. Mecca - Programmazione Procedurale in Linguaggio C++ 9
m
Estrazione di carattere
ða differenza del C++ in FORTRAN i caratteri delle stringhe sono numerati a partire da 1
ðcharacter*10 nome ðcharacter c, d ðnome = ‘Franco’
ðc = nome(1:1) ðd = nome(5:5)
ðin questo caso c vale ‘F’ e d vale ‘o’
Un Altro Esempio: il FORTRAN 77
m
Estrazione di sottostringa
ðstessa sintassi che per i caratteri, ma con indici diversi
ðcharacter*10 nome ðcharacter*2 c ðnome = ‘Franco’
ðc = nome(1:2)
ðin questo caso c vale ‘Fr’
Stringhe >> FORTRAN
G. Mecca - Programmazione Procedurale in Linguaggio C++ 11
m
Calcolo della lunghezza: LEN
ðesiste una funzione predefinita per il calcolo della lunghezza di una stringa
ðma il risultato è banale dal momento che la lunghezza è fissata
ðcharacter*10 nome ðnome = ‘Franco’
ðwrite(*,*) len(nome)
ðin questo caso viene stampato il valore 10
Riassumendo
m
Un Altro Esempio: il FORTRAN 77
Stringhe >> Sommario
G. Mecca - Programmazione Procedurale in Linguaggio C++ 13
m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare
http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.