fondamenti di informatica parte 2 appunti per Nettuno

  • Slides: 103
Download presentation
fondamenti di informatica parte 2 appunti per Nettuno a. a. 2005 -2008 di anna

fondamenti di informatica parte 2 appunti per Nettuno a. a. 2005 -2008 di anna maria carminelli gregori carmin@units. it Software fondamenti informatica 1 Nettuno parte 2 1

Evoluzione dei S. O. (1970 -99) z. Da Sistemi a lotti (Batch) a interattivi;

Evoluzione dei S. O. (1970 -99) z. Da Sistemi a lotti (Batch) a interattivi; z mono-utente mono-programmato; DOS z“ “ multi_programmato; Windows 3. x z molti utenti simultanei; z multi_programmato o Windows 2000, z multi_tasking e “ XP, 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 fondamenti informatica 1 Nettuno telescopio). parte 2 2

S. O. mono & multiprogrammato: z. I Sistemi Operativi sono mono o multi task

S. O. mono & multiprogrammato: z. I Sistemi Operativi sono mono o multi task cioe’ tali da da poter eseguire un solo (mono) o piu’ programmi anche “contemporaneamente”. z. I S. O. multi task sono suddivisi in multiutenti e monoutente. z. I S. O. multi task e monoutente danno all’utente la possibilita’ di effettuare piu’ funzioni; z. Nei S. O. multi task e multiutenti il meccanismo puo’ essere applicato a +utenti in apparente contemporaneita’. fondamenti informatica 1 Nettuno parte 2 3

Significato di S. O. multiutente & multiprogrammato: z(multiprogrammato o multiprocesso o multitasking) & multiutente:

Significato di S. O. multiutente & multiprogrammato: z(multiprogrammato o multiprocesso o multitasking) & multiutente: piu’ utenti possono lavorare sul medesimo computer eseguendo in apparente contemporaneita’ piu’ programmi: apparente perche’ in realta’ esiste tra i programmi un’ articolazione temporale (=>time sharing) definita dal S. O. stesso; zmultiprogrammato (o multiprocesso o multitasking): ogni programma puo’ eseguire piu’ funzioni. fondamenti informatica 1 Nettuno parte 2 4

Subito 2 esempi z. Con il Personal si usa il DOS e/o +spesso Windows

Subito 2 esempi z. Con il Personal si usa il DOS e/o +spesso Windows in modalita’ singolo utente, ma con Windows si possono attivare piu’ programmi; znel Laboratorio di Informatica e’ usato Windows. XP ossia un S. O. che può controllare una rete locale di E. E. z. Come gia’ indicato, l’ utente usa uno degli elaboratori connessi ad un E. E. chiamato SERVER che gestisce la rete locale e condivide tra tutti il suo disco fisso, suddiviso in piu’ partizioni chiamate E: , S: , H: X: (vedere denominazioni in DOS, +oltre). fondamenti informatica 1 Nettuno parte 2 5

Laboratorio e rete z. I programmi che lo studente (=utente ) vuole usare non

Laboratorio e rete z. I programmi che lo studente (=utente ) vuole usare non sono residenti sulla macchina locale , o CLIENT, ma sul disco rigido condiviso dal Server con tutti gli E. E. del Laboratorio. z. La connessione al Server avviene tramite accesso con username e password chiesti all’ avvio di ogni E. E. locale: la loro mancanza inibisce l’ accesso ai programmi. z … ma una volta connessi il modo di lavorare e’ simile a quello su un E. E. non condiviso e allo studente sembra di essere l ’ unico utilizzatore (… a parte i tempi di attesa!!) fondamenti informatica 1 Nettuno parte 2 6

S. O. multi - utente e multi_tasking (o multiprocesso) z. Funzioni: z z z

S. O. multi - utente e multi_tasking (o multiprocesso) 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. . . fondamenti informatica 1 Nettuno parte 2 7

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 dal BOOTSTRAP nella zona convenzionale della RAM (0 - 640 K) ove resta fino alla fine sessione (permanentemente sta nella ROM e/o su disco). z E’ TUTTORA fondamentale: Windows 2000 per esempio vi si “appoggia” ! Segue una sua sintesi … fondamenti informatica 1 Nettuno parte 2 8

Fasi di caricamento del DOS z. All’ accensione: RAM e’ vergine, ROM contiene: z_

Fasi di caricamento del DOS z. All’ accensione: RAM e’ vergine, ROM contiene: z_ il “caricatore” (BOOTSTRAP), z_ i programmi diagnostici per la verifica dell’ Hardware e dei periferici di I/O (BIOS= Basic Input output System). z. Tutto viene subito caricato nella RAM. Da qui il BOOTSTRAP puo’ caricare dal disco nella zona convenzionale della RAM quei programmi del DOS che li’ risiederanno per tutta la sessione di lavoro. z NOTA: un programma per essere eseguito deve stare in RAM ! 9

Parte fondamentale del DOS solo cenni fino 14 compreso z. Tra i programmi fondamentali

Parte fondamentale del DOS solo cenni fino 14 compreso z. Tra i programmi fondamentali ci sono: z. COMMAND. COM la shell del DOS ; z. IO. SYS, MSDOS. SYS System_file & Kernel senso gia’ indicato. z. La parte del DOS non residente resta generalmente su file del disco C: Da li’ i file con i programmi (che “eseguono” i relativi comandi-utente) vengono caricati in C. M. (RAM) quando sono attivati. fondamenti informatica 1 Nettuno parte 2 10

Dos: caratteristiche z. Il DOS tradizionale non puo’ gestire memoria oltre l’ indirizzo 65536010=640

Dos: caratteristiche z. Il DOS tradizionale non puo’ gestire memoria oltre l’ indirizzo 65536010=640 K: zper farlo ha bisogno di programmi speciali ossia “driver” per gestire la memoria espansa e la memoria estesa (oltre 1 M). z. A caricamento avvenuto il S. O. e’ pronto per eseguire i comandi digitati da tastiera e/o forniti in altro modo (per es. con file batch: cfr. +oltre). Lo segnala col “prompt” di sistema. fondamenti informatica 1 Nettuno parte 2 11

prompt & comandi del DOS z. Ogni S. O. ha un suo proprio prompt

prompt & comandi del DOS 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. fondamenti informatica 1 Nettuno parte 2 12

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 ! fondamenti informatica 1 Nettuno parte 2 13

DOS: altri comandi interessanti z. Per vedere una “mappa” della memoria RAM dopo il

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

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. , sui dischi di E. E. , sul tasto Avvio per passare a Dos, . . . z. In questo modello a finestra, dove il Desk-Top rappresenta la scrivania, i file (=pratiche) sono rappresentati da icone, i direttori da cartelle. 15

e Windows 2000 e XP ? z. Come detto, si tratta di S. O.

e Windows 2000 e XP ? z. Come detto, si tratta di S. O. anche per reti di E. E. Nella loro architettura a strati o livelli, al livello più basso il Kernel non interfaccia l’ hardware direttamente, ma tramite un altro strato HAL (Hardware Abstraction Layer) che isola il processore in modo da facilitare la portabilità del sistema su varie piattaforme (tipi di E. E. ). Il Kernel è collegato alla Shell tramite il System Service Interface che interfaccia lo strato Executive Components con le applicazioni che, attraverso emulazione di software, realizzano la compatibilità con diversi (micro)processori. z. Si ottengono così Portabilità e Compatibilità. 16

Traccia di Windows. XP z. Lo schema già introdotto per un generico S. O.

Traccia di Windows. XP z. Lo schema già introdotto per un generico S. O. deve essere arricchito di 2 strati: uno (HAL) rivolto alla compatibilità con altri hardware, l’ altro (Executive) contenente applicazioni che emulano altri (micro)processori. z. APPLICATIVI z. Soft. base: prg. util. zshell z System_file/Syst. Service zkernel z. Hardware Exec. Components z. S. O. HAL fondamenti informatica 1 Nettuno parte 2 17

System Service Interface permette anche la gestione di reti: z Windows. XP gestisce la

System Service Interface permette anche la gestione di reti: z Windows. XP gestisce la rete usata nel Lab. che e’ del tipo Client-Server con un E. E. (=Server) adibito a fornire i Servizi richiesti dagli altri E. E. (=Client). z Il modello Client-Server, con piu’ Server (detti I. S. P. =Internet Service Provider= distributori di servizi di Internet) e tanti Client e’ molto diffuso ed e’ usato in Internet e nelle sue sottoreti. z Internet e’ nota anche per la diffusione di W. W. W. = World Wide Web => la “ragnatela tessuta” sulla rete per la gestione di informazioni che stanno nei vari E. E. della rete. Questi per comunicare usano il protocollo (=insieme di regole) TCP/IP (Tranmission Control Protocol/Internet Protocol). fondamenti informatica 1 Nettuno parte 2 18

Informazione e Ipertesti saltare fino 23 compresa. z. Con E. E. si puo’ fruire

Informazione e Ipertesti saltare fino 23 compresa. 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 ! fondamenti informatica 1 Nettuno parte 2 19

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 fondamenti dei link logici oltre a quelli fisici. informatica 1 Nettuno parte 2 20

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

W. W. W. ( = Web) : un cenno z. E’ software installato su appositi Server (detti Server_Web componenti degli I. S. P. ) che facilita sia la comunicazione in Internet sia la gestione di documenti ipermediali (informazioni testuali e immagini, suoni, collegati tra loro) pubblicati in Internet. 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) detti Client_Web. 21

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 fondamenti informatica 1 Nettuno parte 2 22

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

E questa specifica della URL e’ 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 ricerca didattica …ecc. z. Un esempio di file in html è ma. htm z borse 23

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 a loro volta anche raggruppabili a blocchi. z. Accesso informazioni: sequenziale / diretto zes. libro = successione di pagine z accesso sequenziale alle info: pagina dopo pagina z “ diretto: occorre un indice inform. - n. o pagina z. Supporti: dischi (possibili accesso sequen. -diretto) znastri ( bobine) (possibile solo accesso sequenz. ) e le “matite” o “penne” USB Universal Serial Bus 24

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. Queste 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. . . fondamenti informatica 1 Nettuno parte 2 25

Dimensioni File z…. e la C. M. ? Concettualmente: un file(= archivio) non “STA”

Dimensioni File z…. e la C. M. ? Concettualmente: un file(= archivio) non “STA” in C. M. ma in Memoria di Massa. In C. M. viene LETTO o CREATO e/o modificato a blocchi un blocco per volta (vedere diapo successiva) e quindi REGISTRATO su Memoria di Massa col nome scelto. z. Dischi e nastri= Memoria di massa o periferica z Es. Dimensione file: se K=1024=210, M=1048576= 220 z 1 pag. libro 3 Kbyte 1 “ giornale senza foto 50 Kbyte 1 quotidiano 2 Mbyte 1 immagine 1 Mbyte ……. . . 26

La costruzione di un file zdipende dal tipo del file (sequenziale, ad accesso diretto…)

La costruzione di un file zdipende dal tipo del file (sequenziale, ad accesso diretto…) ma concettualmente avviene con l’ uso di un programma che prenota un’ area di C. M. (RAM) ove registrare un blocco di record (formato da uno o più record secondo la dimensione del record stesso). z. Ogni record del blocco deve essere costruito con le informazioni necessarie (es. #matricola, cognome, indirizzo…). Quando il blocco è completo viene registrato su memoria di massa. Queste operazioni sono ripetute fino all’ esaurimento delle informazioni. fondamenti informatica 1 Nettuno parte 2 27

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

Disco (Hard, Floppy, C. D. ) e Direttori z Concettualmente: disco = deposito di archivi. Il S. O. con il File System fornisce all’ utente una visione logica dei dischi (indipendente dalla struttura hardware) basata sui concetti di File e Cataloghi di nomi di file = Direttori o Cartelle. 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 (ad albero) appare nel direttorio di ogni disco che contiene l’ elenco dei file e dei suoi (sotto)direttori (cfr. tra 3 diapositive). fondamenti informatica 1 Nettuno parte 2 28

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: X: 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. . . Questi sono nomi usati anche in Windows come i nomi di Direttori= Cartelle (1 stringa caratteri). fondamenti informatica 1 Nettuno parte 2 29

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

La struttura gerarchica del disco zappare nella rappresentazione grafica di z. 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. fondamenti informatica 1 Nettuno parte 2 30

Con Windows z per aprire un file basta porsi con la freccia del mouse

Con Windows z per aprire un file basta porsi con la freccia del mouse e fare 2 clik su Risorse Computer: compare una finestra con immagini del floppy A: del disco locale C: z del video … Si pone la freccia del mouse sul disco C: Con due clik “si apre” il disco e appare una finestra con le cartelle dei direttori e dei file. Basta porsi con la freccia del mouse e fare clik per 2 volte sulla cartella che si vuole aprire. z Ogni cartella può contenerne altre seguendo una struttura ad albero evidenziata nella diapo seguente dove a partire dal direttorio del disco C: appare la situazione dell’ esempio. fondamenti informatica 1 Nettuno parte 2 31

Struttura logica ad albero z “C: ” Clic su C: ed appaiono le zz

Struttura logica ad albero z “C: ” Clic su C: ed appaiono le zz ____|____ cartelle z | | anna e lola z anna lola in anna si trovano 3 altre __|______ | cartelle prg tesi mio z| | | pr. txt ottenendo l’ albero qui a zprg tesi mio sinistra dove in lola c’e’ solo z pr. txt = file di testo fondamenti informatica 1 Nettuno parte 2 32

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. fondamenti informatica 1 Nettuno parte 2 33

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 porre la freccia del mouse sulla cartella uno e fare clik : appare un’ altra finestra con la cartella due. Facendo clik su questa si apre un’ altra finestra con l’ icona del file mio. txt fondamenti informatica 1 Nettuno parte 2 34

… e poi ? z. Per visualizzare e/o cambiare il file mio. txt zsia

… e poi ? z. Per visualizzare e/o cambiare il file mio. txt zsia 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. fondamenti informatica 1 Nettuno parte 2 35

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. 36

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

Percorsi in DOS SALTARE 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 poi 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 fondamenti informatica 1 Nettuno parte 2 37

L’ area riservata SALTARE z e’ suddivisa in 3 parti a partire da traccia

L’ area riservata SALTARE z e’ suddivisa in 3 parti a partire da traccia e settore 0: z BOOT -> contiene il bootstrap (avviamento di DOS); z FAT -> File Allocation Table (Tabella di z disposizione dei file sui settori e z tracce del dischetto. E’ il raccordo z tra contenitore e contenuto ossia z “ settori e file: quali settori sono z pertinenti ad un dato file ? z DIRETTORIO-> catalogo dei nomi di file e di direttori fondamenti informatica 1 Nettuno parte 2 38

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

Situazione attuale dei floppy SALTARE z. La forma oggi piu’ diffusa 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. fondamenti informatica 1 Nettuno parte 2 39

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’ 1 -10 ms (millisecondi); per il floppy 10 -20 volte di piu’. fondamenti informatica 1 Nettuno parte 2 40

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 richiedono un masterizzatore = dispositivo con raggio laser ad alta energia ; z (Diventano memorie di massa aggiuntive come le memorie permanenti FLASH poste in un contenitore “a matita” collegabile all’ U. S. B. (Universal Serial Bus) di E. E. ; ) z la loro registrazione =“masterizzazione” dipende dal loro tipo: per i CDRom é effettuata una sola volta facendoli diventare memorie di massa aggiuntive, ma di tipo ROM; per i CDR/W può essere realizzata più volte purchè l’ elaboratore in uso abbia il masterizzatore ed il relativo software. z I file su ogni C. D. sono presentati all’ utente organizzati ad “albero” come accade per gli altri 41 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 il S. O. ha un suo editor che permette di comporre testi (vedi Editor-DOS). RICORDARE: piu’ potente dell’ editor e’ il Word-processor = applicativo (gia’ visto) che permette tutte le operazioni fondamenti informatica 1 Nettuno tipografiche. parte 2 42

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, anche un file batch …. e 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. fondamenti informatica 1 Nettuno parte 2 43

Cos’è la programmazione ? z. E’ un’ attività, a volte ostica, ma anche affascinante.

Cos’è la programmazione ? z. E’ un’ attività, a volte ostica, ma anche affascinante. z. E’ fondamentale per l’ Informatica e comprende: z. Progetto e z. Realizzazione di programmi fondamenti informatica 1 Nettuno parte 2 44

Cos’è un programma ? z. I programmi (software) indicano al computer l’ insieme delle

Cos’è un programma ? z. I programmi (software) indicano al computer l’ insieme delle operazioni che deve fare per ziniziare, zsvolgere e zconcludere zun lavoro, un compito, una funzione. fondamenti informatica 1 Nettuno parte 2 45

Fasi di costruzione di ogni prodotto software z. PROGETTO CONCETTUALE: qui si devono definire

Fasi di costruzione di ogni prodotto 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. fondamenti informatica 1 Nettuno parte 2 46

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 al problema 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++ nasce nel 1980 e con il C e’ compatibile per gli aspetti elementari. 47

Tipiche funzioni svolte da un Programma: z. Lettura dati (input); z. Elaborazione dei dati

Tipiche funzioni svolte da un Programma: 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. fondamenti informatica 1 Nettuno parte 2 48

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. z. Tali entita’ servono anche per la loro elaborazione e quindi la loro visualizzazione. fondamenti informatica 1 Nettuno parte 2 49

Domanda: z z. E senza alcuna lettura di dati ha senso un programma? z.

Domanda: z z. E senza alcuna lettura di dati ha senso un programma? z. Si: i dati posono essere generati usando una successione di interi o usando un generatore di numeri pseudocasuali. . . fondamenti informatica 1 Nettuno parte 2 50

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) con le relative funzioni di lettura, elaborazione e visualizzazione, occorre: registrarlo in un file (per es. uno. c) , e attivare il traduttore che fa la traduzione da C a linguaggio della macchina (di cui alcuni esempi sono in parte 5). I traduttori si distinguono in: z. INTERPRETI, COMPILATORI, ASSEMBLATORI, tutti programmi di utilita’ del Software di base. fondamenti informatica 1 Nettuno parte 2 51

Tipi di Traduttori z Interprete: tipico e’ quello della shell digitale (non grafica) dei

Tipi di Traduttori z Interprete: tipico e’ quello della shell digitale (non grafica) dei Sistemi Operativi (come il Dos) che interpreta e manda in esecuzione i comandi dell’ utente uno alla volta : non produce alcuna traduzione permanente in linguaggio della macchina. z Se la shell è di tipo grafico come in Window i comandi possono essere dati con 1 o 2 click del mouse. z Es. in DOS: Dir A: z Type miofile. txt z Dir e Type: interpretati e subito eseguiti 52

Software di base: compilatori, assemblatori, linker. . . z. Compilatore: interpreta e traduce nel

Software di base: compilatori, assemblatori, linker. . . z. Compilatore: interpreta e traduce nel linguaggio macchina le frasi di un linguaggio artificiale ad alto livello che compongono un programma: produce un programma binario detto programma oggetto che e’ l’ equivalente del programma origine (source), ma nel linguaggio di E. E. z. Assemblatore: analogo al Compilatore, ma il linguaggio artificiale e’ elementare, con struttura simile al linguaggio della macchina. z. La funzione del fondamenti linker appare qui di seguito. informatica 1 Nettuno z editor, interpreti, parte 2 53

Fasi del processo traduzioneesecuzione z. Dopo la stesura con l’Editor del Source. Program, z

Fasi del processo traduzioneesecuzione z. Dopo la stesura con l’Editor del Source. Program, z 1) si attiva il compilatore (fase di compilazione) che traduce il Source Program nel Programma Oggetto e lo pone in un file con estensione. obj che e’ in linguaggio della macchina ma non ancora eseguibile (per es. non ha le librerie di lettura_dati/scrittura tipiche del linguaggio); z 2) Il Linker completa il processo di traduzione effettuando il collegamento tra i moduli o componenti (“fase di linkaggio”): effettua, per es. , il collegamento con le librerie tipiche del linguaggio e produce un programma eseguibile (con estensione. exe, o in C++Builder 4. bpr). z 3) Dopo questo si passa alla fase di esecuzione. 54

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, loader ossia un caricatore, linker, interfaccia amichevole: cio’ rende automatiche le 3 fasi : vedere esempi in C e in C++. z. Si e’ tentati di scrivere direttamente il Source Program … zma e’ una strategia perdente ! fondamenti informatica 1 Nettuno parte 2 55

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 ? ? fondamenti informatica 1 Nettuno parte 2 56

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 (coi simboli essenziali mostrati di seguito) producendo uno schema a blocchi (diagramma di flusso, flow-chart) delle operazioni che devono essere eseguite. Nettuno z. Segue esempio. fondamenti informatica 1 parte 2 57

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. . . fondamenti informatica 1 Nettuno parte 2 58

Esempio progettino per visualizzare l’ ASCII code z a) Si vuole ottenere il valore

Esempio progettino per visualizzare l’ ASCII code z a) Si vuole ottenere il valore numerico Num (ASCII code) di un carattere CAR digitato da 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 59

Dal Progetto al Programma z. Come scrivere questo (o qualunque) programma in C o

Dal Progetto al Programma z. Come scrivere questo (o qualunque) programma in C o C++ ? (Il Source Program scritto in C++ è in program 2 (project 7), ma prima di esaminarlo seguono alcune idee. ) fondamenti informatica 1 Nettuno parte 2 60

Segue dal Progetto al Programma z Ogni prg. in C ed in C++ e’

Segue dal Progetto al Programma 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 {}> z} z. Per presentare subito un programma in C++ segue l’ esempio project 711 in versione monolitica seguito da project 7 strutturato a moduli per evidenziare le differenze, (entrambi in /carmin/Nettuno 2006/programm 2). 61

/* PROGRAM leggi_car VERSIONE MONOBLOCCO project 7111 z INIZIO DOCUMENTAZIONE: z Il programma é

/* PROGRAM leggi_car VERSIONE MONOBLOCCO project 7111 z INIZIO DOCUMENTAZIONE: z Il programma é simile al project 7, ma non è strutturato a MODULI (funzioni): vedere la differenza con project 7. z Come project 7 però usa non solo elaborazione sequenziale, z ma anche condizionale. z Deve: leggere un carattere e porlo nella variabile car; z se car é diverso da 0, deve convertirlo in numerico, z porlo nella variabile num e visualizzare car e num. z Autore: < NOME E COGNOME > z data: . . z ambiente: LAB. ING. S. O. = vindows, MS_DOS z Variabili (STRUTTURE DATI) usate nel programma: z NOME TIPO z car char; per leggere i caratteri (INPUT) z num integer; per memorizzare il valore numerico (OUTput) z Procedure o MODULI componenti: MAIN FINE DOCUMENTAZIONE */ 62

z /* INIZIO parte dichiarativa */ z #include "stdio. h“ //Libreria richiesta: Standard Input-Output

z /* INIZIO parte dichiarativa */ z #include "stdio. h“ //Libreria richiesta: Standard Input-Output C #include <iostream. h> // Libreria rich. : “ Input-Output C++ z main() z { /* Inizio Modulo principale */ z int num; /*dichiarazioni delle variabili usate */ z char car; z /* INIZIO Parte esecutiva */ z /* Il programma legge un carattere sulla riga e lo assegna a car: variabile utilizzata che viene definita: car */ z cout<<"n scrivimi un carattere. . . "; /* Indicazione! */ z cin >> car; /* Lettura */ z /* fine lettura */ z if ( car != '0') /* fai il seguente blocco di istruzioni che z /* esegue la conversione del carattere letto nel z valore numerico corrispondente secondo il codice ASCII z variabili utilizzate: car, num */ 63

/* inizio del blocco if */ { num = (int) car; /* Conversione! */

/* inizio del blocco if */ { num = (int) car; /* Conversione! */ /* Visualizza il carattere <> 0 col suo valore numerico*/ cout << car <<" "<< num; /* Fine visualizzazione e attesa di un carattere da tastiera*/ z cout<<"n premi un carattere e return"; z cin >>" "; /*attesa del carattere*/ z } /* fine del blocco if */ z else /* altrimenti segnala con il blocco seguente */ z { z cout<<"ATTENZIONE: car = "<< car; z cout<<"n premi un carattere e return"; z cin >>" "; /*attesa del carattere*/ z }; /* fine blocco di segnalazione */ z return (0); z } /* Fine Modulo principale */ z z z fondamenti informatica 1 Nettuno parte 2 64

z PROGRAM leggi_car VERSIONE a MODULI project 7 z /* INIZIO DOCUMENTAZIONE: Il programma

z PROGRAM leggi_car VERSIONE a MODULI project 7 z /* INIZIO DOCUMENTAZIONE: Il programma é il primo ad essere strutturato a MODULI (funzioni) ed é il primo ad usare non solo elaborazione sequenziale, ma anche condizionale. Deve: leggere un carattere e porlo nella variabile globale car; se car é diverso da 0, deve convertirlo in numerico, porlo nella variabile num e stampare car e num. z Autore: < NOME E COGNOME > data: . . ambiente: LAB. ING. S. O. = … z Variabili (STRUTTURE DATI) usate nel programma: z car char; per leggere i caratteri (INPUT) z num integer; per memorizzarne il valore numerico (OUTPUT) z Procedure o MODULI componenti: MAIN, LEGGI, ELABORA, SCRIVI, ATTENDI z FINE DOCUMENTAZIONE */ z 65

z/* INIZIO parte dichiarativa */ z#include "stdio. h" /* Libreria usata: Standard Input-Output C

z/* INIZIO parte dichiarativa */ z#include "stdio. h" /* Libreria usata: Standard Input-Output C */ z#include <iostream. h> /* Libreria usata: Standard Input-Output C++ */ z/*Variabili GLOBALI usate in tutti i MODULI*/ z int num; char car; /* Dichiarazione dei Prototipi dei MODULI usati */ zvoid leggi(); zvoid scrivi(); zvoid elabora(); zvoid attendi(); fondamenti informatica 1 Nettuno parte 2 66

z /* INIZIO Parte Esecutiva */ z main() { /* Inizio Modulo principale */

z /* INIZIO Parte Esecutiva */ z main() { /* Inizio Modulo principale */ z leggi(); z if ( car != '0') /* fai il seg. blocco di istruzioni */ z {/* inizio del blocco if */ z elabora(); scrivi(); attendi(); } /* fine blocco if */ z else /* altrimenti segnala con il blocco seg. */ z {cout<<"ATTENZIONE: car = "<< car; z attendi(); z }; /* fine blocco di segnalazione */ z return (0); z } /* Fine Modulo principale */ z /*…. z Seguono le funzioni, in ordine “sparso”: vedere project 7 in /carmin/Nettuno 2006/programm 2 */ fondamenti informatica 1 Nettuno parte 2 67

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 descritto in fondinf 3. 68

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 C e’: zmain() z{ z} fondamenti informatica 1 Nettuno parte 2 69

In C++ zil minimo programma e’: zmain() z{ z return (0); z} z. Il

In C++ zil minimo programma e’: zmain() z{ z return (0); z} z. Il corpo e’ composto dalla sola frase return che restituisce il controllo al S. O. con lo zero tra parentesi come segnale di fine corretta. In C++ l’ extension deve essere fondamenti informatica 1 Nettuno cpp parte 2 70

Commenti (vedere in programmi 1 project 1. cpp) z Per documentare un programma sono

Commenti (vedere in programmi 1 project 1. cpp) z Per documentare un programma 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 } z …ma scritto il programma, come si dà in pasto al compilatore? 71 Usando l’ ambiente di sviluppo del C++… +oltre

Corpo z. Per vedere e far funzionare questo ed altri programmi elementari collegarsi a

Corpo z. Per vedere e far funzionare questo ed altri programmi elementari collegarsi a E: /carmin/nettuno 2006/program 1 ove si trovano i project 1 -5 che si possono vedere e far funzionare subito, con le indicazioni date in ciascuno di essi. z Le frasi costituenti il corpo di ogni funzione possono essere anche raggruppate per costituire istruzioni composte. Ogni istruzione composta e’ racchiusa in parentesi graffe e costituisce un BLOCCO: vederne un esempio in project 7 in E: /carmin/nettuno 2006/program 2 72

C e C++ z. Come gia’ detto in questo corso sara’ usato il C++

C e C++ z. Come gia’ detto in questo corso sara’ usato il C++ che e’ compatibile con il C “in basso” (aspetti elementari). I concetti fondamentali della Programmazione ad Oggetti che caratterizzano il C++ (ed altri linguaggi come il linguaggio JAVA) possono essere introdotti successivamente. Il motivo di cio’ sta nel fatto che l’ Oggetto puo’ essere considerato come una generalizzazione di strutture e sottoprogrammi. fondamenti informatica 1 Nettuno parte 2 73

Visualizzazioni z. All’ interno dei programmi project 1 -5 e’ usata anche la frase

Visualizzazioni z. All’ interno dei programmi project 1 -5 e’ usata anche la frase di scrittura/visualizzazione “printf”. z. E’ l’ attivazione della funzione C per la scrittura/visualizzazione resa disponibile includendo il file <stdio. h> chiamato header (e percio’ l’ estensione h) che contiene i prototipi delle funzioni di libreria tipiche del linguaggio C per l’ Input/Outputtipiche del C… fondamenti informatica 1 Nettuno parte 2 74

#pragma hdrstop //terminates the list of header files ect #include <condefs. h> // includes

#pragma hdrstop //terminates the list of header files ect #include <condefs. h> // includes specific header file #pragma argsused //affects only the next function (main): it disables the warning message: "Parameter name is never used in function func-name: SONO SPECIFICHE DI BOrland z #include <stdio. h> // includes C standard I/O header file main() /* questo programma dice Hello Mondo, ma sparisce: per non farlo sparire si può mettere un comando di lettura come scanf (" "); che aspetta un carattere */ { printf("Hello World"); return(0); } fondamenti informatica 1 Nettuno parte 2 75

Esempio in C++: Project 3. cpp z. In C++ lo stesso risultato si ottiene:

Esempio in C++: Project 3. cpp z. In C++ lo stesso risultato si ottiene: zcon l’uso delle istruzioni di I/O del C++ ossia per la visualizzazione (qui di una stringa di caratteri) zcout << “Buonasera” ; ze includendo l’ header file <iostream. h> della libreria di I/O tipica di C++ z. NOTA: l’ uso di ogni libreria e’ reso possibile con la frase #include seguita dal nome del file con le definizioni che il compilatore deve conoscere perche’ la libreria sia utilizzabile. fondamenti informatica 1 Nettuno parte 2 76

Precompilatore z. Le frasi come #include che iniziano col simbolo # a colonna 1,

Precompilatore z. Le frasi come #include che iniziano col simbolo # a colonna 1, non appartengono al linguaggio C ne’ al C++: esse sono direttive per il “precompilatore” o “preprocessore” ossia un programma che fa parte dei sistemi C e C++ e viene attivato automaticamente prima della compilazione. z PERCHE’ ? fondamenti informatica 1 Nettuno parte 2 77

Caratteristica base di C e C++ ze’ la velocita’ di compilazione: per questo i

Caratteristica base di C e C++ ze’ la velocita’ di compilazione: per questo i 2 compilatori devono essere brevi; per questo il precompilatore li esenta da compiti pesanti come: definizione di costanti: #define tre 3 zdefiniz. di espressioni #define paga 9*365 zinclusione di testo sorgente che si trova nel file chiamato mio. h (h sta per header): #include <mio. h> zaltro come #pragma che è tipico del CBuilder 4 (guardare l’help relativo). 78

Velocita’ z. Proprio per rendere il compilatore piu’ veloce il C non ha funzioni

Velocita’ z. Proprio per rendere il compilatore piu’ veloce il C non ha funzioni prefabbricate al suo interno, ma ha librerie, biblioteche di funzioni gia’ in binario (precompilate) che sono … centinaia. z. Si tratta di tanti tipi di funzioni: matematiche, grafiche, di I/O … Ogni libreria e’ formata da coppie di file di cui uno (nel direttorio Lib) contiene le funzioni compilate (il loro codice) e l’ altro e’ un file header contenente le loro dichiarazioni e tutte le definizioni che il compilatore deve conoscere per rendere usabile fondamenti informatica 1 Nettuno parte 2 79 la libreria stessa.

Compiti del programmatore e del precompilatore z. Il programmatore indica al precompilatore quali librerie

Compiti del programmatore e del precompilatore z. Il programmatore indica al precompilatore quali librerie intende usare con la direttiva #include; il precompilatore inserisce i file indicati con #include all’ interno del source program prima della compilazione. z. Il compilatore puo’ cosi’ riconoscere le funzioni usate all’ interno del source program (per es. printf) perche’ trova il loro prototipo incluso precedentemente col file header e le collega al loro codice in binario che sta in …Lib. (Questo tipo di meccanismo si puo’ anche usare per concatenare librerie scritte eventualmente dall’ utente e poste in altri coppie di file. ) 80

Per altre direttive, tipiche del CBuilder 4, come #pragma z non occorre memorizzarle! guardare

Per altre direttive, tipiche del CBuilder 4, come #pragma z non occorre memorizzarle! guardare l’help relativo che dice: z #pragma hdrstop //terminates the list of header files of your project z #include <condefs. h> // includes specific header file z #pragma argsused //affects only the next function (main). z //It disables the warning message: "Parameter name is never used in function func-name z NON SI TRATTA DI DIRETTIVE STANDARD!!! z non occorre memorizzarle! fondamenti informatica 1 Nettuno parte 2 81

Flussi (stream) z. Il C++ ha un proprio sistema di I/O che usa il

Flussi (stream) z. Il C++ ha un proprio sistema di I/O che usa il concetto (tipico del S. O. Unix) di “flusso di informazioni” (stream) ossia sequenza continua di byte. Ogni flusso puo’ essere connesso a unita’ di I/O: i flussi di Output saranno collegati al video o alla stampante, di Input alla tastiera. z. Per usare il sistema di I/O del C++ occorre includere il file <iostream. h> dove sono dichiarate le funzioni e gli operatori usabili per gestire operazioni di I/O e flussi di informazioni. fondamenti informatica 1 Nettuno parte 2 82

Operatori (funzioni) << >> z. L’ operatore << (freccia a sin. ) invia le

Operatori (funzioni) << >> z. L’ operatore << (freccia a sin. ) invia le informazioni indicate alla sua destra sul flusso standard di output (cout) posto alla sua sinistra dopo averle convertite dal binario alla forma testuale; volendo inserire anche il carattere di fine riga si puo’ porre dopo un ulteriore << endl ; (end of line) z. L’ operatore >> (freccia a destra) estrae le informazioni dal flusso di entrata cin (digitate sulla tastiera) e le converte dalla forma testuale in binario inviandole alle “variabili” indicate alla 83 sua destra.

cin, cout, cerr. z. Nel file <iostream. h> sono definite le operazioni di I/O

cin, cout, cerr. z. Nel file <iostream. h> sono definite le operazioni di I/O e sono definiti e aperti i seguenti flussi delle informazioni: zingresso standard connesso alla tastiera: cin zuscita standard connesso al video: cout zuscita “ di errori conn. al video: cerr z. Ogni programma preleva i dati dallo stream di ingresso e deposita risultati in quello di uscita. Prelievo e deposito avvengono con l’ uso degli operatori freccia (funzioni). 84

Informazioni, quali ? Come ? z. Per usare e trasferire le informazioni (per es.

Informazioni, quali ? Come ? z. Per usare e trasferire le informazioni (per es. in C. M. ) occorre un formalismo. Tutti i linguaggi di programmazione (Pascal, C, C++, Fortran …) usano le variabili intese alla stregua di variabili algebriche, ma considerate come veicolo di transito e di identificazione delle informazioni = dati. z. Le variabili hanno un nome ed un tipo cosi’ come i dati identificati sono di un cero tipo: interi, caratteri. . . fondamenti informatica 1 Nettuno parte 2 85

Esempi d’ uso gia’ intravisti nei programmi. . . z. Cosi’ scrivendo una tipica

Esempi d’ uso gia’ intravisti nei programmi. . . z. Cosi’ scrivendo una tipica frase di Input in C++ zcin >> a >> b >> c; zsi indicano con a b c i nomi delle variabili che (in fase di esecuzione) acquisiranno i valori inseriti in ingresso (digitati nella tastiera dall’ utente e intervallati tra loro da almeno 1 spazio bianco). z. Per le visualizzazioni si possono usare ancora i nomi delle variabili e/o loro “combinazioni” (espressioni algebra), e costanti e funzioni e. . . zcout << “la somma a+b =“ << a+b <<endl; fondamenti informatica 1 Nettuno parte 2 86

Esempi e considerazioni z. Confrontare le frasi di input/output in C ed in C++

Esempi e considerazioni z. Confrontare le frasi di input/output in C ed in C++ nei programmi in E: /carmin/nettuno 2006/program 1 di nome project 1. cpp - project 5. cpp z. Si notera’ che il cout << e’ piu’ semplice della printf (che richiede specifiche di controllo del formato in cui si desiderano i valori da visualizzare ) e cosi’ pure il cin>> rispetto alla scanf (diapo seg. ) fondamenti informatica 1 Nettuno parte 2 87

printf e scanf z Analoga alla printf e’ la scanf che si usa in

printf e scanf z Analoga alla printf e’ la scanf che si usa in C per leggere valori da assegnare alle variabili; z entrambe richiedono specifiche di controllo del formato in cui si desiderano i valori da visualizzare o da leggere; z le specifiche di controllo piu’ usate sono: z %d per leggere/visualizzare interi in base 10; z %f “ “ “ valori float in base 10; z %c - %s per legg. /visual. Caratteri - Stringhe di car. z Inoltre alla scanf le variabili devono essere passate per indirizzo (cfr. parte 3) per es. premettendo al nome della var. da leggere l’ operatore & 88

#include <nomefile. h> oppure: z #include “nomefile. h” ? z La prima, se nomefile.

#include <nomefile. h> oppure: z #include “nomefile. h” ? z La prima, se nomefile. h sta nel direttorio del sistema C o C++; la seconda, se nomefile. h sta altrove. z L’ estensione. h indica che si tratta di un file “header” che puo’ contenere, per esempio, i prototipi delle funzioni della libreria usata. z Esempi: stdio. h e iostream. h z Cominciamo allora a vedere un programma come project 2 ed a compilarlo per poi eseguirlo. z Segue il programma project 2 e quindi come fondamenti informatica 1 Nettuno compilarlo. parte 2 89

#pragma hdrstop //terminates the list of header files… #include <condefs. h> // includes specific

#pragma hdrstop //terminates the list of header files… #include <condefs. h> // includes specific header file #pragma argsused //affects only the next function (main): it disables the warning message: "Parameter name z is never used in function func-name #include <stdio. h> // includes C standard I/O header file main() /* questo programma dice Hello Mondo, ma sparisce: per non farlo sparire si può mettere un comando di lettura come scanf (" "); che aspetta un carattere */ { printf("Hello World"); return(0); } //e per compilarlo? PRIMA DI TUTTO OCCORRONO… 90

Occorrono user_rname e password che abilitano z la connessione al Server e sono richiesti

Occorrono user_rname e password che abilitano z la connessione al Server e sono richiesti all’ avvio del computer locale: la loro, mancanza inibisce ogni accesso. z ogni studente con la psw creerà una cartella di lavoro sul disco condiviso del Server on fs 1 ts. ds. units. ithome$ (X: ) con il proprio cognome (per meglio riconoscerla) e costruirà li' dentro il proprio programma e tutti i file di lavoro (per es. copierà lì il mio programma project 2); altrimenti chi ha una psw provvisoria userà un dispositivo personale o MYDocument che è locale, ma viene conservato. Alla fine dell’ esercitazione gli studenti faranno logout, per la successiva esercitazione. fondamenti informatica 1 Nettuno parte 2 91

Con username e password zoccorre attivare l’ ambiente BB 4 (Borland Builder 4) ossia

Con username e password zoccorre attivare l’ ambiente BB 4 (Borland Builder 4) ossia click su: Start (Avvio) > Programs > Borland C++ Builder 4 > C++ Builder 4 z (oppure click su Mycomputer, Local. Disk. C: , Program Files, Borland, CBuilder 4, Bin; bcb. exe; ( )) z. Si apre l’ icona di BB 4 e parte BB 4 aprendo l’ ambiente di sviluppo del C++Borland con un’ applicazione Visual (grafica per es. ) che per ora non sarà usata. z. Invece viene subito usato il menù in alto che contiene alcune parole come: File, Edit, Project , Run, per attivare strumenti che oltre al compilatore fanno parte dell’ ambiente di sviluppo del 92 C++Borland.

L’ ambiente di sviluppo zha le seguenti voci: z. File per aprire/chiudere un file

L’ ambiente di sviluppo zha le seguenti voci: z. File per aprire/chiudere un file contenente un programma origine gia’ registrato (. cpp); z. Edit per fare le operaz. di editing sul file aperto; z. Project per usare un progetto e compilare il relativo prg. origine (Compile Unit) ed eventualmente “linkarlo” (Build All) con le librerie richieste ottenendo il prg. eseguibile; z. Run per fare eseguire il prg. eseguibile. fondamenti informatica 1 Nettuno parte 2 93

L’ applicazione Visual z per ora non interessa quindi clic sul menù File e

L’ applicazione Visual z per ora non interessa quindi clic sul menù File e close-all e sempre dal menù File clic su New: si apre la finestra New item, z dove, un doppio clic su Console Wizard, fa aprire un’ altra finestra per la creazione di un’ applicazione già impostata a tipo console, che è quella che interessa; z al clic su Finish viene presentato un programma main vuoto dove dopo alcune direttive per il precompilatore, c’è la funzione main seguita da suoi argomenti che per ora non interessano (cancellare) e return (0): si possono inserire le frasi del proprio programma tra main() e return(0) dentro le parentesi graffe, ma si può anche. . . fondamenti informatica 1 Nettuno parte 2 94

…accedere ai miei programmi così: z click sul menù File, click su open: si

…accedere ai miei programmi così: z click sul menù File, click su open: si apre una finestra con la situazione del disco ossia: z arc_stud on ‘docenti. ing. units. it’ z prog_stud on ‘docenti. ing. units. it’ (S: ) fs 1 ts. ds. units. ithome$ (X: ) z click su arc_stud > 2 clik su carmin > inf 2005 > program 1 > project 2 … z SALVARE (copiare!!!) project 2 nella cartella di lavoro creata sul disco condiviso del Server X: o sul floppy personale o su MYDocument che è locale, ma viene conservato. z Farlo compilare (con click su Compile. Unit sotto Project) ed eseguire con Run. 95

username & password personali z abilitano ogni studente ad accedere al disco del Server

username & password personali z abilitano ogni studente ad accedere al disco del Server (arc_stud e prog_stud in lettura, partizione (Disco) X: in lettura/scrittura; lo stud. puo’ usare tutti i programmi registrati in arc_stud e prog_stud ; z Per registrare può usare My. Document (o H: e X: ? ? ? ) partizioni del disco fisso del Server per ogni studente, dove puo’ registrare i suoi programmi in alternativa al floppy personale o a MYDocument che è locale, ma viene conservato. z QUINDI costruito il proprio programma (prima di compilare!) salvarlo con clic su File e su Save Project as nella cartellalavoro appositamente costruita di X: o di My. Document, altrimenti C++ cerca di porre i file intermedi (per es. l’ obj) in arc_stud o prog_stud che sono protetti e si ha ERRor. z Con Project è inteso un lavoro consistente di 4 file: il Source (extension. cpp); il Source & direttive per il precompilatore (. bpr); la versione tradotta in linguaggio macchina (. obj) senza i collegamenti; la versione con supporti ulteriori (. tds): conservare. cpp e. bpr, cancellare le altre. 96

Fare le seguenti modifiche ai projects di program 1 z. Visualizzare una sequenza di

Fare le seguenti modifiche ai projects di program 1 z. Visualizzare una sequenza di caratteri (“vai a pescare? ”) con cout includendo il file iostream. h; z. Usare #define per introdurre la spesa annuale sapendo che al giorno spendo 55, 43€; zleggere 5 caratteri e visualizzare tutte le loro sequenze possibili …. fondamenti informatica 1 Nettuno parte 2 97

L’ esempio del progettino: project 7. cpp z Nell’ ambiente di sviluppo di BB

L’ esempio del progettino: project 7. cpp z Nell’ ambiente di sviluppo di BB 4, porsi sotto File e con un click su Open aprire il programma z E: /Carmin/Inf 2005/programm 2/project 7. cpp z Esaminarlo con l’editor, copiarlo su una cartella personale, farlo compilare usando Project e girare (Run): questo comando (da solo) provvedera’ prioritariamente (se non e’ stato gia’ fatto) al “linkaggio” del programma oggetto con le librerie usate (per es. di I/O ), producendo il programma eseguibile di nome project 7. bpr (bpr pronto per l’ esecuzione) Andando 34 diapo indietro lo ritrovate z Per eseguire +volte project 7 si puo’ usare fondamenti informatica 1 Nettuno z +volte Run. . . parte 2 98

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

Iterazione z Questa ripetizione si e’ resa automatica con un programma che la realizza, project 71. Ma quale sara’ il progetto relativo ? z Mandando in esecuzione project 71. bpr si nota la ripetizione (=iterazione): per realizzare questo tipo di procedimento occorre tornare a rifare le operazioni gia’ fatte la prima volta fino a quando e’ necessario; z occorre quindi ripetere la lettura di CAR, la sua conversione in Num e la visualizzazione di entrambi fino a quando si introduce lo zero … ossia. . . fondamenti informatica 1 Nettuno parte 2 99

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 fondamenti informatica 1 Nettuno parte 2 100

Assegnazione semplice z. Le frasi di Input servono per assegnare alle variabili i valori

Assegnazione semplice z. Le frasi di Input servono per assegnare alle variabili i valori immessi per es. da tastiera. z. Il costrutto linguistico base usato allo scopo di assegnare a variabili valori calcolati, e’ la frase tipica di assegnazione, per esempio: z = b ; z. Significato: il valore di b e’ trasferito alla zona di memoria identificata dalla variabile di nome z; in breve: il valore di b e’ assegnato a z z. NOTA: b puo’ essere… tutto da una costante ad un’ espressione complicata…. cfr. avanti ! fondamenti informatica 1 Nettuno parte 2 101

Assegnazione multipla z. Oltre l’ assegnazione semplice c’ e’ in C e C++ quella

Assegnazione multipla z. Oltre l’ assegnazione semplice c’ e’ in C e C++ quella multipla che (con variabili intere) e’ del tipo seguente: za = r = b = pippo = lei 111 = 3; ze viene cosi’ interpretata ed eseguita: z(a = (r =(b=(pippo=(lei 111=3))))) zossia 3 e’ assegnato a lei 111, quindi a pippo, poi a b, quindi a r e infine ad a: valutazione da destra a sinistra o iniziando dalla parentesi piu’ internamente annidata. fondamenti informatica 1 Nettuno parte 2 102

Remember ed esercizi zogni frase del corpo di una funzione C o C++ termina

Remember ed esercizi zogni frase del corpo di una funzione C o C++ termina con un punto e virgola; znelle espressioni si possono usare parentesi tonde anche annidate, un po’ come nella assegnazione multipla dell’ esempio precedente. z. Con tutto questo in mente scrivere: zun source_prg. C++ che presenti un menu’ di cibi; un altro che presenti un menu’ di comandi DOS con sintetica spiegazione; un altro che legga 3 numeri di 2 cifre dec. ciascuno e ne faccia il prodotto la somma, la diff. e visualizzi fondamenti informatica 1 Nettuno tutto …. parte 2 103