fondamenti di informatica
parte 1…
appunti per le Scuole di
Specialita’ in Medicina,
a.a.1999-2000
di
anna maria carminelli gregori
fondamenti di informatica 1
Scopo del corso:
fornire: i principi, i concetti fondamentali,
le nozioni e l’ impostazione per l’ utilizzo
corretto dell’ Elaboratore Elettronico (E.E.)
imparando le nozioni di base dell’
Informatica.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
2
… ma l’ informatica, che
cos’ e’?
E` bene evidenziare subito cosa non e’ l'
Informatica ! NON E’:
Calcolo numerico ne’ Geometria ossia
non e’ una disciplina che insegna
metodi numerici o geometrici;
Probabilita’ ne’ Statistica ossia .....
Un gioco nel senso che non insegna a
giocare con l' elaboratore e va presa sul
serio;
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
3
Cosa e’ l’ informatica
NON E’ Semplicemente una materia di
ausilio alle altre, ma ha sue precise
finalita’ che si possono sintetizzare nel:
razionalizzare il trattamento delle
informazioni ... (e di E.E.)
Una possibile prima definizione:
scienza e professione della gestione delle
informazioni effettuata con le velocita’ e
precisione proprie
di E.E.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
4
Bibliografia
 P. Bishop: “L’ Informatica”, Gruppo Editoriale Jackson,
1992;
 R.A. MEO, M. Mezzalama ed altri: “Fondamenti di
informatica”, UTET 1996.
 F. Pinciroli: “Informatica di base per la Medicina”, UTET
1992.
 A. Serio: “Statistica per Studenti in Medicina: appunti
delle Lezioni con elementi di Matemetica e Informatica”
a cura di F.Romeo, Ed. Kappa, Roma, via S. Benco 14.
 C.J. Date: “Database: a primer”, Addison-Wesley
Microcomputer-books.
 Atzeni, Ceri, Paraboschi, Torlone: “Basi di dati”, seconda
edizione, McGraw-Hill
Libri Italia srl, 1999.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
5
Programma: parte 1
 Richiami su: Elaboratore Elettronico (E.E.), Hardware,
Software, livelli di utilizzo e funzionamento di E.E.,
codifica delle informazioni, algoritmi, file e dischi,
Internet, W.W.W.;
 il Software ed il Sistema Operativo con suo utilizzo sui
Personal Computer (riferimenti DOS, e WINDOWS);
software di base (cenni su editor, interpreti, compilatori,
assemblatori);
 programmi applicativi (cenni su Word Processor e
Access);
 la programmazione: linguaggi e traduttori, composizione
e struttura dei programmi ; progetto di un programma d’
esempio e sua costruzione in linguaggio C;
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
6
Programma: parte 2
Data Base e Data Base Management
System: motivazioni;
progettazione di D.B. & utilizzo di
D.B.M.S. in vari ambienti: single _user &
multi_user;
problema della consistenza di dati e
soluzioni;
modelli di dati e sistemi relazionali;
esempi con uso
di
db3+
e
di
Access
.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
7
Metodo usato: top - down
… o a raffinamenti successivi che
permette di presentare un problema o un
in generale un oggetto in modo globale,
scomponendolo ricorsivamente nelle sue
componenti essenziali, piu’ semplici da
capire e con specifici dettagli in evidenza.
Es. Elaboratore Elettronico E.E. (seguito)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
8
Richiami su E.E.
E.E.
cosa è, a cosa serve, come è …..
Storia e Antenati …….
Livelli di utilizzo

AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
9
E.E. cosa e’ ….. (es. Metodo
top - down)
E.E. e’ una macchina elettronica, funzionante in
modo automatico, capace di effettuare l’
elaborazione di informazioni.
Informazioni: sono parole e/o numeri
CODIFICATI nella forma piu’ adatta per l’
elaborazione.
Elaborazione di Informazioni: lettura dall’
esterno, memorizzazione su supporto elettronico
e/o magnetico, recupero, modifica,
visualizzazione all’ esterno di informazioni.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
10
Hardware & Software
E.E.







e’ dunque fatto di circuiti elettronici =
componenti fisici = HARDWARE
…. ma questi da soli sono solo una
accozzaglia di fili e ferramenta.
Solo con l’ aggiunta di componenti logiche
= programmi = SOFTWARE che ne
governano l’hardware, E.E. diventa
capace di ELABORARE INFORMAZIONI.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
11
E.E. Storia e Antenati
antenati: 1642 macchina calcolatrice meccanica di

Blaise Pascal;

1671 macc. calc. mecc. di Gotfried Von

Leibniz;

1821 macc. calc. mecc. di Charles

Babbage e successiva Macchina

Analitica (? Aritmetic Unit ?

Calcolatore Meccanico ?);

1850 nuova logica matematica

George Boole (algebra booleana);
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
12
E.E. Storia e Antenati
Antenati:







1890 uso di schede perforate da
parte di Hollerith;
1936 macchina di Turing: ….
…..
1946 ENIAC primo elaboratore costruito
all’ Univ. della Pennsylvania sul
modello di Von Newman;
……….
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
13
Elaborazione di Informazioni ….
Informazioni: parole-numeri CODIFICATI nella
forma piu’ adatta per l’ elaborazione ... o anche:
successione di simboli di un dato alfabeto con
proprio significato in un dato linguaggio.
Linguaggi: naturale con alfabeto composto da:
lettere minuscole, maiuscole, cifre ... simboli;
artificiale con alfabeto diverso ....
per es. alfabeto dell' elaboratore: 0
1

cifre binarie = binary digit = bit.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
14
Bit
Perche’?
Ogni elemento dei componenti fisici dell’
elaboratore puo’ avere solo 2 stati
convenzionalmente indicati con 0 e 1 (per es. i
valori di tensione elettrica in un punto possono
essere: basso = 0, o alto = 1).
Elaboratore elettronico: i suoi circuiti elettronici,
con tempi di commutazione dell' ordine del nanosecondo (10-9 sec.), sono dedicati a:
memorizzare, combinare, trasferire bit =
=>elaborare informazioni.

AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
15
Necessita’ di un Codice:
corrispondenza tra 2 alfabeti !
Il suo uso permette Codifica/Decodifica
delle informazioni.
La Codifica/Decodifica delle informazioni
sfrutta sia l’ Hardware che il Software.
Software ( = merce soffice contrapposto
ad Hardware = ferramenta)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
16
Codifica/Decod. di informazioni:
1) tipo numerico intero
 Numeri: naturali, interi, interi relativi, reali relativi.
 Il codice numerico usato negli elaboratori si basa sul Sistema
numerico binario ossia a base 2 con uso dei simboli 0 e 1.
 Sistema numerico posizionale: scelto un numero come base
(10, 2, 8, 16 …) ogni valore numerico e’ esprimibile tramite
potenze della base moltiplicate per opportuni coefficienti.
 Es. di un intero in base dieci: 94 = 9 .10 1 + 4 .10 0
Intero10=  di
. 10i
. 2i
con di
=
0, 1, … 9
Intero2=  di
con di = 0, 1
Quanti di ? 16, 32...dipende dal Registro o cella
AnnaMaria Carminelli Gregori:
di Memoria.
fondamenti di informatica parte 1
17
Codifica Floating-Point
2) tipo numerico non intero
Intervalli di rappresentazione limitati: come si
risolve il problema? Aumentando il numero di
bit dei registri di memoria, il loro parallelismo
quello del circuito sommatore ?
NON basta: occorre un altro tipo di
rappresentazione ossia, per esempio, la codifica
floating-point normalizzata (tipo la notazione
scientifica nelle calcolatrici tascabili).
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
18
Intervalli di Rappresentazione in
binario
 IMPORTANTE!
 _Campo Finito di Numeri: limiti superiore e inferiore finiti:
se un' operazione produce un risultato oltre questi limiti:
ERRORE!
 _Precisione Limitata dei Valori Numerici: in ogni tipo di
rappresentazione esiste un numero finito di bit fissato
per la rappresentazione di un valore numerico. (Per es. p
non puo’ essere rappresentato con tutte le sue cifre.)
Arrotondamenti o troncamenti non producono risultati
esatti ma approssimati nei limiti della precisione
ottenibile con il numero
di bit fissato.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
19
Codifica/Decod. di informazioni:
3) informazione di tipo testo
 Testo = Successione di caratteri
Viene usato il Codice ASCII (American Standard
Code for Information Interchange) che associa
ad ogni carattere un byte contenente una
configurazione dei suoi 8 bit alla quale
corrisponde un valore numerico n
0 <= n <= 25510 ossia
0000 0000 <= n <= 1111 11112
 Byte: sequenza di 8 bit; con un byte si hanno 256
possibili combinazioni diverse (28 = 2 elementi diversi
combinati a ottetti)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
20
Codice ASCII: qualche
esempio
Primi 32 caratteri con valori decimali da 00 a
31: caratteri di controllo per esempio ^G=BEL;
da 3210 a 6410 si hanno caratteri speciali come
la spazio, il $, le parentesi (), le cifre da 0 a 9 e
la @ ;
da 6510 a 9010 lettere maiuscole A-Z;
poi ancora caratteri speciali come le parent. {};
da 9710 a 12210 lettere minuscole a-z;
poi ancora caratteri
speciali e simboli grafici.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
21
Codifiche: conclusioni
 Informazione => successione di caratteri alfanumerici

=> successione di bit

=>
interpretabile a livello Hardware
Importanza interpretazione numerico/alfabetica:
es.
4716 = 7110
 0100 0111 {

G



0110 0001 {
6116 = 9710
a
 Operazioni sulle informazioni:
 1) "
elementari (livello hard. ling. macchina)
 2) "
complesse ( "
software )
22
Istruzioni relative e note
1) es. Somma numeri interi;

Confronta byte; .........
2) es. Ordina una sequenza di parole;

Visualizza un’ immagine, fai un suono…
NOTA 1: qualsiasi tipo di informazione (immagini,
suoni...) e’ rappresentabile con sequenze di bit
(rappresentazione unitaria!) e quindi gestibile usando
appropriatamente E.E.
NOTA 2: Ogni operazione complessa e’ realizzata con
un insieme di apposite istruzioni che utilizzano
operazioni elementari: ... algoritmo !
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
23
Nozione di algoritmo:
insieme di regole non ambigue tese ad elaborare
informazioni,
eseguibili automaticamente, (per esempio da uno
schiavo che sappia contare senza sbagli e sia
dotato di memoria ove annotare le informazioni
che deve elaborare ed i risultati via via ottenuti) e
a partire dai dati producano i risultati in un tempo
finito.
Programma: algoritmo scritto per l' elaboratore.
Importante: prima algoritmo, dopo programma !
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
24
(
CURIOSITA’:
il nome deriva da Al-Kuwarizmi, matematico
Persiano, il quale nell’ 800 d.C. scrisse un
trattato di artimetica con la descrizione
dei passi necessari per effettuare le
operazioni aritmetiche. Il trattato iniziava
con la frase: “Al-Kuwarizmi dice: … ”
Il trattato fu tradotto in latino ed in latino la
frase iniziale divento’: “Algoritmo dicit: … ”
)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
25
Che cosa e’ l' informatica …
La creazione di algoritmi che combinano
anche in modo complesso sequenze di
operazioni semplici (blocchi) ...
puo’ sintetizzare meglio
che cosa e’ l' informatica.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
26
Livelli di utilizzo di E.E.
Livello utente:
E.E. = scatole cinesi = sistema a cipolla
col primo strato di tipo software amichevole
e tale che ad un dato INPUT risponde con
un certo OUTPUT;
obiettivo utente: acquisire familiarita’ col
sistema.
Livello professionista:
conoscenza precisa e completa di ogni
componente funzionale
di E.E.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
27
Da Babage ad oggi ??
La struttura funzionale di un Personal
Computer (ossia di un E.E. standard, non di
tipo particolare) e’ sempre quella ideata
prima da Charles Babbage intorno al 1820 e
poi realizzata da Von Neumann negli anni ‘40.
La tecnologia elettronica e’ cambiata, e’
cresciuta la potenzialita’ ... ma la “filosofia”
del funzionamento e’ rimasta inalterata.
Segue un’ elementare sintesi semplificata del
comportamentoAnnaMaria
di E.E.
Carminelli Gregori:
fondamenti di informatica parte 1
28
Il via alle varie unita’
componenti e’ scandito
periodicamente da un orologio.
 “Si sveglia” l’ Unita’ Centrale di elaborazione
(C.P.U.), collegata alle altre unita’ ed in
particolare alla Memoria Centrale (C.M.) che
interroga ed alla quale chiede informazioni.
Queste passano da un’ unita’ all’ altra come
evidenziato nello schema di massima
successivo, dove le frecce grandi
simboleggiano il passaggio di informazioni e di
segnali di controllo e le frecce piccole solo di
questi ultimi. AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
29
Introduzione a E.E.
Struttura funzionale:
Temporizzator
e
Unita’ Centrale di Controllo
Registri
Unita’ di controllo di
I/O
Periferiche
UCP
Unita’ Aritmetico - Logica
Flag
Memoria Centrale
(R.A.M.)
Memorie di massa
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
30
Il clock
Le operazioni svolte dalle componenti di E.E.
devono essere sincronizzate: per esempio per
ottenere la somma di 2 valori questi devono
essere prima posti in registri della CPU e poi
sommati. Per questo scopo occorrono un
temporizzatore e un coordinatore. (Come nelle
triremi romane: lo schiavista dava il tempo.)
Il segnale che cadenza le operazioni e’ quello
del clock che genera ed invia a tutte le
componenti un segnale periodico con periodo
T = X nano-secondi, frequenza f =1/T.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
31
Valori di T e di f ?
Per es. T= 40nsec, f= 25MHz (Mega
Hertz=Milioni di battiti o impulsi)
Per eseguire un’ istruzione occorrono
alcuni impulsi di orologio: se questo ha
f=100MHz verranno eseguite mediamente
circa quaranta milioni di operazioni/sec.
Oggi si hanno clock con frequenza di
500MHz e periodo di 2nsec ...
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
32
Flusso di informazioni
Tornando allo schema della diapositiva 28 si
puo’ immaginare in prima approssimazione
un flusso di informazioni che dall’ unita’ di
input attiva (per es. la tastiera) fluisce fino ai
registri della CPU e quindi nella
RAM=Random Access Memory.
Da qui le informazioni possono tornare nei
registri della CPU per essere modificate e/o
visualizzate probabilmente insieme ai risultati
fluendo quindi alla periferica scelta (per es. il
AnnaMaria Carminelli Gregori:
video).
fondamenti di informatica parte 1
33
E.E.  Hard. + Software (Soft.)

Per l’ utente:
E.E. solo hardware
=> unfriendly
E.E. con Soft. di base => - unfriendly
E.E. con Soft. di base e

Soft. applicativo => friendly
Il Soft. di base ha 2 strati:
_ il Sistema Operativo (S. O.)
_ i programmi di utilita’
I prg. Applicativi
formano
un altro strato .
AnnaMaria
Carminelli Gregori:
fondamenti di informatica parte 1
34
Sistema Operativo:
e’ un insieme di programmi specializzato
nel governare il funzionamento di E.E.
rendendo la gestione delle sue risorse
trasparente per l’ utilizzatore;
mette cosi’ a disposizione dell’ utilizzatore
una macchina virtuale non esistente, ma
piu’ potente e amichevole dell’ hardware
in quanto risponde ai comandi-utente;
il processo di virtualizzazione si propaga
ad ogni strato aggiuntivo di software.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
35
Esigenza dell’ utente:
avere a disposizione una macchina con cui
poter lavorare e interagire indipendentemente dal suo hardware, comunicando
con uno strumento amichevole, ma efficiente
ossia che utilizzi l’ hardware “al meglio”.
Il S.O. risponde a questa esigenza dando all’
utente (o programma = strato di software piu’
esterno) l’ equivalente di “una macchina
estesa o macchina virtuale” (S.Tanenbaum).
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
36
Sistema Operativo: aspetti
(ricordare: il processo di virtualizzazione si
propaga ad ogni strato di software !)
QUINDI:
funzione 1: S.O. = Interfaccia amichevole
funzione 2: S.O. = GESTIRE tutte le
componenti di un Elaboratore (=Sistema
Complesso) ossia unita’ di controllo,
memorie, interfacce di rete, … qualunque
dispositivo. AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
37
Schema di Sistema
Operativo
Anche il S.O. puo’ essere visto come un
sistema a scatole cinesi (o a cipolla): il
seguente schema e’ un’ alternativa.
APPLICATIVI
Soft.base: prg.util.
shell
System_file
kernel
Hardware
Soft.base:
S.O.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
38
Sistema Operativo:
componenti essenziali
shell: conchiglia, guscio che interfaccia l’
utente; e’ sostanzialmente un interprete di
comandi con eventuale interfaccia grafica;
System_file: contiene il gestore-informazioni
dell’ utente poste nei file (FILE cfr. +oltre);
kernel: e’ il nucleo del sistema operativo.
Interfaccia l’ hardware nel senso che esegue le
funzioni di base come smistare il controllo della
C.P.U. tra i programmi residenti in memoria (cio’ e’
fatto dallo Scheduler, sua componente) e sincronizzare
la CPU con la memoria e/o altre unita’ … (cfr.+oltre)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
39
S.O. piu’ diffusi
per personal computer:
DOS = Disk Operating System basato su
comandi e messaggi: il suo “zoccolo duro” e’
composto da 3 programmi MSDOS.SYS, IO.SYS
COMMAND.COM;
Windows
Apple_top
What you see is what
you get !
 dotati di interfaccia grafica a oggetti rappresentati da
icone e manipolabili col mouse;
per ogni tipo di elaboratore: Unix (AT&T)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
40
Software di base
Tipici esempi di programmi di utilita’:
editor;
interpreti;
compilatori;
assemblatori
….
Strumenti Software indispensabili per
costruire programmi eseguibili (vedere +oltre)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
41
Programmi applicativi
Tipico esempio: Word Processor o elaboratore
di testi -> fa apparire E.E. come una potente e
veloce macchina da scrivere (che non c’e’ !
Virtualizzazione !)
Altro esempio: Data Base Management System
o Sistema di Gestione di Basi di Dati. (Gestione
= lettura e registrazione, aggiornamento
visualizzazione.) Si tratta di un insieme di
programmi per la gestione di archivi di
informazioni strutturate (per es. in forma di
tabelle) e manipolabili singolarmente o in modo
incrociato, integrato.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
42
R.D.B.M.S. o S.G.B.D.R
Questi sono i Sistemi di Gestione di Basi di Dati
Relazionali (S.G.B.D.R. o in inglese Relational
Data Base Management System = R.D.B.M.S.) .
Relazionali perche’ gli archivi appaiono all’
utente come tabelle o Relation ossia Relazioni
(intese in senso matematico di “associazioni tra
dati”, messe in evidenza dalle tabelle).
Sulle tabelle di dati si lavora con operazioni che
seguono regole precise => Algebra delle
AnnaMaria Carminelli Gregori:
relazioni.
fondamenti di informatica parte 1
43
…. Friendly ?
L’ algebra non e’ amichevole, R.D.B.M.S.
spesso lo sono. I Relational D.B.M.S. spesso
presentano un interfaccia grafica per
facilitare il modo di operare. Es. in parte 2:
sistema M.S.ACCESS e il DataBase db1.
SEMPRE pero’ occorre sapere COSA si vuole
fare, COSA si vuole ottenere ossia aver
chiare le specifiche di progetto. COME fare
puo’ essere indicato da un uso appropriato
dell’ HELP del Sistema
in linea.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
44
Evoluzione dei S.O. (1970-98)
Batch (a lotti) --> interattivi:
mono-utente mono-programmato; DOS
“
“ multi_program._ proc.;
Windows 3.x

molti utenti contemporanei;

multi_programmato o
Windows-NT,

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. l’ attivazione di un
telescopio).
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
45
Significato di:
S.O. multiutente, multiprogrammato o
multiprocesso, multitasking =>
=>
piu’ utenti possono lavorare sul medesimo
computer;
ogni utente puo’ eseguire
“contemporaneamente” piu’ programmi;
ogni programma puo’ eseguire
“contemporaneamente”
piu’
funzioni.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
46
S.O. multi - utente e
multi_tasking
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 ...
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
47
S.O. mono - utente e
mono_tasking (DOS)
Funzione: esecuzione dei comandi utenti;

gestione Input/output e file;

segnalazione errori.
E’ caricato all’ accensione nella parte alta
(zona convenzionale) della RAM ove resta
fino alla fine sessione.
E’ TUTTORA fondamentale: Windows vi si
“appoggia” !
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
48
Prompt
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
AnnaMaria Carminelli Gregori:
scrivania.
fondamenti di informatica parte 1
49
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 !
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
50
Altri comandi interessanti
Per vedere una “mappa” della memoria RAM
dopo il caricamento del DOS si puo’ utilizzare il
comando MEM da solo o con le opzioni che si
desiderano (vedi Help MEM)
Per vedere una “mappa” del disco C: si puo’
dare il comando DIR C:
Per visualizzare un file di tipo testo che si
chiama TEST.TXT c’ e’ TYPE TEST.TXT ecc.
Nota: nel comando DIR sono usabili i caratteri
jolly (* e ?) per indicare caratteri sconosciuti.
AnnaMaria Carminelli Gregori:
Cfr. help.
fondamenti di informatica parte 1
51
e Windows ?
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 clik col mouse. Il
mouse si usa su qualunque altra immagine
presente: per es. su E.E. e sui dischi di E.E.
In questo modello a finestra, dove il Desk-Top
rappresenta la scrivania, i file (=pratiche) sono
rappresentati da AnnaMaria
icone,
i direttori da cartelle.
Carminelli Gregori:
fondamenti di informatica parte 1
52
e Windows95_NT ?
Come detto, e’ un S.O. per le reti di computer.
Molto usato nelle reti di computer e’ il modello
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 e tanti
Client) e’ molto comune ed usato nella rete
Internet e nelle sue sottoreti.
Internet e’ nota per la diffusione di W.W.W.
= World Wide Web => la “ragnatela tessuta”
sulla rete per gestire le informazioni che stanno
nei vari E.E. della rete. Questi per comunicare
usano il protocollo
(=insieme
AnnaMaria
Carminelli Gregori: di regole) TCP/IP.
fondamenti di informatica parte 1
53
W.W.W. ( = Web) : un cenno
E’ software installato su appositi Server (Server
Web) che facilita sia la comunicazione tra gli
E.E. di 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 (oggi e’ usato
anche JAVA, linguaggio O.O. come C++). La
descrizione e’ interpretata e presentata dai
browser (opportuni programmi posti nei vari
Client come per es.
Netscape)
AnnaMaria
Carminelli Gregori: detti Client_Web.
fondamenti di informatica parte 1
54
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
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
55
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 /



…ecc.
ricerca
didattica
borse
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
56
File
Concettualmente: file = archivio di dati che
varia nel tempo. E’ possibile aggregare i dati
(=informazioni) in registrazioni = Record.
Accesso informazioni: sequenziale / diretto
es. libro = successione di pagine
accesso sequenziale alle info: pagina dopo pagina
 “
diretto: occorre l’ indice: (inform. -> pagina)
Supporti: dischi (possibili accesso sequen.-diretto)
nastri ( bobine) (possibile solo accesso sequenz.)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
57
Informazione e Ipertesti
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 !
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
58
e l’ ipermedia ?
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.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
59
File & programmi
I file possono contenere anche programmi: in
questo caso il contenuto e’ una particolare
successione di informazioni che
concettualmente sono comandi per E.E. e
quindi devono essere lette ed interpretate una
dopo l’ altra, sequenzialmente.
In generale pero’ parlando di file si intende
un archivio di informazioni come per es.: dati
anagrafici di persone o indirizzi o classifiche
finanziarie... AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
60
Dimensioni File intesi in
senso generale
…. e la C.M. ? Concettualmente: file(= archivio)
non “STA” in C.M. ma in Memoria di Massa. In
C.M. viene LETTO o CREATO e/o modificato un
record per volta 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 ……...
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
61
Disco (Hard, Floppy, C.D.) e
Direttori
Concettualmente: disco = deposito di informazioni. 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 appare nel direttorio di ogni
disco: ogni direttorio contiene l’ elenco dei file e dei
suoi (sotto)direttori (cfr. tra 2 diapositive).
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
62
Denominazioni in DOS
Nomi di disco: A: o B: (unita’ floppy); D: (Compact);
C: (hard) anche divisibile in partizioni ( E: S: 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 ...
Nomi di Direttori: 1 stringa di 8 caratteri al piu’.
Per creare un nuovo direttorio c’e’ il comando MD
si distrugge un direttorio VUOTO col “
RD
si passa da un dirett. ad un altro col “
CD
con M=Make, R=Remove,
C=Change.
Segue esem.
AnnaMaria Carminelli
Gregori:
fondamenti di informatica parte 1
63
Struttura logica ad albero e
md = make directory (in DOS)

“ROOT (\)”
\ e’ il direttorio radice
 ____|____
In \ si puo’ digitare:
 |
|
md anna md lola
 anna
lola
in anna si puo’ dare:
 __|______ |
md prg md tesi md mio
|
|
| pr.c ottenendo l’ albero qui a
prg tesi mio
sinistra dove in lola c’e’

pr.c = file con un progr. in C,
che si puo’ visualizzare
con type C:\lola\pr.c
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
64
Percorsi in DOS
type C:\lola\pr.c e’ un esempio di come si
puo’ visualizzare un file posto nel disco C:
Segue un’ alternativa possibile nell’ ipotesi che
il file mio.txt stia nel disco C:\uno\due\ mio.txt
Con DOS e’ opportuno controllare in quale
disco e direttorio ci si trovi e da li’ spostarsi al
direttorio due dove c’ e’ mio.txt. Come ? Prima
digitare dir -> Se si e’ nel direttorio D:\pippo
digitare C: per passare al disco C: poi con dir
verificare di essere in C:\ e da qui porsi in due
con cd\uno\due Un dir indichera’ mio.txt
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
65
La struttura gerarchica del
disco
appare anche 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.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
66
Con Windows
nella situazione precedente del disco C: basta
porsi con la freccia del mouse e fare clik su
Risorse Computer: compare una finestra con
immagini del floppy A: del disco C: del video
… Si pone la freccia del mouse sul disco C:
Con un clik “si apre” il disco e appare una
finestra con la cartella uno dell’ esempio.
Basta porsi con la freccia del mouse e fare clik
sulla cartella uno: appare un’ altra finestra con
la cartella due. Facendo clik su questa si apre
un’ altra finestra con l’ icona del file mio.txt
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
67
… e poi ? Oltre al comando
type ?
Per visualizzare e/o cambiare il file mio.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 clik col mouse sul file o
sull’ icona di un editor e alla sua apertura
seguire le sue indicazioni.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
68
Uso di dischi floppy
(dischetti) in ambiente 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.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
69
Situazione attuale dei floppy
La forma oggi piu’ attuale e’ quella di 3 e 1/2
pollici (diametro);
la densita’ di registrazione e’ generalmente alta
(H.D.= High Density indicata da un forellino in
alto a sinistra) e le registrazioni possono essere
realizzate sulle due facce (D.S. = Double Side);
un altro forellino in alto a destra indica invece
che il dischetto e’ protetto da operazioni di
registrazioni indesiderate: se il foro e’ chiuso da
una tacca movibile il floppy e’ registrabile.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
70
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’.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
71
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 necessitano di un lettore
apposito (con raggio laser a bassa energia);
in generale vengono registrati =“masterizzati”
una sola volta usando uno strumento dotato di
raggio laser ad alta energia: diventano cosi’
memorie di massa aggiuntive, ma di tipo ROM;
I file su ogni C.D. sono presentati all’ utente
organizzati ad “albero”
come accade per gli altri
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
72
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 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
AnnaMaria Carminelli Gregori:
tipografiche . fondamenti
di informatica parte 1
73
programma in C, o in
Fortran, o in Pascal
Con l’editor si puo’ creare sul momento
qualunque sequenza di caratteri …. quindi
anche un programma vero e proprio in un
linguaggio di programmazione come 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.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
74
Fasi di costruzione del
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.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
75
Quale linguaggio artificiale ?
Di linguaggi artificiali ce ne sono migliaia: la
scelta va a quello che appare piu’ vicino ai
problemi 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++
AnnaMaria Carminelli
Gregori:nasce nel 1980.
fondamenti di informatica parte 1
76
Programma: tipiche funzioni
svolte
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.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
77
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. Le
stesse entita’ potranno servire per la loro
elaborazione e quindi la loro visualizzazione.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
78
Processo di traduzione
Una volta scritto il source program nel
linguaggio artificiale scelto (per es. il C)
occorre: registrarlo in un file (per es. uno.c) ,
e attivare il traduttore che fa la traduzione da
C a linguaggio della macchina. I traduttori si
distinguono in:
INTERPRETI, COMPILATORI,
ASSEMBLATORI,
tutti programmi di utilita’ del Software di
base.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
79
Tipi di Traduttori
Interprete: tipico e’ quello della shell di ogni
S.O. che interpreta e manda in esecuzione i
comandi del S.O. digitati dall’ utente: non
produce alcuna traduzione permanente in
linguaggio della macchina.
Es. in DOS: Dir A:

Type miofile.txt
Dir e Type: interpretati e subito eseguiti
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
80
Software di base:
Editor, Interpreti, compilatori, assemblatori...
Compilatore: interpreta e traduce nel
linguaggio macchina le frasi di un linguaggio
artificiale ad alto livello che compongono un
programma: produce un file binario che e’ l’
equivalente del programma origine (source),
ma nel linguaggio binario di E.E.
Assemblatore: analogo al Compilatore, ma il
linguaggio artificiale e’ elementare, con
struttura simile al linguaggio della macchina.
C’e’ anche il linker la cui funzione e’ completare
AnnaMaria Carminelli Gregori:
la traduzione. fondamenti
di informatica parte 1
81
Ambiente amichevole
I compilatori attuali (sia del linguaggio C,
C++, che del Fortran) forniscono un
ambiente “User Friendly” dotato di Editor,
compilatore, caricatore, interfaccia
amichevole: cio’ rende automatiche le fasi
di traduzione.
Si e’ tentati di scrivere direttamente il
Source Program …
ma e’ una strategia perdente !
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
82
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 ??
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
83
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
producendo uno schema a blocchi
(diagramma di flusso, flow-chart) delle
operazioni che devono essere eseguite.
Segue esempio.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
84
Esempio progettino
 a) Si vuole ottenere il codice numerico NUM 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
85
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 ...
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
86
Dal Progetto al Programma
Come scrivere questo programma in C ? Il
Source Program ottenuto e’ leggi _car.c (diapo 91-
95), ma prima di esaminarlo ecco qualche idea.
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 {}>
AnnaMaria Carminelli Gregori:
}
fondamenti di informatica parte 1
87
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
AnnaMaria Carminelli Gregori:
ambiente...
fondamenti di informatica parte 1
88
Corpo delle Funzioni
Piu’ in dettaglio: il corpo di ogni funzione 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 origine C o C++ e’:
main()
{
return (0); restituisce il controllo al S.O. con lo zero tra
parentesi come segnale di fine corretta.
}
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
89
Commenti
(vedere commenti.c)
Per documentare un source program 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 !*/
 {

return (0);
AnnaMaria Carminelli Gregori:
 }
fondamenti di informatica parte 1
90
L’ ambiente di sviluppo del
compilatore del C & C++
e’ aperto dalla finestra del compilatore e ha in
alto il menu’ che mostra alcune parole, tra cui
File, Edit, Compile e Run. Porre il mouse sotto:
File per aprire/chiudere un file contenente un
programma origine gia’ registrato;
Edit per fare le operaz. di editing sul file aperto
o per costruire un programma origine nuovo;
Compile per compilare il programma origine;
Run per fare eseguire il programma eseguibile.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
91
Leggi _car.c
Essendo nell’ ambiente di sviluppo del
compilatore del C si puo’ aprire il source
program, esaminarlo con l’editor, farlo
compilare (Compile) e girare (Run): questo
comando prioritariamente provvedera’ col linker
a completare la traduzione del programma
producendo il programma eseguibile di nome
leggi _car.exe. Per eseguirlo +volte si puo’
usare +volte Run o passare alla Shell del Dos
(dalla finestra di File) e digitare leggi _car
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
92
Iterazione
Questa ripetizione e’ stata resa automatica con
un programma che la realizza, di nome ripeleg.c
Ma quale sara’ il progetto di ripeleg.c ?
Mandando in esecuzione ripeleg.exe 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;
per ripeleg.c occorre ripetere la lettura di CAR,
la sua conversione in Num e la visualizzazione
di entrambi fino a quando si introduce lo zero
AnnaMaria Carminelli Gregori:
… ossia ...
fondamenti di informatica parte 1
93
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
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
94
Visualizzazioni in leggi _car.c
All’ interno del prg. leggi _car.c e’ usata la
frase di scrittura/visualizzazione “printf”.
E’ l’ attivazione della funzione propria del C
per la scrittura/visualizzazione resa
disponibile includendo l’ header file
<stdio.h> che contiene i prototipi delle
funzioni di libreria tipiche del linguaggio C
per l’ Input/Output.
…e in C++ ? Operatori e funzioni analoghe.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
95
PROGRAM leggi_car.c
 /* INIZIO DOCUMENTAZIONE:
 Il programma strutturato a MODULI (funzioni) e’ il primo ad
usare non solo elaborazione sequenziale, ma anche ondizionale.
Deve:
 leggere un carattere e, se diverso da 0,
 stamparlo con il suo valore numerico.
 Autore: < NOME E COGNOME >
 data:
....
 ambiente: LAB.ING. S.O.= MS_DOS
 Variabili (STRUTTURE DATI) usate nel programma:
 NOME TIPO
 car
char; per leggere i caratteri (INPUT)
 num integer; per memorizzarne
il valore numerico (OUTPUT)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
96
PROGRAM leggi_car (seg. 1)
 Procedure o MODULI componenti:
– MAIN, LEGGI, ELABORA, SCRIVI, ATTENDI.
 FINE DOCUMENTAZIONE */
 /* INIZIO parte dichiarativa */
 #include "stdio.h" /* Libreria del C */
 /* Dichiarazione delle 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();
 /* Inizio Modulo principale segue */

AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
97
PROGRAM leggi_car (seg. 2)
 main()
 {/* INIZIO Parte esecutiva */
 leggi(); /* leggi un carattere in car */
 if ( car != '0') /* se car no 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 del bloccodi segnalazione */
 return (0);
98
 } /* Fine Modulo principale */
PROGRAM leggi_car (seg. 3)
 void leggi() /*Intestazione delle funzione leggi */
 /* Legge un carattere sulla riga: variabile utilizzata che esce
definita: car */
 { /*Inizio leggi */
 printf ("\n scrivimi un carattere...");
 scanf ("%1s",&car);
 } /* Fine leggi */
 void scrivi() /*Intestazione delle funzione scrivi */
 /* Visualizza il carattere <> 0 col suo valore numerico:
 variabili utilizzate: car, num */
 { /* Inizio scrivi */
 printf ( "Carattere letto e Valore numerico corrispondente:
 c%d ", car, num);} /* Fine scrivi*/
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
99

PROGRAM leggi_car (seg. 4
& FINE)
 void elabora() /*Intestazione delle funzione elabora */
 /* Esegue la conversione del carattere letto nel
 valore numerico corrispondente secondo il codice ASCII */
 { /* Inizio elabora */
 num = (int) car;
 } /* Fine elabora*/
 void attendi() /*Intestazione delle funzione attendi */
 { /* Inizio attendi */
 printf("\n premi un carattere.....");
 scanf(" ");
 } /* Fine attendi */ AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 1
100
Scarica

medici1 - UniNa STiDuE