Nessun titolo diapositiva

Download Report

Transcript Nessun titolo diapositiva

fondamenti di informatica
parte 2
appunti per la laurea in Ingegneria Civile,
Edile, Ambientale
a.a. 2005-2006
di
anna maria carminelli gregori
[email protected]
Software
fondamenti di informatica parte 2
1
un' altra possibilità:
collegarsi alla Home Page dell' Università di
Trieste, clic su Facoltà, clic su Ingegneria, clic
su http://www.ing.univ.trieste.it/ Si apre la
pagina della Facoltà e verso la fine, tra i links
utili, si trova:
Programmi dei corsi ed archivio studenti
2 clic e si apre la finestra con la cartella carmin
fondamenti di informatica parte 2
2
Evoluzione dei S.O. (dal 1970)
Da Sistemi a lotti (Batch) a interattivi;
mono-utente mono-programmato;
DOS
“
“
multi_programmato;
Windows 3.x
.
molti utenti simultanei; Windows2000

multi_programmato o
WindowsXP

multi_tasking e
MacOs…

di rete;
Unix …VM ….
Nota !!! Altro tipo di Sistemi operativi:
S.O.“real_time”: tempo di reazione determinato da
un evento esterno (per es. un evento esterno come il
passaggio di un satellite e l’ attivazione di un
telescopio).
fondamenti di informatica parte 2
3
S.O. mono & multiprogrammato:
I Sistemi Operativi sono mono o multi task cioe’
tali da da poter eseguire un solo (mono) o piu’
programmi anche “contemporaneamente”.
I S.O. multi task sono suddivisi in multiutenti e
monoutente.
I S.O. multi task e monoutente danno all’utente
la possibilita’ di effettuare piu’ funzioni;
Nei S.O. multi task e multiutenti il meccanismo
puo’ essere applicato a +utenti in apparente
contemporaneita’.
fondamenti di informatica parte 2
4
Significato di S.O. multiutente
& multiprogrammato:
(multiprogrammato o multiprocesso o
multitasking) & multiutente: piu’ utenti possono
lavorare sul medesimo computer eseguendo in
apparente contemporaneita’ piu’ programmi:
apparente perche’ in realta’ esiste tra i
programmi un’ articolazione temporale (=>time
sharing) definita dal S.O. stesso;
multiprogrammato (o multiprocesso o
multitasking): ogni programma puo’ eseguire
piu’ funzioni.
fondamenti di informatica parte 2
5
Subito 2 esempi
Con il Personal si può usare il DOS e/o +spesso
Windows in modalita’ singolo utente, ma con
Windows si possono attivare piu’ programmi;
nel Laboratorio di Informatica e’ usato
WindowsXP ossia un S.O. che può controllare
una rete locale di E.E.
Come gia’ indicato, l’ utente usa uno degli
elaboratori connessi ad un E.E. chiamato
SERVER che gestisce la rete locale e condivide
tra tutti il suo disco fisso, suddiviso in piu’
partizioni chiamate E: , S: , H: X: (queste sono
denominazioni in DOS… +oltre).
fondamenti di informatica parte 2
6
Laboratorio e rete
I programmi che lo studente (=utente ) vuole
usare non sono residenti sulla macchina locale ,
o CLIENT, ma sul disco rigido condiviso dal
Server con tutti gli E.E. del Laboratorio.
La connessione al Server avviene tramite
accesso con username e password chiesti all’
avvio di ogni E.E. locale: la loro mancanza
inibisce l’ accesso ai programmi.
 … ma una volta connessi il modo di lavorare e’ simile a quello
su un E.E. non condiviso e allo studente sembra di essere l ’
unico utilizzatore (… afondamenti
partedii informatica
tempi parte
di attesa!!)
2
7
S.O. multi - utente e
multi_tasking (o multiprocesso)
Funzioni:










eseguire i comandi utenti;
gestire Input/output e file;
segnalare errori;
assegnare la CPU ad ogni progr.-utente per un tempuscolo con
apparente contemporaneita’ di
esecuzione (compito Scheduler);
fornire i servizi richiesti dalla rete;
assicurare sicurezza e privatezza
informazioni del singolo utente
e del sistema ...
fondamenti di informatica parte 2
8
S.O. mono - utente e
mono_tasking (DOS)
Funzione: esecuzione dei comandi utenti;

gestione Input/output e file;

segnalazione errori.
E’ caricato all’ accensione dal BOOTSTRAP nella
zona convenzionale della RAM (0 - 640K) ove
resta fino alla fine sessione
(permanentemente sta nella ROM).
E’ TUTTORA fondamentale: Windows2000 per
esempio vi si “appoggia” ! => segue una sua sintesi.
fondamenti di informatica parte 2
9
Fasi di caricamento del DOS
All’ accensione: RAM e’ vergine, ROM contiene:
_ il “caricatore” (BOOTSTRAP),
_ i programmi diagnostici per la verifica dell’
Hardware e dei perferici di I/O (BIOS= Basic
Input output System).
Tutto viene subito caricato nella RAM. Da qui il
BOOTSTRAP puo’ caricare dal disco nella zona
convenzionale della RAM quei programmi del
DOS che li’ risiederanno per tutta la sessione di
lavoro.
 NOTA: un programma per essere eseguito deve stare in RAM
!
10
prompt & comandi del DOS
Ogni S.O. ha un suo proprio prompt che appare
quando il S.O. e’ pronto a rispondere ai
comandi dell’ utente che sono anch’ essi propri
del S.O. Come esempi, il prompt e’:
per il DOS il nome del disco ove si trova la
parte non residente del DOS seguito da >
ossia per esempio C:>
per Windows il menu’ grafico che usa un
modello a finestra = metafora della scrivania.
fondamenti di informatica parte 2
11
Il DOS non e’ sensitivo
Il DOS e’ un S.O. a comandi che si possono
scrivere in maiuscolo o minuscolo.
I comandi propri del DOS si trovano nei
manuali e nell’ help in linea: il loro formato e’
molto semplice ….
es. copy mio.c tuo.c -> effetto: il
contenuto del file mio.c e’ copiato nel file
tuo.c … ricoprendo ogni eventuale contenuto
precedente !!! ATTENZIONE !
fondamenti di informatica parte 2
12
e Windows 3.x e Windows 2000?
Viene caricato col DOS e si presenta con i suoi
menu’ e le sue cartelle che appaiono su una
finestra del display a simulare le pile di pratiche
allineate sul piano della scrivania. Come le pile di
pratiche sono da aprire, cosi’ le cartelle si
interrogano ponendosi con la freccia del mouse
su ciascuna di esse e facendo clic col mouse. Il
mouse si usa su qualunque altra immagine
presente: per es. su E.E., sui dischi di E.E., sul
tasto Avvio per passare a Dos, ...
In questo modello a finestra, dove il Desk-Top
rappresenta la scrivania, i file (=pratiche) sono
rappresentati da icone, i direttori da cartelle. 13
e Windows XP ?
Come Windows 2000, e’ un S.O. anche per reti di E.E.
Nella sua architettura a strati o livelli, al livello più
basso il Kernel non interfaccia l’ hardware
direttamente, ma tramite un altro strato HAL
(Hardware Abstraction Layer) che isola il processore in
modo da facilitare la portabilità del sistema su varie
piattaforme (tipi di E.E.).
Il Kernel è collegato al System Service Interface
che interfaccia lo strato Executive Components con le
applicazioni che, attraverso emulazione di software,
realizzano la compatibilità con diversi
(micro)processori.
Si ottengono così Portabilità e Compatibilità.
fondamenti di informatica parte 2
14
Traccia di WindowsXP
Lo schema già introdotto per un generico S.O.
deve essere arricchito di 2 strati: uno (HAL)
rivolto alla compatibilità con altri hardware, l’
altro (Executive) contenente applicazioni che
emulano altri (micro)processori.
APPLICATIVI
Soft.base: prg.util.
shell
 System_file/Syst.Service
kernel
Hardware
Exec. Components
S.O.
HAL
fondamenti di informatica parte 2
15
System Service Interface permette anche
la gestione di reti:
WindowsXP gestisce la rete usata nel Lab. che e’ del
tipo Client-Server con un E.E. (=Server) adibito a
fornire i Servizi richiesti dagli altri E.E.(=Client).
Il modello Client-Server, con piu’ Server (detti
I.S.P.=Internet Service Provider= distributori di servizi
di Internet) e tanti Client e’ molto diffuso ed e’ usato
in Internet e nelle sue sottoreti.
Internet e’ nota anche per la diffusione di W.W.W. =
World Wide Web => la “ragnatela tessuta” sulla rete
per la gestione di informazioni che stanno nei vari E.E.
della rete. Questi per comunicare usano il protocollo
(=insieme di regole) TCP/IP (Tranmission Control
Protocol/Internet Protocol).
fondamenti di informatica parte 2
16
Informazione e Ipertesti: solo
cenni
Con E.E. si puo’ fruire di informazioni non solo
in modo sequenziale, ma navigando tra diverse
aree di un disco, in particolare di un disco
Ottico (Compact Disk o C.D.) se si dispone del
suo lettore. Come? Per es. usando gli ipertesti.
Definizione di ipertesto: documento non lineare
in cui si puo’ accedere alle informazioni non
solo sequenzialmente: i concetti sono collegati
tra loro con collegamenti (=link logici) che
permettono di saltare tra le pagine dell’
ipertesto seguendo il percorso logico piu’
interessante.
RICORDARE l’ uso dei dizionari !
fondamenti di informatica parte 2
17
e l’ ipermedia ? solo cenni
Dall’ ipertesto si passa all’ ipermedia quando i
collegamenti non riguardano soltanto
informazioni testuali ma immagini, grafica in
movimento, musica,... dati multimediali che
possono trovarsi anche su C.D.
Quando l’ informazione non risiede su un C.D.
ma e’ diffusa in rete ossia richiede di navigare
o passare da un E.E. ad un altro, si parla di
multimedialita’ in rete. L’ accesso a informazioni
in rete richiede anche software particolare
per tener conto dei link logici oltre a quelli fisici.
fondamenti di informatica parte 2
18
W.W.W. ( = Web) : un accenno
E’ software installato su appositi Server (detti Internet
Server_Web componenti degli I.S.P.) che facilita sia la
comunicazione in Internet sia la gestione di
documenti ipermediali (informazioni testuali e
immagini, suoni, collegati tra loro) pubblicati in
Internet.
I documenti sono scritti spesso in HTML =Hyper Text
Markup Language, che permette una descrizione del
loro formato (si usano pure XML= eXtensible Markup
Language e JAVA, linguaggio Object Oriented come
C++). La descrizione e’ interpretata e presentata dai
browser (opportuni programmi posti nei vari Client
come per es. Netscape) detti Client_Web.
fondamenti di informatica parte 2
19
Con HTML e’ possibile:
descrivere un documento e collegarlo ad altri
documenti locali o remoti. Il collegamento e’
realizzato con frasi del linguaggio HTML che
specificano il nome del documento da collegare
e la sua locazione indicata come URL (Uniform
Resource Locator). Nella URL sono indicati:
 il protocollo (insieme di regole) usato per accedere
a documenti Web, http:// (hyper text transfer
protocol) che utilizza i servizi di trasmissione
standard tipici di Internet forniti da TCP/IP;
 la locazione, indicata con:
 /nome del Server_Web/directory/nome_file
fondamenti di informatica parte 2
20
E questa specifica della URL
e’ usata anche nei vari collegamenti ai Siti
Internet lavorando col Client_Web disponibile,
per es. Netscape.
Su/con Netscape si possono fare esperimenti,
prove collegandosi a URL note. Per es.
http://home.netscape.com/
http://www.univ.trieste.it/servizi /


ricerca
didattica

borse
…ecc.
 Un esempio di file in html è ma.htm che segue
fondamenti di informatica parte 2
21
ma.txt
 <HTML>
 <HEAD>
 <LINK REL="stylesheet" TYPE="text/css" HREF="class/ing.css">
 <TITLE>MIO</TITLE>





</HEAD>
<BODY>
<FONT size="+2">annamaria</FONT>
</BODY>
</HTML>
fondamenti di informatica parte 2
22
Ancora un cenno sui linguaggi
di markup (marcatura)
HTML fu il primo di questi linguaggi, composti da
testo e da tag (etichette), un altro più recente
è XML (eXtensible Markup Language).
Tra questi 2 linguaggi ci sono analogie (per es. i
tag sono scritti nello stesso modo, ma le relative
regole sintattiche di XML sono più rigide) e
differenze. HTML serve per costruire e
visualizzare pagine Web, XML per descrivere e
inviare informazioni (documenti) usabili non
solo con il Web, ma anche in ambienti applicativi
diversi (motori di ricerca, word-processor, basi di
dati …)
fondamenti di informatica parte 2
23
File
Concettualmente: file = archivio di dati che
varia nel tempo. E’ possibile aggregare i dati
(=informazioni) in registrazioni = Record a
loro volta anche raggruppabili a blocchi.
Accesso informazioni: sequenziale / diretto
es. libro = successione di pagine
accesso sequenziale alle info: pagina dopo pagina
 “
diretto: occorre l’ indice d’ inform.  n.o pagina
Supporti: dischi (possibili accesso sequen.- diretto)
nastri ( bobine) (possibile solo accesso sequenz. ed
anche le “matite” USB Universal Serial Bus)
24
File & programmi
I file possono contenere anche programmi: in
questo caso il contenuto e’ una particolare
successione di informazioni. Queste
concettualmente sono comandi per E.E. e
quindi devono essere lette ed interpretate una
dopo l’ altra.
In generale pero’ parlando di file si intende
un archivio di informazioni su disco come per
esempio: dati anagrafici di persone o indirizzi
o classifiche finanziarie...
fondamenti di informatica parte 2
25
Dimensioni File
…. e la C.M. ? Concettualmente: un file(= archivio)
non “STA” in C.M. ma in Memoria di Massa. In
C.M. viene LETTO o CREATO e/o modificato a
blocchi un blocco per volta (vedere diapo
successiva) e quindi REGISTRATO su Memoria di
Massa col nome scelto.
Dischi e nastri= Memoria di massa o periferica
Es. Dimensione file: se K=1024=210, M=1048576= 220
1 pag. libro
 3 Kbyte
1 “
giornale senza foto  50 Kbyte
1 quotidiano
 2 Mbyte
1 immagine
 1 Mbyte ……...
fondamenti di informatica parte 2
26
La costruzione di un file
dipende dal tipo del file (sequenziale, ad accesso
diretto…) ma concettualmente avviene con l’ uso di
un programma che prenota un’ area di C.M.
(RAM) ove registrare un blocco di record
(formato da uno o più record secondo la
dimensione del record stesso).
Ogni record del blocco deve essere costruito con le
informazioni necessarie (es. #matricola, cognome,
nome, indirizzo…). Quando il blocco è completo
viene registrato su memoria di massa. Queste
operazioni sono ripetute fino all’ esaurimento delle
informazioni.
fondamenti di informatica parte 2
27
Disco (Hard, Floppy, C.D.) e
Direttori
Concettualmente: disco = deposito di archivi. Il S.O.
con il File System fornisce all’ utente una visione
logica dei dischi (indipendente dalla struttura
hardware) basata sui concetti di File e Cataloghi di
nomi di file = Direttori o Cartelle.
I file su ogni disco sono presentati all’ utente coi loro
nomi raggruppati in Direttori/Cartelle organizzati in
modo gerarchico con una struttura ad “albero”.
La struttura gerarchica (ad albero) appare nel
direttorio di ogni disco che contiene l’ elenco dei file e
dei suoi (sotto)direttori (cfr. tra 3 diapositive).
fondamenti di informatica parte 2
28
Denominazioni in DOS e …
Nomi di disco A: o B: (unita’ floppy); D:
(Compact); C: (hard) anche divisibile in
partizioni ( E: X: H: ...), Nomi di file: 2
stringhe prima e seconda separate da un
carattere PUNTO.
1 n.o caratteri prima  8
1 n.o caratteri seconda  3 = estensione
che caratterizza il tipo del file: es. prova.c ->
prg. in C; libro.txt -> testo; prova.exe-> prg.
eseguibile ...Questi sono nomi usati anche in
Windows come i nomi di Direttori= Cartelle (1
stringa caratteri.
fondamenti di informatica parte 2
29
La struttura gerarchica del
disco
appare nella rappresentazione grafica di
Windows che usa finestre collegabili tra loro
anche gerarchicamente.
In ogni finestra i direttori appaiono come
cartelle di un certo colore ed i file come
icone di forme e colori diversi secondo la
loro funzione. Per es. i testi scritti col Word
processor sono rappresentati con icone
contenenti una W; i programmi in C++ con
il simbolo di Windows; e cosi’ via.
fondamenti di informatica parte 2
30
Con Windows
per aprire un file basta porsi con la freccia del mouse
e fare 2 clik su Risorse Computer: compare una
finestra con immagini del floppy A: del disco locale

C: del video … Si pone la freccia del mouse sul disco
C: Con due clik “si apre” il disco e appare una
finestra con le cartelle dei direttori e dei file. Basta
porsi con la freccia del mouse e fare clik per 2 volte
sulla cartella che si vuole aprire.
Ogni cartella può contenerne altre seguendo una
struttura ad albero evidenziata nella diapo seguente
dove a partire dal direttorio del disco C: appare la
situazione dell’ esempio.
fondamenti di informatica parte 2
31
Struttura logica ad albero

“C:”
Clic su C: ed appaiono le
 ____|____
cartelle
 |
|
anna e lola
 anna
lola
in anna si trovano 3 altre
__|______ |
cartelle prg tesi mio
|
|
| pr.txt ottenendo l’ albero qui a
prg tesi mio
sinistra dove in lola c’e’ solo

pr.txt = file di testo
fondamenti di informatica parte 2
32
… e poi ?
Per visualizzare e/o cambiare il file pr.txt
sia che ci si trovi in DOS che in Windows
basta attivare un programma che ne permetta
la visualizzazione e modifica per es. un editor.
In DOS basta digitare edit e seguire le sue
indicazioni;
in Windows basta fare clic col mouse sul file o
sull’ icona di un editor e alla sua apertura
seguire le sue indicazioni.
fondamenti di informatica parte 2
33
Formattazione di dischetti
floppy in DOS
Inizialmente il floppy e’ vergine. In DOS col
comando FORMAT A: si ottiene di formattare il
dischetto inserito nell’ unita’ A: (drive)
La formattazione e’ un’ operazione che fa
PERDERE ogni eventuale informazione
preesistente. Per un floppy si distingue in:
formattazione FISICA che divide il dischetto
in tracce e settori di 512 bytes ciascuno;
formattazione LOGICA che crea un’ area del
dischetto riservata al DOS.
fondamenti di informatica parte 2
34
e il disco rigido = hard disk =
disco fisso …?
La formattazione FISICA e’ realizzata dal
costruttore, mentre il comando FORMAT puo’
effettuarne la formattazione LOGICA con
conseguente PERDITA di ogni eventuale
informazione preesistente. MAI FARLO SENZA
PENSARCI ALMENO 3 VOLTE !!!
Il tempo richiesto per accedere ad un’
informazione del Disco Rigido e’  30ms
(millisecondi); per il floppy 10-20 volte di piu’.
fondamenti di informatica parte 2
35
e i dischi ottici ? i C.D.? i D.V.D. ?
 Possono apparire come depositi di informazioni piu’
lenti, ma con capacita’ molto elevata (per i C.D. 
700 Mbyte ed oltre per i DVD=Digital Versatile Disk
utili per sequenze di immagini = film); esistono di
vario tipo e richiedono un masterizzatore =
dispositivo con raggio laser ad alta energia ;
 (Diventano memorie di massa aggiuntive come le memorie
permanenti FLASH poste in un contenitore “a matita”
collegabile all’ U.S.B. (Universal Serial Bus) di E.E.;)
 la loro registrazione =“masterizzazione” dipende
dal loro tipo: per i CDRom é effettuata una sola
volta facendoli diventare memorie di massa
aggiuntive, ma di tipo ROM; per i CDR/W può
essere realizzata più volte purchè l’ elaboratore in
uso abbia il masterizzatore ed il relativo software.
 I file su ogni C.D. sono presentati all’ utente
organizzati ad “albero” come accade per gli altri36
dischi.
Creazione di file di tipo testo
Utilizzo di Editor = programma appartenente al
Software di base per comporre testi
(EDITING = operazioni di scrittura,
visualizzazione, cancellazione, modifica …)
editor attuali: a finestra; ogni ambiente di
sviluppo programmi (+oltre) e/o il S.O. ha un
suo editor che permette di comporre testi (vedi
Editor-DOS). RICORDARE: piu’ potente dell’
editor e’ il Word-processor = applicativo (gia’
visto) che permette tutte le operazioni
tipografiche . fondamenti di informatica parte 2
37
programma in C, o in
Fortran, o in Pascal
Con l’editor si puo’ creare sul momento
qualunque sequenza di caratteri … e quindi
anche un programma vero e proprio in un
linguaggio di programmazione come il C ?? o il
C++?
Risposta negativa: prima occorre avere il
suo PROGETTO CONCETTUALE, poi il suo
PROGETTO LOGICO e solo dopo si puo’
scrivere il PROGRAMMA ORIGINE o source
program.
fondamenti di informatica parte 2
38
Fasi di costruzione di ogni
prodotto software
PROGETTO CONCETTUALE: qui si devono
definire gli obiettivi, con quale
algoritmo si vogliono raggiungere, le
motivazioni. Ossia COSA, COME, PERCHE’.
PROGETTO LOGICO: la sua bozza con l’
algoritmo risolutivo.
PROGRAMMA ORIGINE (source program)
scritto nel linguaggio artificiale scelto
per es. in C.
fondamenti di informatica parte 2
39
Quale linguaggio artificiale ?
Di linguaggi artificiali ce ne sono migliaia: la
scelta va a quello che appare piu’ vicino al
problema da risolvere.
Per problemi scientifico-tecnici e’ adatto il
FORTRAN (da FORmulas TRANslator);
per privilegiare l’ aspetto didattico si usa il
Pascal (dal nome del filosofo Blaise Pascal);
“general purpose” e’ il linguaggio C (il S.O. Unix
e’ stato scritto in C);
il C++ e’ una versione del C orientata agli
oggetti paradigma di programmazione in voga
attualmente. Il C++ nasce nel 1980 e con il C
e’ compatibile per gli aspetti elementari.
fondamenti di informatica parte 2
40
Tipiche funzioni svolte da un
Programma:
Lettura dati (input);
Elaborazione dei dati (sequenziale, ciclica,
condizionale) e costruzione dei risultati;
Visualizzazione risultati (output).
… e senza la visualizzazione ?!? ASSurdita’: i
risultati resterebbero ignoti !
Le tipiche funzioni svolte possono essere
realizzate in parti (“moduli”) a se’ stanti.
fondamenti di informatica parte 2
41
Ma i dati ?
La funzione che li legge deve poterli
memorizzare: per questo il programma deve
“prenotare” posizioni di C.M.
Lo fa usando costrutti ed entita’ del linguaggio
dette variabili semplici o composte come
vettori e matrici, (come in matematica), piu’ in
generale “strutture di dati”, per identificare,
contenere e trasferire le informazioni lette.
Tali entita’ servono anche per la loro
elaborazione e quindi la loro visualizzazione.
fondamenti di informatica parte 2
42
Domanda:
E senza alcuna lettura di dati ha senso un
programma?
Si: i dati posono essere generati usando
una successione di interi o usando un
generatore di numeri pseudocasuali ...
fondamenti di informatica parte 2
43
Processo di traduzione
Una volta scritto il source program nel
linguaggio artificiale scelto (per es. il C) con le
relative funzioni di lettura, elaborazione e
visualizzazione, occorre: registrarlo in un file
(per es. uno.c) , e attivare il traduttore che fa
la traduzione da C a linguaggio della macchina
(di cui alcuni esempi sono in parte 5). I
traduttori si distinguono in:
INTERPRETI, COMPILATORI, ASSEMBLATORI,
tutti programmi di utilita’ del Software di base.
fondamenti di informatica parte 2
44
Tipi di Traduttori
Interprete: tipico e’ quello della shell del
D.O.S. che interpreta e manda in
esecuzione i comandi digitati dall’ utente uno
alla volta : non produce alcuna traduzione
permanente in linguaggio della macchina.
Es. in DOS: Dir A:

Type miofile.txt
Dir e Type: interpretati e subito eseguiti
fondamenti di informatica parte 2
45
Software di base:
compilatori, assemblatori, linker ...
Compilatore: interpreta e traduce nel
linguaggio macchina le frasi di un linguaggio
artificiale ad alto livello che compongono un
programma: produce un programma binario
detto programma oggetto che e’ l’ equivalente
del programma origine (source), ma nel
linguaggio di E.E.
Assemblatore: analogo al Compilatore, ma il
linguaggio artificiale e’ elementare, con
struttura simile al linguaggio della macchina.
La funzione del linker appare qui di seguito.
 editor, interpreti,
fondamenti di informatica parte 2
46
Fasi del processo traduzioneesecuzione
Dopo la stesura con l’Editor del SourceProgram,
1) si attiva il compilatore (fase di compilazione)
che traduce il Source Program nel Programma
Oggetto e lo pone in un file con estensione .obj
che e’ in linguaggio della macchina ma non
ancora eseguibile (per es. non ha le librerie di
lettura_dati/scrittura tipiche del linguaggio);
2) Il Linker completa il processo di traduzione
effettuando il collegamento tra i moduli o
componenti (“fase di linkaggio”): effettua,per
es., il collegamento con le librerie tipiche del
linguaggio e produce un programma eseguibile
(con estensione .exe).
3) Dopo questo si passa alla fase di esecuzione.
fondamenti di informatica parte 2
47
Ambiente amichevole
I compilatori attuali (sia del linguaggio C, C++,
che del Fortran) forniscono un ambiente “User
Friendly” dotato di Editor, compilatore, loader
ossia un caricatore, linker, interfaccia
amichevole: cio’ rende automatiche le 3 fasi :
vedere esempi in C e in C++.
Si e’ tentati di scrivere direttamente il Source
Program …
ma e’ una strategia perdente !
fondamenti di informatica parte 2
48
Strategia corretta
Il RISCHIO e’ di essere tanto coinvolti
dalle regole linguistiche (sintattiche e
grammaticali) da dimenticare gli obiettivi
desiderati.
PRIMA di usare il linguaggio si deve
prepararne il PROGETTO.
…. COME ??
fondamenti di informatica parte 2
49
Il progetto ed il suo
linguaggio: possibilita’
Il progetto deve contenere cio’ che si vuole
ottenere (gli obiettivi) e come fare ad
ottenerlo. Per esprimerlo le alternative sono:
a) si puo’ usare un linguaggio simile a quello
parlato (PSEUDO-CODICE), ma piu’ sintetico;
b) si puo’ usare un linguaggio grafico (coi simboli
essenziali mostrati di seguito) producendo uno
schema a blocchi (diagramma di flusso, flow-chart)
delle operazioni che devono essere eseguite. Questo
però è un metodo più vecchio.
Segue esempio.
fondamenti di informatica parte 2
50
I diagrammi di flusso
usano simboli semplici: il rettangolo e’

tipico dell’ elaborazione; il rombo di

decisioni; il parallelogramma,

di letture; l’output e’ il seguente:

altri simboli sono: cerchi, frecce ...
fondamenti di informatica parte 2
51
Esempio progettino per
visualizzare l’ ASCII code
 a) Si vuole ottenere il valore numerico Num (ASCII code)
di un carattere CAR della tastiera diverso da 0; se 0
Stop.
 b) Legenda: I=Inizio; S=Stop; T=True; F=False.
I
CAR
F
CAR=0?
Num=(int)CAR
Num
T
S
52
Dal Progetto al Programma
Come scrivere questo (o qualunque)
programma in C o C++ ? (Il Source
Program scritto in C++ è in program2
(project7), ma prima di esaminarlo
seguono alcune idee.)
fondamenti di informatica parte 2
53
3 Motti da memorizzare
1. MUTISMO & RASSEGNEZIONE
2. AVIARIA  VOLATILE  RAM 
PERICOLO
3. BASSE ATTESE = (LOW
EXPECTATION)  DIRITTO ALLA
FELICITA’
fondamenti di informatica parte 2
54
Segue dal Progetto al
Programma
Ogni prg. in C ed in C++ e’ composto da funzioni
scritte consecutivamente; ogni funzione C e C++ ha la
forma seguente (dove i simboli < > racchiudono frasi
esplicative e non appartengono al C o al C++).
<intestazione della funzione>
{
 <corpo della funzione racchiuso dalle {}>
}
Segue un esempio project7 in
/carmin/Inf2005/programm2).
fondamenti di informatica parte 2
55
 /* INIZIO DOCUMENTAZIONE:

Il programma é il primo ad essere strutturato a
MODULI (funzioni) ed é il primo ad usare non solo
elaborazione sequenziale, ma anche condizionale.
Deve: leggere un carattere e porlo nella variabile
globale car; se car é diverso da 0, deve convertirlo
in numerico, porlo nella variabile num e stampare
car e num.
 Autore: < NOME E COGNOME > data:....ambiente:
LAB.ING. S.O.= …
 Variabili (STRUTTURE DATI) usate nel programma:
 car
char; per leggere i caratteri (INPUT)
 num
integer; per memorizzarne il valore
numerico (OUTPUT)
 Procedure o MODULI componenti: MAIN, LEGGI,
ELABORA, SCRIVI, ATTENDI
 FINE DOCUMENTAZIONE */
56
/* INIZIO parte dichiarativa */
#include "stdio.h" /* Libreria usata: Standard
Input-Output C */
#include <iostream.h> /* Libreria usata:
Standard Input-Output C++ */
/*Variabili GLOBALI usate in tutti i MODULI*/
 int num;
char car;
/* Dichiarazione dei Prototipi dei MODULI usati */
void leggi();
void scrivi();
void elabora();
void attendi();
fondamenti di informatica parte 2
57
 /* INIZIO Parte Esecutiva */
 main() { /* Inizio Modulo principale */
 leggi();
 if ( car != '0') /* fai il seguente blocco di
istruzioni */

{/* inizio del blocco if */ elabora(); scrivi();
attendi();} /* fine del blocco if */
 else /* altrimenti segnala con il blocco seguente
*/

{ printf( "ATTENZIONE: car = %c ", car);
attendi();

}; /* fine blocco di segnalazione */
 return (0);
 } /* Fine Modulo principale */

fondamenti di informatica parte 2
58
Il main
Tra le funzioni C e C++ esiste la funzione principe: il
main che rappresenta il “programma principale” punto
di innesco di ogni programma C e C++.
Come ogni funzione matematica ha un nome ed
argomenti racchiusi tra parentesi tonde (es. log(x))
cosi’ ogni funzione C, C++ ha un nome: se gli
argomenti mancano le parentesi restano: es. main()
Il corpo del main deve contenere l’ attivazione di
tutte quelle funzioni che portano a raggiungere gli
obiettivi posti nel progetto: i risultati desiderati.
Il corpo di ogni funzione contiene il proprio ambiente
descritto in fond3.
fondamenti di informatica parte 2
59
Corpo delle Funzioni
Piu’ in dettaglio: il corpo di ogni funzione C e
C++ ha frasi dichiarative ed esecutive, queste
ultime col significato di istruzioni, comandi. Se
dichiarazioni e comandi mancano il corpo e’
vuoto.
Il minimo programma C e’:
main()
{
}
fondamenti di informatica parte 2
60
In C++
il minimo programma e’:
main()
{
 return (0);
}
Il corpo e’ composto dalla sola frase return
che restituisce il controllo al S.O. con lo
zero tra parentesi come segnale di fine
corretta. In C++ l’ extension deve essere
cpp
fondamenti di informatica parte 2
61
C e C++
Come gia’ detto in questo corso sara’ usato il
C++ che e’ compatibile con il C “in basso”
(aspetti elementari) e per questo all’ inizio si
useranno anche frasi del C. I concetti
fondamentali della Programmazione ad Oggetti
che caratterizzano il C++ (ed altri linguaggi
come il linguaggio JAVA) possono essere
introdotti successivamente. Il motivo di cio’ sta
nel fatto che l’ Oggetto puo’ essere considerato
come una generalizzazione di strutture e
sottoprogrammi.
fondamenti di informatica parte 2
62
Però questa non è l’ unica
impostazione. Per es. Cay Hortsmann in
“Fondamenti di C++ “,McGraw Hill (Biblio. 2)
comincia a parlare di oggetti molto presto (cap. 3).
La sua idea è che la progettazione di oggetti non è
facile, ma è facile usare “oggetti già progettati da
altri”e quindi si può introdurli subito.
E’ un’ opinione che non condivido perchè mi
sembra che produca un accumulo di novità che
possa rallentare l’ apprendimento della
programmazione.
fondamenti di informatica parte 2
63
Commenti (vedere in
program1 project1.cpp)
Per documentare un programma sono necessari
commenti che o sono racchiusi tra /* */ o preceduti da
// (solo col compilatore C++)
Es. main()
/*questo C_program scritto da …in data … su un
IBM_compatibile con MS-DOS */
 /* non fa niente !*/
 {
 }
 …ma scritto il programma come si dà in pasto al compilatore?
Usando l’ ambiente di sviluppo del C++… +oltre
64
Corpo
Per vedere questo ed altri programmi elementari
collegarsi a /carmin/Inf2005/programm1 ove si
trovano i project1-5 che si possono leggere ed
analizzare subito, con le indicazioni date in
ciascuno di essi.
 Le frasi costituenti il corpo di ogni funzione
possono essere anche raggruppate per costituire
istruzioni composte. Ogni istruzione composta
e’ racchiusa in parentesi graffe e costituisce un
BLOCCO: vederne un esempio in project7 in
/carmin/Inf2005/programm2
fondamenti di informatica parte 2
65
Visualizzazioni
All’ interno dei programmi project1-5 e’ usata
anche la frase di visualizzazione “printf”
appartenente alla libreria di Input/Output del C
come in project2 di seguito mostrato.
La frase printf permette l’ attivazione della
funzione C per la visualizzazione resa
disponibile includendo il file <stdio.h>
E’ un file chiamato header (e percio’ l’
estensione h) che contiene i prototipi delle
funzioni di libreria di Input/Output tipiche del
C….
fondamenti di informatica parte 2
66
#pragma hdrstop //terminates the list of header files ect
#include <condefs.h> // includes specific header file
#pragma argsused //affects only the next function
(main): it disables the warning message: "Parameter
name
 is never used in function func-name
#include <stdio.h> // includes C standard I/O header file
main() /* questo programma dice Hello Mondo, ma
sparisce: per
non farlo sparire si può mettere un comando di lettura
come scanf (" "); che aspetta un carattere */
{
printf("Hello World");
return(0);
}
fondamenti di informatica parte 2
67
E in C++ ?
In C++ lo stesso risultato (vedere
Project3.cpp) si ottiene con l’uso delle
istruzioni di I/O del C++ ossia per la
visualizzazione (qui di una stringa di caratteri)
cout << “Buonasera” ;
e includendo l’ header file <iostream.h> della
libreria di I/O tipica di C++
NOTA: l’ uso di ogni libreria e’ reso possibile
con la frase #include seguita dal nome del file
con le definizioni che il compilatore deve
conoscere perche’ la libreria sia utilizzabile. 68
Precompilatore
Le frasi come #include che iniziano col
simbolo # a colonna 1, non appartengono
al linguaggio C ne’ al C++: esse sono
direttive per il “precompilatore” o
“preprocessore” ossia un programma che
fa parte dei sistemi C e C++ e viene
attivato automaticamente prima della
compilazione.
 PERCHE’ ?
fondamenti di informatica parte 2
69
Caratteristica base di C e C++
e’ la velocita’ di compilazione: per questo i 2
compilatori devono essere brevi; per questo il
precompilatore li esenta da compiti pesanti
come:
definizione di costanti: #define tre 3
 “
“ espressioni #define paga 9*365
inclusione di testo sorgente che si trova nel file
chiamato mio.h (h sta per header):
#include <mio.h>
fondamenti di informatica parte 2
70
Velocita’
Proprio per rendere il compilatore piu’ veloce il
C non ha funzioni prefabbricate al suo interno,
ma ha librerie, biblioteche di funzioni gia’ in
binario (precompilate) che sono … centinaia.
Si tratta di tanti tipi di funzioni: matematiche,
grafiche, di I/O … Ogni libreria e’ formata da
coppie di file di cui uno (nel direttorio Lib)
contiene le funzioni compilate e l’ altro e’ un file
header contenente le loro dichiarazioni e
tutte le definizioni che il compilatore deve
conoscere per rendere usabile la libreria stessa.
fondamenti di informatica parte 2
71
Compiti del programmatore e
del precompilatore
Il programmatore indica al precompilatore quali
librerie intende usare con la direttiva #include;
il precompilatore inserisce i file indicati con
#include all’ interno del source program prima
della compilazione.
Il compilatore puo’ cosi’ riconoscere le funzioni
usate all’ interno del source program (per es.
printf) perche’ vi trova il loro prototipo incluso:
il collegamento al loro codice in binario (che sta
in …\Lib) è fatto dal Linker. (Questo tipo di
meccanismo si puo’ anche usare per
concatenare librerie scritte eventualmente dall’
utente e poste infondamenti
altre
coppie di file.)
di informatica parte 2
72
Per altre direttive come
#pragma, tipico del CBuilder4,
guardare l’help relativo che dice:
#pragma hdrstop //terminates the list of
header files of your project
#include <condefs.h> // includes specific
header file
#pragma argsused //affects only the next
function (main).
//It disables the warning message: "Parameter
name is never used in function func-name
fondamenti di informatica parte 2
73
Flussi (stream)
Il C++ ha un proprio sistema di I/O che usa il
concetto (tipico del S.O. Unix) di “flusso di
informazioni” (stream) ossia sequenza continua
di byte. Ogni flusso puo’ essere connesso a una
unita’ di I/O: i flussi di Output saranno collegati
al video o alla stampante, di Input alla tastiera.
Per usare il sistema di I/O del C++ occorre
includere il file <iostream.h> dove sono
dichiarate le funzioni e gli operatori usabili per
gestire operazioni di I/O e flussi di informazioni.
fondamenti di informatica parte 2
74
Operatori (funzioni) << >>
L’ operatore << (freccia a sin.) invia le informazioni
indicate alla sua destra sul flusso standard di output
(cout posto alla sua sinistra) dopo averle convertite
dal binario alla forma testuale; volendo inserire
anche il carattere di fine riga si puo’ porlo con un
ulteriore << endl; (end of line)
L’ operatore >> (freccia a destra) estrae dal flusso d
entrata cin (posto alla sua sinistra) le informazioni
digitate sulla tastiera, le converte dalla forma
testuale in binario e le assegna alle variabili indicate
alla sua destra .
fondamenti di informatica parte 2
75
cin, cout, cerr.
Nel file <iostream.h> sono definite le
operazioni di I/O e sono definiti e aperti i
seguenti flussi delle informazioni:
ingresso standard connesso alla tastiera: cin
uscita standard connesso al video:
cout
uscita “
di errori conn. al video: cerr
Ogni programma preleva i dati dallo stream di
ingresso e deposita risultati in quello di
uscita. Prelievo e deposito avvengono con l’
uso degli operatori freccia (funzioni).
fondamenti di informatica parte 2
76
Informazioni, quali ? Come ?
Per usare e trasferire le informazioni (per es. in
C.M.) occorre un formalismo. Tutti i linguaggi
di programmazione (Pascal, C, C++, Fortran …)
usano le variabili intese alla stregua di variabili
algebriche, ma considerate come veicolo di
transito e di identificazione delle informazioni =
dati e/o risultati.
Le variabili hanno un nome ed un tipo cosi’
come i dati identificati sono di un cero tipo:
interi, caratteri ...
fondamenti di informatica parte 2
77
Esempi d’ uso gia’ intravisti
nei programmi ...
Cosi’ scrivendo una tipica frase di Input in C++
cin >> a >> b >> c;
si indicano con a b c i nomi delle variabili
che (in fase di esecuzione) acquisiranno i valori
inseriti in ingresso (digitati nella tastiera dall’ utente
e intervallati tra loro da almeno 1 spazio bianco).
Per le visualizzazioni si possono usare ancora i
nomi delle variabili e/o loro “combinazioni”
(espressioni algebra), e costanti e funzioni e...
cout << “la somma a+b =“ << a+b <<endl;
fondamenti di informatica parte 2
78
Esempi e considerazioni
Confrontare le frasi di input/output in C ed
in C++ nei programmi in
/carmin/Inf2005/programm1 di nome
project1.cpp - project5.cpp
Si notera’ che il cout << e’ piu’ semplice
della printf (che richiede specifiche di
controllo del formato in cui si desiderano i
valori da visualizzare ) e cosi’ pure il cin>>
rispetto alla scanf (diapo seg.)
fondamenti di informatica parte 2
79
printf e scanf (cenni)
Analoga alla printf e’ la scanf che si usa in C per
leggere valori da assegnare alle variabili;
entrambe richiedono specifiche di controllo del
formato in cui si desiderano i valori da visualizzare o
da leggere;
le specifiche di controllo piu’ usate sono:
%d per leggere/visualizzare interi in base 10;
%f “
“
“
valori float in base 10;
%c - %s per legg./visual. Caratteri - Stringhe di car.
Inoltre alla scanf le variabili devono essere passate
per indirizzo (cfr. parte 3) per es. premettendo al
nome della var. dafondamenti
leggere
l’ operatore
&
di informatica
parte 2
80
#include <nomefile.h> oppure:
#include “nomefile.h” ?
La prima, se nomefile.h sta nel direttorio del
sistema C o C++; la seconda, se nomefile.h sta
altrove.
L’ estensione .h indica che si tratta di un file
“header” che puo’ contenere i prototipi delle
funzioni della libreria usata.
Esempi: stdio.h e iostream.h
Cominciamo allora a vedere un programma ed a
compilarlo per poi eseguirlo.
Segue il programma project2 e quindi come
compilarlo.
fondamenti di informatica parte 2
81
#pragma hdrstop //terminates the list of header files…
#include <condefs.h> // includes specific header file
#pragma argsused //affects only the next function
(main): it disables the warning message: "Parameter
name
 is never used in function func-name
#include <stdio.h> // includes C standard I/O header file
main() /* questo programma dice Hello Mondo, ma
sparisce: per
non farlo sparire si può mettere un comando di lettura
come scanf (" "); che aspetta un carattere */
{
printf("Hello World");
return(0);
} //e per compilarlo? PRIMA DI TUTTO OCCORRONO…
fondamenti di informatica parte 2
82
… user_rname e password che abilitano
 la connessione al Server e sono richiesti all’ avvio del computer locale: la
loro, mancanza inibisce ogni accesso.
Coloro che ne sono sprovvisti useranno una password
comune ed un user comune comunicati al momento:
ogni studente (anche se ha la psw!) creerà una
cartella di lavoro in MyDocument con il proprio
cognome (anche se lo user è lo stesso per gli
sprovvisti di psw, le cartelle di lavoro sono diverse!!!)
e costruirà li' dentro il proprio project e tutti i file di
lavoro (per es. copierà lì il mio programma project2);
alla fine dell’ esercitazione gli studenti faranno logout,
tutti tranne UNO: da costui io andrò a cambiare la
password per la successiva esercitazione.
fondamenti di informatica parte 2
83
Con username e password
occorre attivare l’ ambiente BB4 (Borland Builder
4) ossia clik su: Start (Avvio), Programs, Borland
C++ Builder4, C++ Builder4
 (oppure clic su Mycomputer, LocalDiskC:, Program Files,
Borland, CBuilder4, Bin; bcb.exe; ())
Si apre l’ icona di BB4 e parte BB4 aprendo l’
ambiente di sviluppo del C++Borland con un’
applicazione Visual (grafica per es. che per ora
non sarà usata).
Invece viene subito usato il menù in alto che
contiene alcune parole come: File, Edit, Project ,
Run, per attivare strumenti che oltre al compilatore
fanno parte dell’ ambiente di sviluppo del
84
C++Borland.
L’ ambiente di sviluppo
ha le seguenti voci:
File per aprire/chiudere un file contenente un
programma origine gia’ registrato (.cpp);
Edit per fare le operaz. di editing sul file
aperto;
Project per usare un progetto e compilare il
relativo prg. origine (Compile Unit) ed
eventualmente “linkarlo” (Build All) con le
librerie richieste ottenendo il prg. eseguibile;
Run per fare eseguire il prg. eseguibile.
fondamenti di informatica parte 2
85
L’ applicazione Visual
 per ora non interessa quindi clic sul menù File e
close-all e sempre dal menù File clic su New: si apre
la finestra New item,
 dove, un doppio clic su Console Wizard, fa aprire
un’ altra finestra per la creazione di un’ applicazione
già impostata a tipo console, che è quella che
interessa;
 al clic su Finish viene presentato un programma
main vuoto dove dopo alcune direttive per il
precompilatore, c’è la funzione main seguita da
suoi argomenti che per ora non interessano
(cancellare) e return (0): si possono inserire le
frasi del proprio programma tra main() e
return(0) dentro le parentesi graffe, ma si può
anche...
fondamenti di informatica parte 2
86
…accedere ai miei programmi così:
clic sul menù File, clic su open: si apre una finestra
con Look in Documents e una freccetta finale, clic
sulla freccetta, clic su MyNetwork Place.
Se lo studente ha la psw c’é la “mappatura” ossia si
apre una finestra con arc_stud: 2 clic su carmin,
inf2005, program1, project2 …
Senza psw non c’è la “mappatura” MyNetwork Place
non c’è, ma c’è Entire Network. In basso accanto a
FileName digitare: ftp:\\serving4\arc_stud\ e poi 2 clic
su carmin, inf2005, program1, project2 …
SALVARE project2 nella cartella di lavoro creata (in
MyDocument), o sul disco condiviso del Server in X:
per gli studenti con psw. Farlo compilare (con clic su
CompileUnit sotto Project) ed eseguire con Run. 87
username & password personali
 abilitano ogni studente ad accedere al disco del Server
(arc_stud e prog_stud in lettura, partizione (Disco) X: in
lettura/scrittura; lo stud. puo’ usare tutti i programmi registrati
in arc_stud e prog_stud ;
 Per registrare può usare MyDocument (o H: e X: ???) partizioni
del disco fisso del Server per ogni studente, dove puo’
registrare i suoi programmi in alternativa al floppy personale o
a MYDocument che è locale, ma viene conservato.
 QUINDI costruito il proprio programma (prima di compilare!)
salvarlo con clic su File e su Save Project as nella cartellalavoro appositamente costruita di X: o di MyDocument,
altrimenti C++ cerca di porre i file intermedi (per es. l’ obj) in
arc_stud o prog_stud che sono protetti e si ha ERRor.
 Con Project è inteso un lavoro consistente di 4 file: il Source
(extension .cpp); il Source & direttive per il
precompilatore (.bpr); la versione tradotta in linguaggio
macchina (.obj) senza i collegamenti; la versione con supporti
ulteriori (.tds): conservare .cpp e .bpr, cancellare le altre.
88
Fare le sguenti modifiche ai
projects di program1
Visualizzare una sequenza di caratteri
(“vai a pescare?”) con cout includendo il
file iostream.h;
Usare #define per introdurre la spesa
annuale sapendo che al giorno spendo
55,43€;
leggere 5 caratteri e visualizzare tutte le
loro sequenze possibili ….
fondamenti di informatica parte 2
89
L’ esempio del progettino:
project7.cpp
 Nell’ ambiente di sviluppo di BB4, porsi sotto File e con
un clic su Open aprire il programma
 E:/Carmin/Inf2005/programm2/project7.cpp
 Esaminarlo con l’editor, farlo compilare usando Project e
girare (Run): questo comando (da solo) provvedera’
prioritariamente (se non e’ stato gia’ fatto) al “linkaggio”
del programma oggetto con le librerie usate (per es. di
I/O ), producendo il programma eseguibile di nome
project7.bpr (bpr  pronto per l’ esecuzione)
 Andando 35 diapo indietro lo ritrovate
 Per eseguire +volte project7 si puo’ usare +volte Run ...
fondamenti di informatica parte 2
90
Iterazione
Questa ripetizione si e’ resa automatica con un
programma che la realizza, project71. Ma quale
sara’ il progetto relativo ?
Mandando in esecuzione project71.bpr si nota
la ripetizione (=iterazione): per realizzare
questo tipo di procedimento occorre tornare a
rifare le operazioni gia’ fatte la prima volta fino
a quando e’ necessario;
occorre quindi ripetere la lettura di CAR, la sua
conversione in Num e la visualizzazione di
entrambi fino a quando si introduce lo zero …
ossia ...
fondamenti di informatica parte 2
91
b) Legenda: I=Inizio; S=Stop;
T=True; F=False.

I
Ripeti=TRUE
S
Ripeti
F
T
CAR
CAR=0?
F
T
Num=(int)CAR
Num
Ripeti = FALSE
fondamenti di informatica parte 2
92
Assegnazione semplice
Le frasi di Input servono per assegnare alle variabili i
valori immessi per es. da tastiera.
Il costrutto linguistico base usato allo scopo di
assegnare a variabili valori calcolati, e’ la frase tipica di
assegnazione, per esempio: z = b ;
Significato: il valore di b e’ trasferito alla zona di
memoria identificata dalla variabile di nome z; in
breve: il valore di b e’ assegnato a z
NOTA: b puo’ essere… tutto da una costante ad un’
espressione complicata…. cfr. avanti !
fondamenti di informatica parte 2
93
Assegnazione multipla
Oltre l’ assegnazione semplice c’ e’ in C e C++
quella multipla che (con variabili intere) e’ del
tipo seguente:
a = r = b = pippo = lei111 = 3;
e viene cosi’ interpretata ed eseguita:
(a = (r =(b=(pippo=(lei111=3)))))
ossia 3 e’ assegnato a lei111, quindi a pippo,
poi a b, quindi a r e infine ad a: valutazione
da destra a sinistra o iniziando dalla parentesi
piu’ internamente annidata.
fondamenti di informatica parte 2
94
Remember ed esercizi
ogni frase del corpo di una funzione C o C++ termina
con un punto e virgola;
nelle espressioni si possono usare parentesi tonde
anche annidate, un po’ come nella assegnazione
multipla dell’ esempio precedente.
Con tutto questo in mente scrivere:
un source_prg. C++ che presenti un menu’ di cibi; un
altro che presenti un menu’ di comandi DOS con
sintetica spiegazione; un altro che legga 3 numeri di 2
cifre dec. ciascuno e ne faccia il prodotto la somma, la
diff. e visualizzi tutto ….
fondamenti di informatica parte 2
95