87
fondamenti informatica1 parte 2 1 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

Embed Size (px)

Citation preview

Page 1: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 1

fondamenti di informatica parte 2

appunti per Nettuno a.a. 2004-2005dianna maria carminelli gregori

Page 2: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 2

Evoluzione dei S.O.(1970-99)Da Sistemi a lotti (Batch) a interattivi;mono-utente mono-programmato; DOS “ “ multi_programmato; Windows 3.x molti utenti simultanei; multi_programmato o Windows2000, multi_tasking e MacOs… di rete; Unix …VM ….

Nota !!! Altro tipo di Sistemi operativi: S.O.“real_time”: tempo di reazione determinato da un evento esterno (per es. l’ attivazione di un telescopio).

Page 3: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 3

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

tali da da poter eseguire un solo (mono) o piu’ programmi anche “contemporaneamente”.

I S.O. multi task sono suddivisi in multiutenti e monoutente.

I S.O. multi task e monoutente danno all’utente la possibilita’ di effettuare piu’ funzioni;

Nei S.O. multi task e multiutenti il meccanismo puo’ essere applicato a +utenti in apparente contemporaneita’.

Page 4: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 4

Significato di S.O. multiutente &

multiprogrammato: (multiprogrammato o multiprocesso o

multitasking) & multiutente: piu’ utenti possono lavorare sul medesimo computer eseguendo in apparente contemporaneita’ piu’ programmi: apparente perche’ in realta’ esiste tra i programmi un’ articolazione temporale (=>time sharing) definita dal S.O. stesso;

multiprogrammato (o multiprocesso o multitasking): ogni programma puo’ eseguire piu’ funzioni.

Page 5: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 5

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

Windows in modalita’ singolo utente, ma con Windows si possono attivare piu’ programmi;

nel Laboratorio di Informatica e’ usato Windows2000 ossia un S.O. che può controllare una rete locale di E.E.

Come gia’ indicato, l’ utente usa uno degli elaboratori connessi ad un E.E. chiamato SERVER che gestisce la rete locale e condivide tra tutti il suo disco fisso, suddiviso in piu’ partizioni chiamate E: , S: , H: X: (vedere denominazioni in DOS, +oltre).

Page 6: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 6

Laboratorio ed uso della reteI programmi che lo studente (=utente ) vuole

usare non sono residenti sulla macchina locale , o CLIENT, ma sul disco rigido condiviso dal Server con tutti gli E.E. del Laboratorio.

La connessione al Server avviene tramite accesso con username e password chiesti all’ avvio di ogni E.E. locale: la loro mancanza inibisce l’ accesso ai programmi.

… ma una volta connessi il modo di lavorare e’ simile a quello su un E.E. non condiviso e allo studente sembra di essere l ’ unico utilizzatore.

Page 7: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 7

Con username e password occorre attivare subito la procedura bc4w2ken che sta in

serving4\prog_stud\Borland: senza di questa non si possono attivare programmi applicativi di tipo console (i più semplici) del C++;

poi attivare l’ ambiente BB4 (Borland Builder 4) ossia clik su: Avvio, Programmi, Borland, CBuilder4, C++ o clic su Mycomputer, LocalC:, Program Files, Show Files, Borland …;

BB4 parte aprendo un’ applicazione Visual (grafica per es.) che per ora non sarà usata quindi clik sul menù File e close-all e sempre dal menù File clic su New: si apre la finestra New item,

dove un doppio clik su Console Wizard fa aprire un’ altra finestra per la creazione di un’ applicazione già impostata a tipo console, che è quella che interessa;

al clik 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): inserire le frasi del proprio programma tra main() e return(0) dentro le parentesi graffe.

Page 8: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 8

username & password personali abilitano ogni studente ad accedere al disco del Server (partizioni E: S: in

lettura, partizione H: e X: in lettura/scrittura); lo stud. puo’ usare tutti i programmi registrati in E: S: ;

NON puo’ invece registrare nulla su E: S: (SICUREZZA !) ma solo su H: e X: o Teledid partizioni del disco fisso del Server per gli studenti, dove puo’ registrare i suoi programmi in alternativa al floppy personale o a C:\temp.

QUINDI costruito il proprio programma (prima di compilare!) salvarlo con clik su File e su Save Project as in una cartella appositamente costruita di H: o di Teledid, altrimenti C++ cerca di porre i file intermedi (per es. l’ obj) in E: che è protetto e si ha ERRor.

Un Project consiste 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.

Per cambiare password CTRL-ALT-DEL …

Page 9: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 9

S.O. multi - utente e multi_tasking (o multiprocesso) Funzioni: eseguire i comandi utenti; gestire Input/output e file; segnalare errori; assegnare la CPU ad ogni progr.- -utente per un tempuscolo con apparente contemporaneita’ di esecuzione (compito Scheduler); fornire i servizi richiesti dalla rete; assicurare sicurezza e privatezza informazioni del singolo utente e del sistema ...

Page 10: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 10

S.O. mono - utente e mono_tasking (DOS)

Funzione: esecuzione dei comandi utenti; gestione Input/output e file; segnalazione errori.E’ caricato all’ accensione dal BOOTSTRAP

nella zona convenzionale della RAM (0 - 640K) ove resta fino alla fine sessione (permanentemente sta nella ROM e/o su disco).

E’ TUTTORA fondamentale: Windows vi si “appoggia” ! => segue una sua sintesi.

Page 11: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 11

Fasi di caricamento del DOSAll’ accensione: RAM e’ vergine, ROM contiene:_ il “caricatore” (BOOTSTRAP),_ i programmi diagnostici per la verifica dell’

Hardware e dei perferici di I/O (BIOS= Basic Input output System).

Tutto viene subito caricato nella RAM. Da qui il BOOTSTRAP puo’ caricare dal disco nella zona convenzionale della RAM quei programmi del DOS che li’ risiederanno per tutta la sessione di lavoro.

NOTA: un programma per essere eseguito deve stare in RAM !

Page 12: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 12

Parte fondamentale del DOS saltare fino 17Tra i programmi fondamentali ci sono:COMMAND.COM la shell del DOS ;IO.SYS, MSDOS.SYS System_file & Kernel

nel senso gia’ indicato.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.

Page 13: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 13

Dos: caratteristicheIl DOS tradizionale non puo’ gestire memoria

oltre l’ indirizzo 65536010=640 K:

per farlo ha bisogno di programmi speciali ossia “driver” per gestire la memoria espansa e la memoria estesa (oltre 1M).

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.

Page 14: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 14

prompt & comandi del DOSOgni S.O. ha un suo proprio prompt che appare

quando il S.O. e’ pronto a rispondere ai comandi dell’ utente che sono anch’ essi propri del S.O. Come esempi, il prompt e’:

per il DOS il nome del disco ove si trova la parte non residente del DOS seguito da > ossia per esempio C:>

per Windows il menu’ grafico che usa un modello a finestra = metafora della scrivania.

Page 15: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 15

Il DOS non e’ sensitivo

Il DOS e’ un S.O. a comandi che si possono scrivere in maiuscolo o minuscolo.

I comandi propri del DOS si trovano nei manuali e nell’ help in linea: il loro formato e’ molto semplice ….

es. copy mio.c tuo.c -> effetto: il contenuto del file mio.c e’ copiato nel file tuo.c … ricoprendo ogni eventuale contenuto precedente !!! ATTENZIONE !

Page 16: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 16

DOS: altri comandi interessantiPer vedere una “mappa” della memoria RAM

dopo il caricamento del DOS si puo’ utilizzare il comando MEM da solo o con le opzioni che si desiderano (vedi Help MEM)

Per visualizzare un file di tipo testo che si chiama TEST.TXT c’ e’ TYPE TEST.TXT

Per vedere una “mappa” del disco C: si puo’ dare il comando DIR C: ecc.

Nota: in DIR sono usabili i caratteri jolly (* e ?) per indicare caratteri sconosciuti. Cfr. help.

Page 17: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 17

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

menu’ e le sue cartelle che appaiono su una finestra del display a simulare le pile di pratiche allineate sul piano della scrivania. Come le pile di pratiche sono da aprire, cosi’ le cartelle si interrogano ponendosi con la freccia del mouse su ciascuna di esse e facendo clik col mouse. Il mouse si usa su qualunque altra immagine presente: per es. su E.E., sui dischi di E.E., sul tasto Avvio per passare a Dos, ...

In questo modello a finestra, dove il Desk-Top rappresenta la scrivania, i file (=pratiche) sono rappresentati da icone, i direttori da cartelle.

Page 18: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 18

e Windows2000 ?Come detto, e’ un S.O. anche per reti di E.E. Il modello della rete usata nel Lab. e’ del tipo

Client-Server con un E.E. (=Server) adibito a fornire i Servizi richiesti dagli altri E.E.(=Client).

Il modello Client-Server, con piu’ Server (detti I.S.P.=Internet Service Provider= distributori di servizi di Internet) e tanti Client e’ molto diffuso ed e’ usato in Internet e nelle sue sottoreti.

Internet e’ nota anche per la diffusione di W.W.W. = World Wide Web => la “ragnatela tessuta” sulla rete per la gestione di informazioni che stanno nei vari E.E. della rete. Questi per comunicare usano il protocollo (=insieme di regole) TCP/IP (Tranmission Control Protocol/Internet Protocol).

Page 19: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 19

Informazione e Ipertesti saltare fino 24.

Con E.E. si puo’ fruire di informazioni non solo in modo sequenziale, ma navigando tra diverse aree di un disco, in particolare di un disco Ottico (Compact Disk o C.D.) se si dispone del suo lettore. Come? Per es. usando gli ipertesti.

Definizione di ipertesto: documento non lineare in cui si puo’ accedere alle informazioni non solo sequenzialmente: i concetti sono collegati tra loro con collegamenti (=link logici) che permettono di saltare tra le pagine dell’ ipertesto seguendo il percorso logico piu’ interessante.

RICORDARE l’ uso dei dizionari !

Page 20: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 20

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

collegamenti non riguardano soltanto informazioni testuali ma immagini, grafica in movimento, musica,... dati multimediali che possono trovarsi anche su C.D.

Quando l’ informazione non risiede su un C.D. ma e’ diffusa in rete ossia richiede di navigare o passare da un E.E. ad un altro, si parla di multimedialita’ in rete. L’ accesso a informazioni in rete richiede anche software particolare per tener conto dei link logici oltre a quelli fisici.

Page 21: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 21

W.W.W. ( = Web) : un cennoE’ 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.

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.

Page 22: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 22

Con HTML e’ possibile: descrivere un documento e collegarlo ad altri

documenti locali o remoti. Il collegamento e’ realizzato con frasi del linguaggio HTML che specificano il nome del documento da collegare e la sua locazione indicata come URL (Uniform Resource Locator). Nella URL sono indicati:

il protocollo (insieme di regole) usato per accedere a documenti Web, http:// (hyper text transfer protocol) che utilizza i servizi di trasmissione standard tipici di Internet forniti da TCP/IP;

la locazione, indicata con: /nome del Server_Web/directory/nome_file

Page 23: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 23

E questa specifica della URLe’ usata anche nei vari collegamenti ai Siti

Internet lavorando col Client_Web disponibile, per es. Netscape.

Su/con Netscape si possono fare esperimenti, prove collegandosi a URL note. Per es. http://home.netscape.com/

http://www.univ.trieste.it/servizi / ricerca didattica borse

…ecc.

Page 24: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 24

FileConcettualmente: file = archivio di dati che

varia nel tempo. E’ possibile aggregare i dati (=informazioni) in registrazioni = Record a loro volta anche raggruppabili a blocchi.

Accesso informazioni: sequenziale / direttoes. libro = successione di pagineaccesso sequenziale alle info: pagina dopo pagina “ diretto: occorre l’ indice inform. - n.o paginaSupporti: dischi (possibili accesso sequen.-diretto)

nastri ( bobine) (possibile solo accesso sequenz.)

Page 25: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 25

File & programmiI 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.

In generale pero’ parlando di file si intende un archivio di informazioni come per es.: dati anagrafici di persone o indirizzi o classifiche finanziarie...

Page 26: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 26

Dimensioni File intesi in senso generale

Concettualmente: file(= archivio) non “STA” in C.M. ma in Memoria di Massa. In C.M. viene LETTO o CREATO e/o modificato (vedere diapo successiva) e quindi REGISTRATO su Memoria di Massa col nome scelto.

Dischi e nastri= Memoria di massa o periferica Es. Dimensione file: se K=1024= 210, M=1048576= 220 ,

1 pag. libro 3 Kbyte_____________________ 1 “ giornale senza foto 50 Kbyte ____________________ 1 quotidiano 2 Mbyte ____________________ 1 immagine 1 Mbyte ……...

Page 27: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 27

La costruzione di un filedipende dal tipo del file (sequenziale, ad accesso

diretto…) ma concettualmente avviene con l’ uso di un programma che prenota un’ area di C.M. (RAM) ove registrare un blocco di record (formato da uno o più record secondo la dimensione del record stesso).

Ogni record del blocco deve essere costruito con le informazioni necessarie (es. #matricola, cognome, nome, indirizzo…). Quando il blocco è completo viene registrato su memoria di massa. Queste operazioni sono ripetute fino all’ esaurimento delle informazioni.

Page 28: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 28

Disco (Hard, Floppy, C.D.) e Direttori

Concettualmente: disco = deposito di informazioni. Il S.O. con il File System fornisce all’ utente una visione logica dei dischi (indipendente dalla struttura hardware) basata sui concetti di File e Cataloghi di nomi di file = Direttori o Cartelle.

I file su ogni disco sono presentati all’ utente coi loro nomi raggruppati in Direttori/Cartelle organizzati in modo gerarchico con una struttura ad “albero”.

La struttura gerarchica (ad albero) appare nel direttorio di ogni disco che contiene l’ elenco dei file e dei suoi (sotto)direttori (cfr. tra 2 diapositive).

Page 29: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 29

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

C: (hard) anche divisibile in partizioni ( E: S: H: ...), Nomi di file: 2 stringhe prima e seconda separate da un carattere PUNTO.

1 n.o caratteri prima 81 n.o caratteri seconda 3 = estensione che

caratterizza il tipo del file: es. prova.c -> prg. in C; libro.txt -> testo; prova.exe-> prg. eseguibile ...

Nomi di Direttori: 1 stringa di 8 caratteri al piu’.Per creare un nuovo direttorio c’e’ il comando MD si distrugge un direttorio VUOTO col “ RDsi passa da un dirett. ad un altro col “ CDcon M=Make, R=Remove, C=Change. Segue esem.

Page 30: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 30

Struttura logica ad albero e md = make directory (in DOS)

“ROOT (\)” \ e’ il direttorio radice ____|____ in \ si possono dare i comandi | | md anna md lola anna lola in anna si puo’ scrivere: __|______ | md prg md tesi md mio| | | pr.c ottenendo l’ albero aprg tesi mio sinistra dove in lola si ha pr.c = file con un progr. in C,

che si puo’ visualizzare con type C:\lola\pr.c

Page 31: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 31

Percorsi in DOStype C:\lola\pr.c e’ un esempio di come si

puo’ visualizzare un file posto nel disco C: Segue un’ alternativa possibile nell’ ipotesi che il file mio.txt stia nel disco C:\uno\due\ mio.txt

Con DOS e’ opportuno controllare in quale disco e direttorio ci si trovi e da li’ spostarsi al direttorio due dove c’ e’ mio.txt. Come ? Prima digitare dir 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 cd\uno\due Un dir indichera’ mio.txt

Page 32: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 32

La struttura gerarchica del discoappare anche nella rappresentazione

grafica di Windows che usa finestre collegabili tra loro anche gerarchicamente.

In ogni finestra i direttori appaiono come cartelle di un certo colore ed i file come icone di forme e colori diversi secondo la loro funzione. Per es. i testi scritti col Word processor sono rappresentati con icone contenenti una W; i programmi in C++ con il simbolo di Windows; e cosi’ via.

Page 33: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 33

Con Windowsnella 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

Page 34: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 34

… e poi ? Oltre al comando type ? saltare fino 37Per visualizzare e/o cambiare il file mio.txt sia che ci si trovi in DOS che in Windows

basta attivare un programma che ne permetta la visualizzazione e modifica per es. un editor.

In DOS basta digitare edit e seguire le sue indicazioni;

in Windows basta fare clik col mouse sul file o sull’ icona di un editor e alla sua apertura seguire le sue indicazioni.

Page 35: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 35

Uso di dischi floppy (dischetti) in ambiente DOS

Inizialmente il floppy e’ vergine. In DOS col comando FORMAT A: si ottiene di formattare il dischetto inserito nell’ unita’ A: (drive)

La formattazione e’ un’ operazione che fa PERDERE ogni eventuale informazione preesistente. Per un floppy si distingue in:

formattazione FISICA che divide il dischetto in tracce e settori di 512 bytes ciascuno;

formattazione LOGICA che crea un’ area del dischetto riservata al DOS.

Page 36: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 36

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

Page 37: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 37

Situazione attuale dei floppyLa forma oggi piu’ diffusa e’ quella di 3 e 1/2

pollici (diametro);la densita’ di registrazione e’ generalmente

alta (H.D.= High Density indicata da un forellino in alto a sinistra) e le registrazioni possono essere realizzate sulle due facce (D.S. = Double Side);

un altro forellino in alto a destra indica invece che il dischetto e’ protetto da operazioni di registrazioni indesiderate: se il foro e’ chiuso da una tacca movibile il floppy e’ registrabile.

Page 38: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 38

e il disco rigido = hard disk = disco fisso …?La formattazione FISICA e’ realizzata dal

costruttore, mentre il comando FORMAT puo’ effettuarne la formattazione LOGICA con conseguente PERDITA di ogni eventuale informazione preesistente. MAI FARLO SENZA PENSARCI ALMENO 3 VOLTE !!!

Il tempo richiesto per accedere ad un’ informazione del Disco Rigido e’ 30ms (millisecondi); per il floppy 10-20 volte di piu’.

Page 39: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 39

e i dischi ottici ? i C.D.? i D.V.D. ?Possono apparire come depositi di informazioni

piu’ lenti, ma con capacita’ molto elevata (per i C.D. 700 Mbyte ed oltre per i DVD=Digital Versatile Disk utili per sequenze di immagini = film); esistono di vario tipo e richiedono un masterizzatore = dispositivo con raggio laser;

in generale vengono registrati =“masterizzati” una sola volta usando uno strumento dotato di raggio laser ad alta energia: diventano cosi’ memorie di massa aggiuntive, ma di tipo ROM;

I file su ogni C.D. sono presentati all’ utente organizzati ad “albero” come accade per gli altri dischi.

Page 40: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 40

Creazione di file di tipo testoUtilizzo di Editor = programma appartenente

al Software di base per comporre testi (EDITING = operazioni di scrittura, visualizzazione, cancellazione, modifica …)

editor attuali: a finestra; ogni ambiente di sviluppo programmi (+oltre) e/o il S.O. ha un suo editor che permette di comporre testi (vedi Editor-DOS). RICORDARE: piu’ potente dell’ editor e’ il Word-processor = applicativo (gia’ visto) che permette tutte le operazioni tipografiche .

Page 41: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 41

File (e programmi) batchCon l’ editor si possono per esempio

scrivere i file con estensione bat abbreviazione di batch=> successione di COMANDI per DOS => programma ….

I COMANDI sono eseguiti uno dopo l’ altro a partire dal primo. Tra i comandi DOS tre sono specifici di questi file batch: REM per porre commenti, PAUSE per sospendere il programma fino alla pressione di un tasto, ECHO per visualizzare messaggi.

Page 42: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 42

AUTOEXEC.BATe’ un tipico esempio di programma batch;e’ il file che DOS dopo il suo caricamento in

C.M. (zona convenzionale di RAM) va a cercare sul disco attivo (per es. il C:). Appena trovato, AUTOEXEC.BAT e’ eseguito immediatamente, un comando dopo l’ altro e produce tutte le inizializzazioni e personalizzazioni che i suoi comandi prevedono. Quindi il DOS si pone in attesa di comandi da tastiera. Esaminare il proprio AUTOEXEC.BAT... come ? Con editor

Page 43: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 43

Parametri per programmi batch (es. cp.bat) saltare

Usando l’ editor (edit) c’ e’ la possibilita’ di scrivere programmi batch di tipo parametrico con simboli sostituibili.

Es. sia da copiare il file uno.c in uno.cpp; il file sette.c in sette.cpp; etc. Si puo’ scrivere un progr. batch di copia cosi’ fatto: copy %1 %2 e porlo nel file cp.bat Poi per eseguirlo occorre attivare il programma batch di copia una volta dando: cp uno.c uno.cpp (uno.c sostituisce %1, uno.cpp sostituisce %2); un’ altra volta dando: cp sette.c sette.cpp (sette.c sostituisce %1 etc.

Page 44: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 44

Costruzione di un programma in C, o in Fortran, o in Pascal

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 ??

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.

Page 45: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 45

Fasi di costruzione di ogni prodotto softwarePROGETTO CONCETTUALE: qui si devono

definire gli obiettivi, con quale algoritmo si vogliono raggiungere, le motivazioni. Ossia COSA, COME, PERCHE’.

PROGETTO LOGICO: la sua bozza con l’ algoritmo risolutivo.

PROGRAMMA ORIGINE (source program) scritto nel linguaggio artificiale scelto per es. in C.

Page 46: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 46

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

scelta va a quello che appare piu’ vicino al problema da risolvere.

Per problemi scientifico-tecnici e’ adatto il FORTRAN (da FORmulas TRANslator);

per privilegiare l’ aspetto didattico si usa il Pascal (dal nome del filosofo Blaise Pascal);

“general purpose” e’ il linguaggio C (il S.O. Unix e’ stato scritto in C);

il C++ e’ una versione del C orientata agli oggetti paradigma di programmazione in voga attualmente. Il C++ nasce nel 1980 e con il C e’ compatibile per gli aspetti elementari.

Page 47: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 47

Tipiche funzioni svolte da un Programma: Lettura dati (input);Elaborazione dei dati (sequenziale,

ciclica, condizionale) e costruzione dei risultati;

Visualizzazione risultati (output).

… e senza la visualizzazione ?!? ASSurdita’: i risultati resterebbero ignoti !

Le tipiche funzioni svolte possono essere realizzate in parti (“moduli”) a se’ stanti.

Page 48: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 48

Ma i dati ?La funzione che li legge deve poterli

memorizzare: per questo il programma deve “prenotare” posizioni di C.M.

Lo fa usando costrutti ed entita’ del linguaggio dette variabili semplici o composte come vettori e matrici, (come in matematica), piu’ in generale “strutture di dati”, per identificare, contenere e trasferire le informazioni lette.

Tali entita’ servono anche per la loro elaborazione e quindi la loro visualizzazione.

Page 49: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 49

Processo di traduzioneUna volta scritto il source program nel

linguaggio artificiale scelto (per es. il C) con le relative funzioni di lettura, elaborazione e visualizzazione, occorre: registrarlo in un file (per es. uno.c) , e attivare il traduttore che fa la traduzione da C a linguaggio della macchina (di cui alcuni esempi sono in parte 5). I traduttori si distinguono in:

INTERPRETI, COMPILATORI, ASSEMBLATORI, tutti programmi di utilita’ del Software di base.

Page 50: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 50

Tipi di TraduttoriInterprete: tipico e’ quello della shell del

D.O.S. che interpreta e manda in esecuzione i comandi digitati dall’ utente: non produce alcuna traduzione permanente in linguaggio della macchina.

Es. in DOS: Dir A: Type miofile.txtDir e Type: interpretati e subito eseguiti

Page 51: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 51

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

linguaggio macchina le frasi di un linguaggio artificiale ad alto livello che compongono un programma: produce un programma binario detto programma oggetto che e’ l’ equivalente del programma origine (source), ma nel linguaggio di E.E.

Assemblatore: analogo al Compilatore, ma il linguaggio artificiale e’ elementare, con struttura simile al linguaggio della macchina.

La funzione del linker appare qui di seguito.

Page 52: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 52

Fasi del processo traduzione-esecuzione

Dopo la stesura con l’Editor del SourceProgram,1) si attiva il compilatore (fase di compilazione)

che traduce il Source Program nel Programma Oggetto e lo pone in un file con estensione .obj che e’ in linguaggio della macchina ma non ancora eseguibile (per es. non ha le librerie di lettura_dati/scrittura tipiche del linguaggio);

2) Il Linker completa il processo di traduzione effettuando il collegamento tra i moduli o componenti (“fase di linkaggio”): effettua,per es., il collegamento con le librerie tipiche del linguaggio e produce un programma eseguibile (con estensione .exe).

3) Dopo questo si passa alla fase di esecuzione.

Page 53: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 53

Ambiente amichevoleI compilatori attuali (sia del linguaggio C, C+

+, che del Fortran) forniscono un ambiente “User Friendly” dotato di Editor, compilatore, loader ossia un caricatore, linker, interfaccia amichevole: cio’ rende automatiche le 3 fasi : vedere esempi in C e in C++.

Si e’ tentati di scrivere direttamente il Source Program …

ma e’ una strategia perdente !

Page 54: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 54

Strategia corretta

Il RISCHIO e’ di essere tanto coinvolti dalle regole linguistiche (sintattiche e grammaticali) da dimenticare gli obiettivi desiderati.

PRIMA di usare il linguaggio si deve prepararne il PROGETTO.

…. COME ??

Page 55: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 55

Il progetto ed il suo linguaggio: possibilita’

Il progetto deve contenere cio’ che si vuole ottenere (gli obiettivi) e come fare ad ottenerlo. Per esprimerlo le alternative sono:

a) si puo’ usare un linguaggio simile a quello parlato (PSEUDO-CODICE), ma piu’ sintetico;

b) si puo’ usare un linguaggio grafico (coi simboli essenziali mostrati di seguito) producendo uno schema a blocchi (diagramma di flusso, flow-chart) delle operazioni che devono essere eseguite.

Segue esempio.

Page 56: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 56

I diagrammi di flusso

usano simboli semplici: il rettangolo e’ tipico dell’ elaborazione; il rombo di

decisioni; il parallelogramma,

di letture; l’output e’ il seguente:

altri simboli sono: cerchi, frecce ...

Page 57: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 57

Esempio progettino per visualizzare l’ ASCII code

a) Si vuole ottenere il valore numerico Num (ASCII code) di un carattere CAR della tastiera diverso da 0; se 0 Stop.

b) Legenda: I=Inizio; S=Stop; T=True; F=False.

CAR=0?

S

I

CAR

F

T

Num=(int)CAR Num

Page 58: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 58

Dal Progetto al Programma

Come scrivere questo programma in C o C++ ? (Il Source Program scritto in C++ è in program2 (project7), ma prima di esaminarlo seguono alcune idee.)

Page 59: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 59

Segue dal Progetto al ProgrammaOgni prg. in C ed in C++ e’ composto da

funzioni scritte consecutivamente; ogni funzione C e C++ ha la forma seguente dove i simboli < > racchiudono frasi esplicative e non appartengono al C o al C++.

<intestazione della funzione>{ <corpo della funzione racchiuso dalle {}> }

Page 60: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 60

Il mainTra le funzioni C e C++ esiste la funzione principe: il

main che rappresenta il “programma principale” punto di innesco di ogni programma C e C++.

Come ogni funzione matematica ha un nome ed argomenti racchiusi tra parentesi tonde (es. log(x)) cosi’ ogni funzione C, C++ ha un nome: se gli argomenti mancano le parentesi restano: es. main()

Il corpo del main deve contenere l’ attivazione di tutte quelle funzioni che portano a raggiungere gli obiettivi posti nel progetto: i risultati desiderati.

Il corpo di ogni funzione contiene il proprio ambiente descritto in fondinf3.

Page 61: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 61

Corpo delle FunzioniPiu’ in dettaglio: il corpo di ogni funzione C

ha frasi dichiarative ed esecutive, queste ultime col significato di istruzioni, comandi. Se dichiarazioni e comandi mancano il corpo e’ vuoto.

Il minimo programma C e’:main(){}

Page 62: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 62

In C++il minimo programma e’:main(){ return (0);}Il corpo e’ composto dalla sola frase

return che restituisce il controllo al S.O. con lo zero tra parentesi come segnale di fine corretta. In C++ l’ extension deve essere cpp

Page 63: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 63

Commenti (vedere in programmi1 project1.cpp)

Per documentare un programma sono necessari commenti che o sono racchiusi tra /* */ o preceduti da // (solo col compilatore C++)

Es. main() /*questo C_program scritto da …in data ...*/ /* su un IBM_compatibile con MS-DOS */ /* non fa niente !*/ { }

Page 64: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 64

CorpoPer vedere e far funzionare questo ed altri

programmi elementari collegarsi a E:/carmin/nettuno2004-05/program1 ove si trovano i project1-5 che si possono vedere e far funzionare subito, con le indicazioni date in ciascuno di essi.

Le frasi costituenti il corpo di ogni funzione possono essere anche raggruppate per costituire istruzioni composte. Ogni istruzione composta e’ racchiusa in parentesi graffe e costituisce un BLOCCO: vederne un esempio in project7 in E:/carmin/nettuno2004-05/program2

Page 65: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 65

C e C++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.

Page 66: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 66

bcb: compilatore del C++

Con username & password, fare clic su Mycomputer e quindi clic sulla cartella Borland

Si apre la finestra CBuilder4: con un Clic su Bin e quindi su bcb si apre l’ ambiente di sviluppo della Borland, nel senso che oltre al compilatore del linguaggio ci sono altri strumenti come per esempio l’ editor. Per utilizzarli occorre usare il menu’ in alto che mostra alcune parole, tra cui File, Edit, Project e Run.

Page 67: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 67

L’ ambiente di sviluppoSi utilizza con un Clik su:File per aprire/chiudere un file contenente

un programma origine gia’ registrato (.cpp);Edit per fare le operaz. di editing sul file

aperto;Project per usare un progetto e compilare il

relativo prg. origine (Compile Unit) ed eventualmente “linkarlo” (Build All) con le librerie richieste ottenendo il prg. eseguibile;

Run per fare eseguire il prg. eseguibile.

Page 68: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 68

VisualizzazioniAll’ interno dei programmi project1-5 e’

usata anche la frase di scrittura/visualizzazione “printf”.

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/Output.

…e in C++ ?

Page 69: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 69

Esempio in C++: Project3.cppIn C++ lo stesso risultato si ottiene:con l’uso delle istruzioni di I/O del C++ ossia

per la visualizzazione (qui di una stringa di caratteri)cout << “Buonasera” ;e includendo l’ header file <iostream.h> della

libreria di I/O tipica di C++NOTA: l’ uso di ogni libreria e’ reso possibile

con la frase #include seguita dal nome del file con le definizioni che il compilatore deve conoscere perche’ la libreria sia utilizzabile.

Page 70: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 70

Precompilatore

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

PERCHE’ ?

Page 71: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 71

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

2 compilatori devono essere brevi; per questo il precompilatore li esenta da compiti pesanti come:

definizione di costanti: #define tre 3inclusione di testo sorgente che si trova nel

file chiamato mio.h (h sta per header): #include <mio.h>

altro come #pragma che è tipico del CBuilder4 (guardare l’help relativo).

Page 72: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 72

Velocita’Proprio per rendere il compilatore piu’ veloce il

C non ha funzioni prefabbricate al suo interno, ma ha librerie, biblioteche di funzioni gia’ in binario (precompilate) che sono … centinaia.

Si tratta di tanti tipi di funzioni: matematiche, grafiche, di I/O … Ogni libreria e’ e’ formata da coppie di file di cui uno (nel direttorio Lib) contiene le funzioni compilate e l’ altro e’ un file header contenente le loro dichiarazioni e tutte le definizioni che il compilatore deve conoscere per rendere usabile la libreria stessa.

Page 73: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 73

Compiti del programmatore e del precompilatore

Il programmatore indica al precompilatore quali librerie intende usare con la direttiva #include; il precompilatore inserisce i file indicati con #include all’ interno del source program prima della compilazione.

Il compilatore puo’ cosi’ riconoscere le funzioni usate all’ interno del source program (per es. printf) perche’ 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.)

Page 74: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 74

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

concetto (tipico del S.O. Unix) di “flusso di informazioni” (stream) ossia sequenza continua di byte. Ogni flusso puo’ essere connesso a una unita’ di I/O: i flussi di Output saranno collegati al video o alla stampante, di Input alla tastiera.

Per usare il sistema di I/O del C++ occorre includere il file <iostream.h> dove sono dichiarate le funzioni e gli operatori usabili per gestire operazioni di I/O e flussi di informazioni.

Page 75: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 75

Operatori (funzioni) << >>L’ operatore << 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)

L’ operatore >> estrae le informazioni indicate alla sua destra dal flusso di entrata cin (digitate sulla tastiera) e le converte dalla forma testuale in binario.

Page 76: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 76

cin, cout, cerr. Nel file <iostream.h> sono definite le

operazioni di I/O e sono definiti e aperti i seguenti flussi delle informazioni:

ingresso standard connesso alla tastiera: cin uscita standard connesso al video: cout uscita “ di errori conn. al video: cerrOgni programma preleva i dati dallo stream di

ingresso e deposita risultati in quello di uscita. Prelievo e deposito avvengono con l’ uso di operatori (funzioni).

Page 77: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 77

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

in C.M.) occorre un formalismo. Tutti i linguaggi di programmazione (Pascal, C, C++, Fortran …) usano le variabili intese alla stregua di variabili algebriche, ma considerate come veicolo di transito e di identificazione delle informazioni = dati.

Le variabili hanno un nome ed un tipo cosi’ come i dati identificati sono di un cero tipo: interi, caratteri ...

Page 78: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 78

Esempi d’ uso gia’ intravisti nei programmi ...

Cosi’ scrivendo una tipica frase di Input in C++cin >> a >> b >> c;si indicano con a b c i nomi delle variabili che

(in fase di esecuzione) acquisiranno i valori inseriti in ingresso (digitati nella tastiera dall’ utente e intervallati tra loro da almeno 1 spazio bianco).

Per le visualizzazioni si possono usare ancora i nomi delle variabili e/o loro “combinazioni” (espressioni algebra), e costanti e funzioni e...

cout << “la somma a+b =“ << a+b <<endl;

Page 79: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 79

Esempi e considerazioni

Confrontare le frasi di input/output in C ed in C++ nei programmi in E:/carmin/duinf2000/program1 di nome project1.cpp - project5.cpp

Si notera’ che il cout << e’ piu’ semplice della printf (che richiede specifiche di controllo del formato in cui si desiderano i valori da visualizzare ) e cosi’ pure il cin>> rispetto alla scanf (diapo seg.)

Page 80: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 80

printf e scanfAnaloga alla printf e’ la scanf che si usa in C per

leggere valori da assegnare alle variabili;entrambe richiedono specifiche di controllo del

formato in cui si desiderano i valori da visualizzare o da leggere;

le specifiche di controllo piu’ usate sono:%d per leggere/visualizzare interi in base 10;%f “ “ “ valori float in base 10;%c - %s per legg./visual. Caratteri - Stringhe di car. Inoltre alla scanf le variabili devono essere passate

per indirizzo (cfr. parte 3) per es. premettendo al nome della var. da leggere l’ operatore &

Page 81: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 81

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

direttorio del sistema C o C++; la seconda, se nomefile.h sta altrove.

L’ estensione .h indica che si tratta di un file “header” che puo’ contenere, per esempio, i prototipi delle funzioni della libreria usata.

Esempi: stdio.h e iostream.h

Page 82: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 82

L’ esempio del progettino: project7.cpp

Nell’ ambiente di sviluppo di bcb, porsi sotto File e con un Clik su Open aprire il programma

E:/Carmin/Nettuno2004-5/program2/project7.cpp Esaminarlo con l’editor, farlo compilare usando

Project e girare (Run): questo comando (da solo) provvedera’ prioritariamente (se non e’ stato gia’ fatto) al “linkaggio” del programma oggetto con le librerie usate (per es. di I/O ), producendo il programma eseguibile di nome project7.bpr

Per eseguire +volte project7 si puo’ usare +volte Run ...

Page 83: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 83

IterazioneQuesta ripetizione si e’ resa automatica con

un programma che la realizza, project71. Ma quale sara’ il progetto relativo ?

Mandando in esecuzione project71.bpr si nota la ripetizione (=iterazione): per realizzare questo tipo di procedimento occorre tornare a rifare le operazioni gia’ fatte la prima volta fino a quando e’ necessario;

occorre quindi ripetere la lettura di CAR, la sua conversione in Num e la visualizzazione di entrambi fino a quando si introduce lo zero … ossia ...

Page 84: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 84

b) Legenda: I=Inizio; S=Stop; T=True; F=False.

CAR=0?

CAR

F

Num=(int)CAR Num

Ripeti=TRUE

Ripeti

Ripeti = FALSE

I

TS F

T

Page 85: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 85

Assegnazione sempliceLe frasi di Input servono per assegnare alle

variabili i valori immessi per es. da tastiera. Il costrutto linguistico base usato allo scopo di

assegnare a variabili valori calcolati, e’ la frase tipica di assegnazione, per esempio: z = b ;

Significato: il valore di b e’ trasferito alla zona di memoria identificata dalla variabile di nome z; in breve: il valore di b e’ assegnato a z

NOTA: b puo’ essere… tutto da una costante ad un’ espressione complicata…. cfr. avanti !

Page 86: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 86

Assegnazione multiplaOltre l’ assegnazione semplice c’ e’ in C e

C++ quella multipla che (con variabili intere) e’ del tipo seguente:

a = r = b = pippo = lei111 = 3;e viene cosi’ interpretata ed eseguita:(a = (r =(b=(pippo=(lei111=3)))))ossia 3 e’ assegnato a lei111, quindi a

pippo, poi a b, quindi a r e infine ad a: valutazione da destra a sinistra o iniziando dalla parentesi piu’ internamente annidata.

Page 87: Fondamenti informatica1 parte 21 fondamenti di informatica parte 2 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

fondamenti informatica1 parte 2 87

Remember ed eserciziogni frase del corpo di una funzione C o C++

termina con un punto e virgola;nelle espressioni si possono usare parentesi tonde

anche annidate, un po’ come nella assegnazione multipla dell’ esempio precedente.

Con tutto questo in mente scrivere:un source_prg. C++ che presenti un menu’ di cibi;

un altro che presenti un menu’ di comandi DOS con sintetica spiegazione; un altro che legga 3 numeri di 2 cifre dec. ciascuno e ne faccia il prodotto la somma, la diff. e visualizzi tutto ….