fondamenti di informatica parte 1 appunti per le

  • Slides: 100
Download presentation
fondamenti di informatica parte 1… appunti per le Scuole di Specialita’ in Medicina, a.

fondamenti di informatica parte 1… appunti per le Scuole di Specialita’ in Medicina, a. a. 1999 -2000 di anna maria Anna. Maria carminelli gregori Carminelli Gregori: fondamenti di informatica parte 1

fondamenti di informatica 1 z. Scopo del corso: zfornire: i principi, i concetti fondamentali,

fondamenti di informatica 1 z. Scopo del corso: zfornire: 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 2

… ma l’ informatica, che cos’ e’? z. E` bene evidenziare subito cosa non

… ma l’ informatica, che cos’ e’? z. E` bene evidenziare subito cosa non e’ l' Informatica ! NON E’: z. Calcolo numerico ne’ Geometria ossia non e’ una disciplina che insegna metodi numerici o geometrici; z. Probabilita’ ne’ Statistica ossia. . . z. Un gioco nel senso che non insegna a giocare con l' elaboratore e va presa sul serio; Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 3

Cosa e’ l’ informatica z. NON E’ Semplicemente una materia di ausilio alle altre,

Cosa e’ l’ informatica z. NON E’ Semplicemente una materia di ausilio alle altre, ma ha sue precise finalita’ che si possono sintetizzare nel: zrazionalizzare il trattamento delle informazioni. . . (e di E. E. ) z. Una possibile prima definizione: zscienza e professione della gestione delle informazioni effettuata con le velocita’ e precisione proprie di E. E. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 4

Bibliografia z P. Bishop: “L’ Informatica”, Gruppo Editoriale Jackson, 1992; z R. A. MEO,

Bibliografia z P. Bishop: “L’ Informatica”, Gruppo Editoriale Jackson, 1992; z R. A. MEO, M. Mezzalama ed altri: “Fondamenti di informatica”, UTET 1996. z F. Pinciroli: “Informatica di base per la Medicina”, UTET 1992. z 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. z C. J. Date: “Database: a primer”, Addison-Wesley Microcomputer-books. z Atzeni, Ceri, Paraboschi, Torlone: “Basi di dati”, seconda edizione, Mc. Graw-Hill Libri Italia srl, 1999. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 5

Programma: parte 1 z Richiami su: Elaboratore Elettronico (E. E. ), Hardware, Software, livelli

Programma: parte 1 z 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. ; z 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); z programmi applicativi (cenni su Word Processor e Access); z la programmazione: linguaggi e traduttori, composizione e struttura dei programmi ; progetto di un programma d’ esempio e sua costruzione in linguaggio C; Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 6

Programma: parte 2 z. Data Base e Data Base Management System: motivazioni; zprogettazione di

Programma: parte 2 z. Data Base e Data Base Management System: motivazioni; zprogettazione di D. B. & utilizzo di D. B. M. S. in vari ambienti: single _user & multi_user; zproblema della consistenza di dati e soluzioni; zmodelli di dati e sistemi relazionali; zesempi con uso di db 3+ e di Access. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 7

Metodo usato: top - down z… o a raffinamenti successivi che permette di presentare

Metodo usato: top - down z… 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. z. Es. Elaboratore Elettronico E. E. (seguito) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 8

Richiami su E. E. zcosa è, a cosa serve, come è …. . z.

Richiami su E. E. zcosa è, a cosa serve, come è …. . z. Storia e Antenati ……. z. Livelli di utilizzo z Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 9

E. E. cosa e’ …. . (es. Metodo top - down) z E. E.

E. E. cosa e’ …. . (es. Metodo top - down) z E. E. e’ una macchina elettronica, funzionante in modo automatico, capace di effettuare l’ elaborazione di informazioni. z Informazioni: sono parole e/o numeri CODIFICATI nella forma piu’ adatta per l’ elaborazione. z Elaborazione di Informazioni: lettura dall’ esterno, memorizzazione su supporto elettronico e/o magnetico, recupero, modifica, visualizzazione all’ esterno di informazioni. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 10

Hardware & Software z E. E. z z z z e’ dunque fatto di

Hardware & Software z E. E. z z z z 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 11

E. E. Storia e Antenati z antenati: 1642 macchina calcolatrice meccanica di z Blaise

E. E. Storia e Antenati z antenati: 1642 macchina calcolatrice meccanica di z Blaise Pascal; z 1671 macc. calc. mecc. di Gotfried Von z Leibniz; z 1821 macc. calc. mecc. di Charles z Babbage e successiva Macchina z Analitica (? Aritmetic Unit ? z Calcolatore Meccanico ? ); z 1850 nuova logica matematica z George Boole (algebra booleana); Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 12

E. E. Storia e Antenati z Antenati: z z z z 1890 uso di

E. E. Storia e Antenati z Antenati: z z z z 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; ………. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 13

Elaborazione di Informazioni …. z Informazioni: parole-numeri CODIFICATI nella forma piu’ adatta per l’

Elaborazione di Informazioni …. z 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. z Linguaggi: naturale con alfabeto composto da: lettere minuscole, maiuscole, cifre. . . simboli; z artificiale con alfabeto diverso. . z per es. alfabeto dell' elaboratore: 0 1 z cifre binarie = binary digit = bit. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 14

Bit z Perche’? z Ogni elemento dei componenti fisici dell’ elaboratore puo’ avere solo

Bit z Perche’? z 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). z 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. z Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 15

Necessita’ di un Codice: corrispondenza tra 2 alfabeti ! z. Il suo uso permette

Necessita’ di un Codice: corrispondenza tra 2 alfabeti ! z. Il suo uso permette Codifica/Decodifica delle informazioni. z. La Codifica/Decodifica delle informazioni sfrutta sia l’ Hardware che il Software. z. Software ( = merce soffice contrapposto ad Hardware = ferramenta) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 16

Codifica/Decod. di 1) tipo numerico intero informazioni: z Numeri: naturali, interi relativi, reali relativi.

Codifica/Decod. di 1) tipo numerico intero informazioni: z Numeri: naturali, interi relativi, reali relativi. z Il codice numerico usato negli elaboratori si basa sul Sistema numerico binario ossia a base 2 con uso dei simboli 0 e 1. z 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. z Es. di un intero in base dieci: 94 = 9. 10 1 + 4. 10 0 z. Intero 10= di. 10 i con di = 0, 1, … 9 z. Intero 2= di. 2 i con di = 0, 1 z. Quanti di ? 16, 32. . . dipende dal Registro o cella Anna. Maria Carminelli Gregori: di Memoria. fondamenti di informatica parte 1 17

Codifica Floating-Point 2) tipo numerico non intero z. Intervalli di rappresentazione limitati: come si

Codifica Floating-Point 2) tipo numerico non intero z. 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 ? z. NON basta: occorre un altro tipo di rappresentazione ossia, per esempio, la codifica floating-point normalizzata (tipo la notazione scientifica nelle calcolatrici tascabili). Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 18

Intervalli di Rappresentazione in binario z IMPORTANTE! z _Campo Finito di Numeri: limiti superiore

Intervalli di Rappresentazione in binario z IMPORTANTE! z _Campo Finito di Numeri: limiti superiore e inferiore finiti: se un' operazione produce un risultato oltre questi limiti: ERRORE! z _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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 19

Codifica/Decod. di informazioni: 3) informazione di tipo testo z Testo = Successione di caratteri

Codifica/Decod. di informazioni: 3) informazione di tipo testo z Testo = Successione di caratteri z 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 z 0 <= n <= 25510 ossia z 0000 <= n <= 11112 z Byte: sequenza di 8 bit; con un byte si hanno 256 possibili combinazioni diverse (28 = 2 elementi diversi combinati a ottetti) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 20

Codice ASCII: qualche esempio z. Primi 32 caratteri con valori decimali da 00 a

Codice ASCII: qualche esempio z. Primi 32 caratteri con valori decimali da 00 a 31: caratteri di controllo per esempio ^G=BEL; zda 3210 a 6410 si hanno caratteri speciali come la spazio, il $, le parentesi (), le cifre da 0 a 9 e la @ ; zda 6510 a 9010 lettere maiuscole A-Z; zpoi ancora caratteri speciali come le parent. {}; zda 9710 a 12210 lettere minuscole a-z; zpoi ancora caratteri speciali e simboli grafici. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 21

Codifiche: conclusioni z Informazione => successione di caratteri alfanumerici z => successione di bit

Codifiche: conclusioni z Informazione => successione di caratteri alfanumerici z => successione di bit interpretabile a livello Hardware z Importanza interpretazione numerico/alfabetica: es. 4716 = 7110 z 0100 0111 { z G z z => 0110 0001 { 6116 = 9710 a z Operazioni sulle informazioni: z 1) " elementari (livello hard. ling. macchina) z 2) " complesse ( " software ) 22

Istruzioni relative e note z 1) es. Somma numeri interi; z Confronta byte; .

Istruzioni relative e note z 1) es. Somma numeri interi; z Confronta byte; . . 2) es. Ordina una sequenza di parole; z Visualizza un’ immagine, fai un suono… z. NOTA 1: qualsiasi tipo di informazione (immagini, suoni. . . ) e’ rappresentabile con sequenze di bit (rappresentazione unitaria!) e quindi gestibile usando appropriatamente E. E. z. NOTA 2: Ogni operazione complessa e’ realizzata con un insieme di apposite istruzioni che utilizzano operazioni elementari: . . . algoritmo ! Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 23

Nozione di algoritmo: z insieme di regole non ambigue tese ad elaborare informazioni, z

Nozione di algoritmo: z insieme di regole non ambigue tese ad elaborare informazioni, z 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 ottenuti) e z a partire dai dati producano i risultati in un tempo finito. z Programma: algoritmo scritto per l' elaboratore. z Importante: prima algoritmo, dopo programma ! Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 24

( CURIOSITA’: zil nome deriva da Al-Kuwarizmi, matematico Persiano, il quale nell’ 800 d.

( CURIOSITA’: zil 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: … ” z. Il trattato fu tradotto in latino ed in latino la frase iniziale divento’: “Algoritmo dicit: … ” ) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 25

Che cosa e’ l' informatica … z. La creazione di algoritmi che combinano anche

Che cosa e’ l' informatica … z. La creazione di algoritmi che combinano anche in modo complesso sequenze di operazioni semplici (blocchi). . . zpuo’ sintetizzare meglio zche cosa e’ l' informatica. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 26

Livelli di utilizzo di E. E. z. Livello utente: z. E. E. = scatole

Livelli di utilizzo di E. E. z. Livello utente: z. 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; zobiettivo utente: acquisire familiarita’ col sistema. z. Livello professionista: zconoscenza precisa e completa di ogni componente funzionale di E. E. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 27

Da Babage ad oggi ? ? z. La struttura funzionale di un Personal Computer

Da Babage ad oggi ? ? z. 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. z. La tecnologia elettronica e’ cambiata, e’ cresciuta la potenzialita’. . . ma la “filosofia” del funzionamento e’ rimasta inalterata. z. Segue un’ elementare sintesi semplificata del comportamento. Anna. Maria di E. E. Carminelli Gregori: fondamenti di informatica parte 1 28

Il via alle varie unita’ componenti e’ scandito zperiodicamente da un orologio. z “Si

Il via alle varie unita’ componenti e’ scandito zperiodicamente da un orologio. z “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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 29

Introduzione a E. E. Struttura funzionale: z. Temporizzator e z. Unita’ Centrale di Controlloz.

Introduzione a E. E. Struttura funzionale: z. Temporizzator e z. Unita’ Centrale di Controlloz. CPU z. Registri Flag z. Unita’ di controllo di I/O z. Periferiche Unita’ Aritmetico - Logica z. Memoria Centrale (R. A. M. ) z. Memorie di massa Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 30

Il clock z. Le operazioni svolte dalle componenti di E. E. devono essere sincronizzate:

Il clock z. 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. ) z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 31

Valori di T e di f ? z. Per es. T= 40 nsec, f=

Valori di T e di f ? z. Per es. T= 40 nsec, f= 25 MHz (Mega Hertz=Milioni di battiti o impulsi) z. Per eseguire un’ istruzione occorrono alcuni impulsi di orologio: se questo ha f=100 MHz verranno eseguite mediamente circa quaranta milioni di operazioni/sec. z. Oggi si hanno clock con frequenza di 500 MHz e periodo di 2 nsec. . . Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 32

Flusso di informazioni z. Tornando allo schema della diapositiva 28 si puo’ immaginare in

Flusso di informazioni z. 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. z. 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 Anna. Maria Carminelli Gregori: video). fondamenti di informatica parte 1 33

E. E. Hard. + Software (Soft. ) z Per l’ utente: z. E. E.

E. E. Hard. + Software (Soft. ) z Per l’ utente: z. E. E. solo hardware => unfriendly z. E. E. con Soft. di base => - unfriendly z. E. E. con Soft. di base e z Soft. applicativo => friendly z. Il Soft. di base ha 2 strati: z_ il Sistema Operativo (S. O. ) z_ i programmi di utilita’ z. I prg. Applicativi formano un altro strato. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 34

Sistema Operativo: ze’ un insieme di programmi specializzato nel governare il funzionamento di E.

Sistema Operativo: ze’ un insieme di programmi specializzato nel governare il funzionamento di E. E. rendendo la gestione delle sue risorse trasparente per l’ utilizzatore; zmette cosi’ a disposizione dell’ utilizzatore una macchina virtuale non esistente, ma piu’ potente e amichevole dell’ hardware in quanto risponde ai comandi-utente; zil processo di virtualizzazione si propaga ad ogni strato aggiuntivo di software. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 35

Esigenza dell’ utente: zavere a disposizione una macchina con cui poter lavorare e interagire

Esigenza dell’ utente: zavere 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”. z. 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). Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 36

Sistema Operativo: aspetti z(ricordare: il processo di virtualizzazione si propaga ad ogni strato di

Sistema Operativo: aspetti z(ricordare: il processo di virtualizzazione si propaga ad ogni strato di software !) z. QUINDI: zfunzione 1: S. O. = Interfaccia amichevole zfunzione 2: S. O. = GESTIRE tutte le componenti di un Elaboratore (=Sistema Complesso) ossia unita’ di controllo, memorie, interfacce di rete, … qualunque dispositivo. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 37

Schema di Sistema Operativo z. Anche il S. O. puo’ essere visto come un

Schema di Sistema Operativo z. Anche il S. O. puo’ essere visto come un sistema a scatole cinesi (o a cipolla): il seguente schema e’ un’ alternativa. z. APPLICATIVI z. Soft. base: prg. util. zshell z. System_file zkernel z. Hardware z. Soft. base: S. O. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 38

Sistema Operativo: componenti essenziali zshell: conchiglia, guscio che interfaccia l’ utente; e’ sostanzialmente un

Sistema Operativo: componenti essenziali zshell: conchiglia, guscio che interfaccia l’ utente; e’ sostanzialmente un interprete di comandi con eventuale interfaccia grafica; z. System_file: contiene il gestore-informazioni dell’ utente poste nei file (FILE cfr. +oltre); zkernel: 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) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 39

S. O. piu’ diffusi z personal computer: z DOS = Disk Operating System basato

S. O. piu’ diffusi z personal computer: z DOS = Disk Operating System basato su comandi e messaggi: il suo “zoccolo duro” e’ composto da 3 programmi MSDOS. SYS, IO. SYS COMMAND. COM; z. Windows z. Apple_top z. What you see is what you get ! z dotati di interfaccia grafica a oggetti rappresentati da icone e manipolabili col mouse; zper ogni tipo di elaboratore: Unix (AT&T) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 40

Software di base z. Tipici esempi di programmi di utilita’: zeditor; zinterpreti; zcompilatori; zassemblatori

Software di base z. Tipici esempi di programmi di utilita’: zeditor; zinterpreti; zcompilatori; zassemblatori z…. z. Strumenti Software indispensabili per costruire programmi eseguibili (vedere +oltre) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 41

Programmi applicativi z. Tipico esempio: Word Processor o elaboratore di testi -> fa apparire

Programmi applicativi z. 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 !) z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 42

R. D. B. M. S. o S. G. B. D. R z. Questi sono

R. D. B. M. S. o S. G. B. D. R z. 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. ). z. 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). z. Sulle tabelle di dati si lavora con operazioni che seguono regole precise => Algebra delle Anna. Maria Carminelli Gregori: relazioni. fondamenti di informatica parte 1 43

…. Friendly ? z. L’ algebra non e’ amichevole, R. D. B. M. S.

…. Friendly ? z. 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 Data. Base db 1. z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 44

Evoluzione dei S. O. (1970 -98) z. Batch (a lotti) --> interattivi: z mono-utente

Evoluzione dei S. O. (1970 -98) z. Batch (a lotti) --> interattivi: z mono-utente mono-programmato; DOS z“ “ multi_program. _ proc. ; Windows 3. x z molti utenti contemporanei; z multi_programmato o Windows-NT, z multi_tasking e Mac. Os… z di rete; Unix …VM …. z 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). Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 45

Significato di: z. S. O. multiutente, multiprogrammato o multiprocesso, multitasking => zpiu’ utenti possono

Significato di: z. S. O. multiutente, multiprogrammato o multiprocesso, multitasking => zpiu’ utenti possono lavorare sul medesimo computer; zogni utente puo’ eseguire “contemporaneamente” piu’ programmi; zogni programma puo’ eseguire “contemporaneamente” piu’ funzioni. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 46

S. O. multi - utente e multi_tasking z. Funzioni: z z z z z

S. O. multi - utente e multi_tasking z. Funzioni: z z z z z 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. . . Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 47

S. O. mono - utente e mono_tasking (DOS) z. Funzione: esecuzione dei comandi utenti;

S. O. mono - utente e mono_tasking (DOS) z. Funzione: esecuzione dei comandi utenti; z gestione Input/output e file; z segnalazione errori. z. E’ caricato all’ accensione nella parte alta (zona convenzionale) della RAM ove resta fino alla fine sessione. z E’ TUTTORA fondamentale: Windows vi si “appoggia” ! Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 48

Prompt z. Ogni S. O. ha un suo proprio prompt che appare quando il

Prompt z. 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’: zper il DOS il nome del disco ove si trova la parte non residente del DOS seguito da > ossia per esempio C: > zper Windows il menu’ grafico che usa un modello a finestra = metafora della scrivania. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 49

Il DOS non e’ sensitivo z. Il DOS e’ un S. O. a comandi

Il DOS non e’ sensitivo z. Il DOS e’ un S. O. a comandi che si possono scrivere in maiuscolo o minuscolo. z. I comandi propri del DOS si trovano nei manuali e nell’ help in linea: il loro formato e’ molto semplice …. zes. copy mio. c tuo. c -> effetto: il contenuto del file mio. c e’ copiato nel file tuo. c … ricoprendo ogni eventuale contenuto precedente !!! ATTENZIONE ! Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 50

Altri comandi interessanti z. Per vedere una “mappa” della memoria RAM dopo il caricamento

Altri comandi interessanti z. 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) z. Per vedere una “mappa” del disco C: si puo’ dare il comando DIR C: z. Per visualizzare un file di tipo testo che si chiama TEST. TXT c’ e’ TYPE TEST. TXT ecc. z. Nota: nel comando DIR sono usabili i caratteri jolly (* e ? ) per indicare caratteri sconosciuti. Anna. Maria Carminelli Gregori: Cfr. help. fondamenti di informatica parte 1 51

e Windows ? z. Viene caricato col DOS e si presenta con i suoi

e Windows ? z. 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. z. In questo modello a finestra, dove il Desk-Top rappresenta la scrivania, i file (=pratiche) sono rappresentati da. Anna. Maria icone, i direttori da cartelle. Carminelli Gregori: fondamenti di informatica parte 1 52

e Windows 95_NT ? z. Come detto, e’ un S. O. per le reti

e Windows 95_NT ? z. Come detto, e’ un S. O. per le reti di computer. z. 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). z. Il modello Client-Server (con piu’ Server e tanti Client) e’ molto comune ed usato nella rete Internet e nelle sue sottoreti. z. 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 Anna. Maria Carminelli Gregori: di regole) TCP/IP. fondamenti di informatica parte 1 53

W. W. W. ( = Web) : un cenno z. E’ software installato su

W. W. W. ( = Web) : un cenno z. 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. z. 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) Anna. Maria Carminelli Gregori: detti Client_Web. fondamenti di informatica parte 1 54

Con HTML e’ possibile: zdescrivere un documento e collegarlo ad altri documenti locali o

Con HTML e’ possibile: zdescrivere 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 Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 55

E questa specifica della URL ze’ usata anche nei vari collegamenti ai Siti Internet

E questa specifica della URL ze’ usata anche nei vari collegamenti ai Siti Internet lavorando col Client_Web disponibile, per es. Netscape. z. Su/con Netscape si possono fare esperimenti, prove collegandosi a URL note. Per es. http: //home. netscape. com/ zhttp: //www. univ. trieste. it/servizi / z z…ecc. ricerca didattica borse Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 56

File z. Concettualmente: file = archivio di dati che varia nel tempo. E’ possibile

File z. Concettualmente: file = archivio di dati che varia nel tempo. E’ possibile aggregare i dati (=informazioni) in registrazioni = Record. z. Accesso informazioni: sequenziale / diretto zes. libro = successione di pagine z accesso sequenziale alle info: pagina dopo pagina z “ diretto: occorre l’ indice: (inform. -> pagina) z. Supporti: dischi (possibili accesso sequen. -diretto) znastri ( bobine) (possibile solo accesso sequenz. ) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 57

Informazione e Ipertesti z. Con E. E. si puo’ fruire di informazioni non solo

Informazione e Ipertesti z. 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. z. 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. z. RICORDARE l’ uso dei dizionari ! Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 58

e l’ ipermedia ? z. Dall’ ipertesto si passa all’ ipermedia quando i collegamenti

e l’ ipermedia ? z. 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. z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 59

File & programmi z. I file possono contenere anche programmi: in questo caso il

File & programmi z. 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. z. In generale pero’ parlando di file si intende un archivio di informazioni come per es. : dati anagrafici di persone o indirizzi o classifiche finanziarie. . . Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 60

Dimensioni File intesi in senso generale z…. e la C. M. ? Concettualmente: file(=

Dimensioni File intesi in senso generale z…. 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. z. Dischi e nastri= Memoria di massa o periferica z 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 ……. . . Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 61

Disco (Hard, Floppy, C. D. ) e Direttori z Concettualmente: disco = deposito di

Disco (Hard, Floppy, C. D. ) e Direttori z 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. z 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”. z 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). Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 62

Denominazioni in DOS z Nomi di disco: A: o B: (unita’ floppy); D: (Compact);

Denominazioni in DOS z 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. z 1 n. o caratteri prima 8 z 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. . . z Nomi di Direttori: 1 stringa di 8 caratteri al piu’. z Per creare un nuovo direttorio c’e’ il comando MD z si distrugge un direttorio VUOTO col “ RD z si passa da un dirett. ad un altro col “ CD z con M=Make, R=Remove, C=Change. Segue esem. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 63

Struttura logica ad albero e md = make directory (in DOS) z “ROOT ()”

Struttura logica ad albero e md = make directory (in DOS) z “ROOT ()” e’ il direttorio radice z ____|____ In si puo’ digitare: z | | md anna md lola z anna lola in anna si puo’ dare: z __|______ | md prg md tesi md mio z| | | pr. c ottenendo l’ albero qui a zprg tesi mio sinistra dove in lola c’e’ z pr. c = file con un progr. in C, che si puo’ visualizzare con type C: lolapr. c Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 64

Percorsi in DOS ztype C: lolapr. c e’ un esempio di come si puo’

Percorsi in DOS ztype C: lolapr. 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: unodue mio. txt z. 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 cdunodue Un dir indichera’ mio. txt Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 65

La struttura gerarchica del disco zappare anche nella rappresentazione grafica di Windows che usa

La struttura gerarchica del disco zappare anche nella rappresentazione grafica di Windows che usa finestre collegabili tra loro anche gerarchicamente. z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 66

Con Windows znella situazione precedente del disco C: basta porsi con la freccia del

Con Windows znella 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 Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 67

… e poi ? Oltre al comando type ? z. Per visualizzare e/o cambiare

… e poi ? Oltre al comando type ? z. 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. z. In DOS basta digitare edit e seguire le sue indicazioni; zin Windows basta fare clik col mouse sul file o sull’ icona di un editor e alla sua apertura seguire le sue indicazioni. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 68

Uso di dischi floppy (dischetti) in ambiente DOS z. Inizialmente il floppy e’ vergine.

Uso di dischi floppy (dischetti) in ambiente DOS z. Inizialmente il floppy e’ vergine. In DOS col comando FORMAT A: si ottiene di formattare il dischetto inserito nell’ unita’ A: (drive) z. La formattazione e’ un’ operazione che fa PERDERE ogni eventuale informazione preesistente. Per un floppy si distingue in: zformattazione FISICA che divide il dischetto in tracce e settori di 512 bytes ciascuno; zformattazione LOGICA che crea un’ area del dischetto riservata al DOS. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 69

Situazione attuale dei floppy z. La forma oggi piu’ attuale e’ quella di 3

Situazione attuale dei floppy z. La forma oggi piu’ attuale e’ quella di 3 e 1/2 pollici (diametro); zla 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); zun 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 70

e il disco rigido = hard disk = disco fisso …? z. La formattazione

e il disco rigido = hard disk = disco fisso …? z. La formattazione FISICA e’ realizzata dal costruttore, mentre il comando FORMAT puo’ effettuarne la formattazione LOGICA conseguente PERDITA di ogni eventuale informazione preesistente. MAI FARLO SENZA PENSARCI ALMENO 3 VOLTE !!! z. Il tempo richiesto per accedere ad un’ informazione del Disco Rigido e’ 30 ms (millisecondi); per il floppy 10 -20 volte di piu’. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 71

e i dischi ottici ? i C. D. ? i D. V. D. ?

e i dischi ottici ? i C. D. ? i D. V. D. ? z. 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); zin 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; z. I file su ogni C. D. sono presentati all’ utente organizzati ad “albero” come accade per gli altri Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 72 dischi.

Creazione di file di tipo testo z. Utilizzo di Editor = programma appartenente al

Creazione di file di tipo testo z. Utilizzo di Editor = programma appartenente al Software di base per comporre testi (EDITING = operazioni di scrittura, visualizzazione, cancellazione, modifica …) zeditor 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 Anna. Maria Carminelli Gregori: tipografiche. fondamenti di informatica parte 1 73

Costruzione di un programma in C, o in Fortran, o in Pascal z. Con

Costruzione di un programma in C, o in Fortran, o in Pascal z. 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 ? ? z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 74

Fasi di costruzione del software z. PROGETTO CONCETTUALE: qui si devono definire gli obiettivi,

Fasi di costruzione del software z. PROGETTO CONCETTUALE: qui si devono definire gli obiettivi, con quale algoritmo si vogliono raggiungere, le motivazioni. Ossia COSA, COME, PERCHE’. z. PROGETTO LOGICO: la sua bozza con l’ algoritmo risolutivo. z. PROGRAMMA ORIGINE (source program) scritto nel linguaggio artificiale scelto per es. in C. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 75

Quale linguaggio artificiale ? z. Di linguaggi artificiali ce ne sono migliaia: la scelta

Quale linguaggio artificiale ? z. Di linguaggi artificiali ce ne sono migliaia: la scelta va a quello che appare piu’ vicino ai problemi da risolvere. z. Per problemi scientifico-tecnici e’ adatto il FORTRAN (da FORmulas TRANslator); zper privilegiare l’ aspetto didattico si usa il Pascal (dal nome del filosofo Blaise Pascal); z“general purpose” e’ il linguaggio C (il S. O. Unix e’ stato scritto in C); zil C++ e’ una versione del C orientata agli oggetti paradigma di programmazione in voga attualmente. Il C++ Anna. Maria Carminelli Gregori: nasce nel 1980. fondamenti di informatica parte 1 76

Programma: tipiche funzioni svolte z. Lettura dati (input); z. Elaborazione dei dati (sequenziale, ciclica,

Programma: tipiche funzioni svolte z. Lettura dati (input); z. Elaborazione dei dati (sequenziale, ciclica, condizionale) e costruzione dei risultati; z. Visualizzazione risultati (output). z… e senza la visualizzazione ? !? ASSurdita’: i risultati resterebbero ignoti ! z. Le tipiche funzioni svolte possono essere realizzate in parti (“moduli”) a se’ stanti. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 77

Ma i dati ? z. La funzione che li legge deve poterli memorizzare: per

Ma i dati ? z. La funzione che li legge deve poterli memorizzare: per questo il programma deve “prenotare” posizioni di C. M. z. 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. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 78

Processo di traduzione z. Una volta scritto il source program nel linguaggio artificiale scelto

Processo di traduzione z. 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: z. INTERPRETI, COMPILATORI, ASSEMBLATORI, ztutti programmi di utilita’ del Software di base. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 79

Tipi di Traduttori z. Interprete: tipico e’ quello della shell di ogni S. O.

Tipi di Traduttori z. 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. z. Es. in DOS: Dir A: z Type miofile. txt z. Dir e Type: interpretati e subito eseguiti Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 80

Software di base: z. Editor, Interpreti, compilatori, assemblatori. . . z. Compilatore: interpreta e

Software di base: z. Editor, Interpreti, compilatori, assemblatori. . . z. 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. z. Assemblatore: analogo al Compilatore, ma il linguaggio artificiale e’ elementare, con struttura simile al linguaggio della macchina. z. C’e’ anche il linker la cui funzione e’ completare Anna. Maria Carminelli Gregori: la traduzione. fondamenti di informatica parte 1 81

Ambiente amichevole z. I compilatori attuali (sia del linguaggio C, C++, che del Fortran)

Ambiente amichevole z. 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. z. Si e’ tentati di scrivere direttamente il Source Program … zma e’ una strategia perdente ! Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 82

Strategia corretta z. Il RISCHIO e’ di essere tanto coinvolti dalle regole linguistiche (sintattiche

Strategia corretta z. Il RISCHIO e’ di essere tanto coinvolti dalle regole linguistiche (sintattiche e grammaticali) da dimenticare gli obiettivi desiderati. z. PRIMA di usare il linguaggio si deve prepararne il PROGETTO. z…. COME ? ? Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 83

Il progetto ed il suo linguaggio: possibilita’ z. Il progetto deve contenere cio’ che

Il progetto ed il suo linguaggio: possibilita’ z. Il progetto deve contenere cio’ che si vuole ottenere (gli obiettivi) e come fare ad ottenerlo. Per esprimerlo le alternative sono: za) si puo’ usare un linguaggio simile a quello parlato (PSEUDO-CODICE), ma piu’ sintetico; zb) si puo’ usare un linguaggio grafico producendo uno schema a blocchi (diagramma di flusso, flow-chart) delle operazioni che devono essere eseguite. z. Segue esempio. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 84

Esempio progettino z a) Si vuole ottenere il codice numerico NUM di un carattere

Esempio progettino z a) Si vuole ottenere il codice numerico NUM di un carattere CAR della tastiera diverso da 0, se 0 Stop. z b) Legenda: I=Inizio; S=Stop; T=True; F=False. I CAR=0? F Num=(int)CAR Num T S 85

I diagrammi di flusso zusano simboli semplici: il rettangolo e’ z tipico dell’ elaborazione;

I diagrammi di flusso zusano simboli semplici: il rettangolo e’ z tipico dell’ elaborazione; il rombo di z decisioni; il parallelogramma, z di letture; l’output e’ il seguente: z altri simboli sono: cerchi, frecce. . . Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 86

Dal Progetto al Programma z. Come scrivere questo programma in C ? Il Source

Dal Progetto al Programma z. Come scrivere questo programma in C ? Il Source Program ottenuto e’ leggi _car. c (diapo 91 - 95), ma prima di esaminarlo ecco qualche idea. z 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++. z<intestazione della funzione> z{ z <corpo della funzione racchiuso dalle {}> Anna. Maria Carminelli Gregori: z} fondamenti di informatica parte 1 87

Il main z Tra le funzioni C e C++ esiste la funzione principe: il

Il main z 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++. z 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() z Il corpo del main deve contenere l’ attivazione di tutte quelle funzioni che portano a raggiungere gli obiettivi posti nel progetto: i risultati desiderati. z Il corpo di ogni funzione contiene il proprio ambiente. . . Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 88

Corpo delle Funzioni z. Piu’ in dettaglio: il corpo di ogni funzione C ha

Corpo delle Funzioni z. 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. z. Il minimo programma origine C o C++ e’: zmain() z{ zreturn (0); restituisce il controllo al S. O. con lo zero tra parentesi come segnale di fine corretta. z} Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 89

Commenti (vedere commenti. c) z Per documentare un source program sono necessari commenti che

Commenti (vedere commenti. c) z Per documentare un source program sono necessari commenti che o sono racchiusi tra /* */ o preceduti da // (solo col compilatore C++) z Es. main() z /*questo C_program scritto da …in data. . . */ z /* su un IBM_compatibile con MS-DOS */ z /* non fa niente !*/ z { z return (0); Anna. Maria Carminelli Gregori: z } fondamenti di informatica parte 1 90

L’ ambiente di sviluppo del compilatore del C & C++ ze’ aperto dalla finestra

L’ ambiente di sviluppo del compilatore del C & C++ ze’ 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: z. File per aprire/chiudere un file contenente un programma origine gia’ registrato; z. Edit per fare le operaz. di editing sul file aperto o per costruire un programma origine nuovo; z. Compile per compilare il programma origine; z. Run per fare eseguire il programma eseguibile. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 91

Leggi _car. c z. Essendo nell’ ambiente di sviluppo del compilatore del C si

Leggi _car. c z. 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 Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 92

Iterazione z. Questa ripetizione e’ stata resa automatica con un programma che la realizza,

Iterazione z. Questa ripetizione e’ stata resa automatica con un programma che la realizza, di nome ripeleg. c Ma quale sara’ il progetto di ripeleg. c ? z. 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; zper 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 … Anna. Maria Carminelli Gregori: ossia. . . fondamenti di informatica parte 1 93

b) Legenda: I=Inizio; S=Stop; T=True; F=False. z I Ripeti=TRUE S F Ripeti T CAR=0?

b) Legenda: I=Inizio; S=Stop; T=True; F=False. z I Ripeti=TRUE S F Ripeti T CAR=0? F T Num=(int)CAR Num Ripeti = FALSE Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 94

Visualizzazioni in leggi _car. c z. All’ interno del prg. leggi _car. c e’

Visualizzazioni in leggi _car. c z. All’ interno del prg. leggi _car. c e’ usata la frase di scrittura/visualizzazione “printf”. z. 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. z…e in C++ ? Operatori e funzioni analoghe. Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 95

PROGRAM leggi_car. c z /* INIZIO DOCUMENTAZIONE: z Il programma strutturato a MODULI (funzioni)

PROGRAM leggi_car. c z /* INIZIO DOCUMENTAZIONE: z Il programma strutturato a MODULI (funzioni) e’ il primo ad usare non solo elaborazione sequenziale, ma anche ondizionale. Deve: z leggere un carattere e, se diverso da 0, z stamparlo con il suo valore numerico. z Autore: < NOME E COGNOME > z data: . . z ambiente: LAB. ING. S. O. = MS_DOS z Variabili (STRUTTURE DATI) usate nel programma: z NOME TIPO z car char; per leggere i caratteri (INPUT) z num integer; per memorizzarne il valore numerico (OUTPUT) Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 96

PROGRAM leggi_car (seg. 1) z Procedure o MODULI componenti: – MAIN, LEGGI, ELABORA, SCRIVI,

PROGRAM leggi_car (seg. 1) z Procedure o MODULI componenti: – MAIN, LEGGI, ELABORA, SCRIVI, ATTENDI. z FINE DOCUMENTAZIONE */ z /* INIZIO parte dichiarativa */ z #include "stdio. h" /* Libreria del C */ z /* Dichiarazione delle Variabili GLOBALI usate in tutti i MODULI*/ z int num; char car; z /* Dichiarazione dei Prototipi dei MODULI usati */ z void leggi(); void scrivi(); void elabora(); void attendi(); z /* Inizio Modulo principale segue */ z Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 97

PROGRAM leggi_car (seg. 2) z main() z {/* INIZIO Parte esecutiva */ z leggi();

PROGRAM leggi_car (seg. 2) z main() z {/* INIZIO Parte esecutiva */ z leggi(); /* leggi un carattere in car */ z if ( car != '0') /* se car no 0 fai il seguente blocco di istruzioni*/ y{ /* inizio del blocco if */ y elabora(); y scrivi(); y attendi(); y} /* fine del blocco if */ z else /* altrimenti segnala con il blocco seguente */ x{ printf( "ATTENZIONE: car = %c ", car); x attendi(); }; /* fine del bloccodi segnalazione */ z return (0); 98 z } /* Fine Modulo principale */

PROGRAM leggi_car (seg. 3) z void leggi() /*Intestazione delle funzione leggi */ z /*

PROGRAM leggi_car (seg. 3) z void leggi() /*Intestazione delle funzione leggi */ z /* Legge un carattere sulla riga: variabile utilizzata che esce definita: car */ z { /*Inizio leggi */ z printf ("n scrivimi un carattere. . . "); z scanf ("%1 s", &car); z } /* Fine leggi */ z void scrivi() /*Intestazione delle funzione scrivi */ z /* Visualizza il carattere <> 0 col suo valore numerico: z variabili utilizzate: car, num */ z { /* Inizio scrivi */ z printf ( "Carattere letto e Valore numerico corrispondente: z c%d ", car, num); } /* Fine scrivi*/ Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 99 z

PROGRAM leggi_car (seg. 4 & FINE) z void elabora() /*Intestazione delle funzione elabora */

PROGRAM leggi_car (seg. 4 & FINE) z void elabora() /*Intestazione delle funzione elabora */ z /* Esegue la conversione del carattere letto nel z valore numerico corrispondente secondo il codice ASCII */ z { /* Inizio elabora */ z num = (int) car; z } /* Fine elabora*/ z void attendi() /*Intestazione delle funzione attendi */ z { /* Inizio attendi */ z printf("n premi un carattere. . . "); z scanf(" "); z } /* Fine attendi */ Anna. Maria Carminelli Gregori: fondamenti di informatica parte 1 100