Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
-EDITING: la fase in cui si scrivono materialmente le istruzioni. Ci aiuta nella visualizzazione del testo
leditor, strettamente legato allambiente di sviluppo integrato (IDE), evidenziando parole chiave in
grassetto, in rosso stringhe, commenti, ecc. A volte ci pu indicare in questa fase eventuali errori.
-I compilatori traducono tutto in una volta prima dellesecuzione e creano un file detto oggetto che verr
eseguito dalla CPU. Per questo motivo non devono essere presenti errori in questo file, altrimenti il
programma non verr nemmeno lanciato in esecuzione. Il vantaggio, per, consiste nellavere unesecuzione
molto pi veloce (cos lavora il C).
-Gli interpreti invece prendono unistruzione, la traducono e la eseguono una alla volta (si dice che traducono
in runtime). In questo caso possibile individuare immediatamente lerrore, ma lesecuzione risulter molto
pi lenta, ed inoltre non creando un file apposito per la compilazione, possibile risalire al codice, a
discapito del programmatore.
-LINKER: in questa fase vengono introdotte tutte le librerie, che hanno nome proprio ed estensione .h e
che comprendono una serie di istruzioni (routine) impacchettate e messe a disposizione nella fase di codifica
e che semplificano per esempio istruzioni di I/O, sulle stringhe, operazioni matematiche, ecc. Il file .exe
risulter pi pesante del file oggetto perch presenta anche le istruzioni delle librerie per il microprocessore.
-DEBUG: la fase di identificazione e correzione di errori. In questa fase, a prescindere che nellambiente
integrato sia presente un compilatore o un interprete possibile eseguire le operazioni una alla volta per
trovare lerrore. In C gli errori indicati con la lettera E (error) sono errori gravi, sintattici, ci vuol dire che
il programma non viene mandato in esecuzione. Quelli indicati con la W (warning) sono pi degli
avvertimenti, cio il programma viene mandato in esecuzione ma possibile che eventuali risultati risultino
sbagliati (errori logici).
Le variabili sono insiemi di dati modificabili situati in una porzione di memoria. Bisogna identificarle,
dandogli un nome di battessimo e inizializzarle mediante diverse operazioni. Il loro valore pu variare nel
corso dellesecuzione di un programma. Le costanti identificano una porzione di memoria il cui valore non
varia nel corso dellesecuzione del programma. Devono essere identificate sempre, sono sempre dati e
possono essere numeriche, caratteri o stringhe (un insieme di caratteri). Larray un elenco di valori, cio
ununica variabile composta da tanti elementi (variabile multipla). La variabile di tipo INT occupa 4 byte,
quella CHAR un solo byte. Quindi la stringa unarray di tipo CHAR. Mentre le variabili possono cambiare
durante lesecuzione del programma, le costanti si cambiano durante la sua codifica. Per identificare una
variabile non possibile utilizzare spazi, accenti e numeri allinizio del loro nome (ad esempio si pu
identificare una variabile come n1 ma non come 1n). Lunico carattere speciale consentito lunderscore
(il trattino basso _). Il C case sensitive, cio c differenza tra lettere minuscole e maiuscole
nellidentificazione delle variabili. Si preferisce utilizzare tutti caratteri maiuscoli quando si parla di costanti.
La variabile FLAG di tipo booleano (nel C standard 0=falso 1=vero e si dichiara come int). Si utilizza
solitamente in caso di errore e ne si assegna un valore (per convenzione 1, ma in ogni caso il sistema la
percepisce come una normalissima variabile) in particolari casi. Le variabili hanno unambiente di
definizione (o scope) che pu essere locale o globale. Le variabili locali sono dichiarate dentro un blocco,
quelle globali sono dichiarate prima del main, cio prima del programma principale. Se sono dichiarate
dentro il main valgono per il main, se sono dichiarate dentro blocchi valgono solo per quel blocco.
LE ISTRUZIONI SU C++
microprocesso
re
OUT Operazione di scrittura per il microprocessore
Main una parola chiave. Ogni istruzione deve terminare con il punto e virgola ( ; ). Le istruzioni
servono allutente per interfacciarsi con il microprocessore.
LISTRUZIONE COUT<<
cout<<x
Operatore di
inserzione
Questa operazione indica che si manda un oggetto (in questo caso la variabile x) sul dispositivo standard di
output. Quindi il microprocessore prende il contenuto della variabile x e la scrive sul monitor. Quando si
parla di costanti bisogna inserirle tra gli apici.
unoperazione conservativa.
LISTRUZIONE CIN>>
cin>>eta
Con questa operazione il programma scrive in memoria ci che scrive lutente da tastiera. A destra
delloperatore devono essere inserite solo variabili. Subito prima ogni cin>> preferibile inserire un
cout<< per specificare cosa deve fare lutente (prompt).
unoperazione distruttiva.
LASSEGNAZIONE
m=(n1+n2)\2
m sar la variabile. Possiamo distinguere lL value che lindirizzo di memoria (a sinistra) e lR value, il
valore effettivo (a destra). Praticamente in questo caso il programma, prima calcola loperazione di destra e
poi, solo successivamente, lo scrive nella zona di memoria m. E distruttiva a sinistra.
<<ENDL E \N
-digitare cout<<<<endl, ma in questo caso si andr solo a capo, senza spaziature tra un rigo e laltro, a
meno che non se ne digitino pi di uno.
GLI OPERATORI
Possono essere:
-aritmetici;
-relazionali o di confronto: < (minore), > (maggiore), >= (maggiore o uguale), (minore o uguale)<=, ==
(uguale), != (not uguale, diverso). Possono essere visti come una domanda che avr una risposta di tipo
booleano (vero o falso).
possibile fare una distinzione se prendiamo in considerazione gli operandi. Gli operatori si dicono binari
quando sono due gli operandi. Unari quando uno solo, come il NOT.
1.(NEGAZIONE)
2.* / %
3.+ -
La priorit stabilisce lordine con cui vanno letti gli operatori. Lassociativit stabilisce la lettura degli
operatori nel caso in cui essi abbiano stessa priorit. Negli operatori aritmetici da sinistra verso destra, in
quelli di assegnazione da destra verso sinistra.
Hanno tutti la stessa priorit e gli operandi sono inseriti a due a due. Quindi: 18<eta && eta<=25. Non
possibile scrivere un compreso(18<x<25) come in matematica ma bisogna utilizzare loperatore logico
AND (&&).
-AND (&&)
-OR (||)
-NOT (!)
In questo caso il not ha la priorit maggiore poich unario, e si mette sempre prima delloperando (!x e non
x!).
x y x&&y
F F F
F T F
T F F
T T T
TAVOLA DI VERIT OR
x y x||y
F F F
F T T
T F T
T T T
TAVOLA DI VERIT NOT
x !x
F T
T F
LEGGE DI DE MORGAN
La legge di De Morgan afferma che la negazione dellAND lOR dei negati e viceversa, cio la negazione
dellOR lAND dei negati. Il contrario di:
Sar:
(n<10) || (n>=20)