La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fondamenti di informatica parte 21 appunti per la laurea in Ingegneria Civile, Edile, Ambientale a.a. 2005-2006 di anna maria carminelli gregori

Presentazioni simili


Presentazione sul tema: "Fondamenti di informatica parte 21 appunti per la laurea in Ingegneria Civile, Edile, Ambientale a.a. 2005-2006 di anna maria carminelli gregori"— Transcript della presentazione:

1 fondamenti di informatica parte 21 appunti per la laurea in Ingegneria Civile, Edile, Ambientale a.a. 2005-2006 di anna maria carminelli gregori carmin@units.it Software

2 fondamenti di informatica parte 22 un' altra possibilità: zcollegarsi alla Home Page dell' Università di Trieste, clic su Facoltà, clic su Ingegneria, clic su http://www.ing.univ.trieste.it/ Si apre la pagina della Facoltà e verso la fine, tra i links utili, si trova:http://www.ing.univ.trieste.it/ zProgrammi dei corsi ed archivio studenti z2 clic e si apre la finestra con la cartella carmin

3 fondamenti di informatica parte 23 Evoluzione dei S.O. (dal 1970) zDa Sistemi a lotti (Batch) a interattivi; zmono-utente mono-programmato; DOS z “ “ multi_programmato; Windows 3.x z. molti utenti simultanei; Windows2000 z multi_programmato o WindowsXP z multi_tasking e MacOs… z di rete; Unix …VM …. zN ota !!! Altro tipo di Sistemi operativi: S.O.“real_time”: tempo di reazione determinato da un evento esterno (per es. un evento esterno come il passaggio di un satellite e l’ attivazione di un telescopio).

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

5 fondamenti di informatica parte 25 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.

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

7 fondamenti di informatica parte 27 Laboratorio e rete zI 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. zLa 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!!)

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

9 fondamenti di informatica parte 29 S.O. mono - utente e mono_tasking (DOS) zFunzione: esecuzione dei comandi utenti; z gestione Input/output e file; z segnalazione errori. zE’ caricato all’ accensione dal BOOTSTRAP nella zona convenzionale della RAM (0 - 640K) ove resta fino alla fine sessione (permanentemente sta nella ROM). zE’ TUTTORA fondamentale: Windows2000 per esempio vi si “appoggia” ! => segue una sua sintesi.

10 10 Fasi di caricamento del DOS zAll’ accensione: RAM e’ vergine, ROM contiene: z_ il “caricatore” (BOOTSTRAP), z_ i programmi diagnostici per la verifica dell’ Hardware e dei perferici di I/O (BIOS= Basic Input output System). zTutto 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. zNOTA: un programma per essere eseguito deve stare in RAM !

11 fondamenti di informatica parte 211 prompt & comandi del DOS zOgni 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.

12 fondamenti di informatica parte 212 Il DOS non e’ sensitivo zIl DOS e’ un S.O. a comandi che si possono scrivere in maiuscolo o minuscolo. zI 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 !

13 13 e Windows 3.x e Windows 2000? zViene caricato col DOS e si presenta con i suoi menu’ e le sue cartelle che appaiono su una finestra del display a simulare le pile di pratiche allineate sul piano della scrivania. Come le pile di pratiche sono da aprire, cosi’ le cartelle si interrogano ponendosi con la freccia del mouse su ciascuna di esse e facendo clic col mouse. Il mouse si usa su qualunque altra immagine presente: per es. su E.E., sui dischi di E.E., sul tasto Avvio per passare a Dos,... zIn questo modello a finestra, dove il Desk-Top rappresenta la scrivania, i file (=pratiche) sono rappresentati da icone, i direttori da cartelle.

14 fondamenti di informatica parte 214 e Windows XP ? zCome Windows 2000, e’ un S.O. anche per reti di E.E. zNella sua architettura a strati o livelli, al livello più basso il Kernel non interfaccia l’ hardware direttamente, ma tramite un altro strato HAL (Hardware Abstraction Layer) che isola il processore in modo da facilitare la portabilità del sistema su varie piattaforme (tipi di E.E.). zIl Kernel è collegato al System Service Interface che interfaccia lo strato Executive Components con le applicazioni che, attraverso emulazione di software, realizzano la compatibilità con diversi (micro)processori. zSi ottengono così Portabilità e Compatibilità.

15 fondamenti di informatica parte 215 Traccia di WindowsXP zLo 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 System_file/Syst.Service zHardware zkernel zshell zSoft.base: prg.util. zS.O. z APPLICATIVI HAL Exec. Components

16 fondamenti di informatica parte 216 System Service Interface permette anche la gestione di reti: zWindowsXP 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). zIl 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. zInternet 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).

17 fondamenti di informatica parte 217 Informazione e Ipertesti: solo cenni zCon 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. zDefinizione 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. zRICORDARE l’ uso dei dizionari !

18 fondamenti di informatica parte 218 e l’ ipermedia ? solo cenni zDall’ 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. zQuando 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.

19 fondamenti di informatica parte 219 W.W.W. ( = Web) : un accenno zE’ software installato su appositi Server (detti Internet Server_Web componenti degli I.S.P.) che facilita sia la comunicazione in Internet sia la gestione di documenti ipermediali (informazioni testuali e immagini, suoni, collegati tra loro) pubblicati in Internet. zI documenti sono scritti spesso in HTML =Hyper Text Markup Language, che permette una descrizione del loro formato (si usano pure XML= eXtensible Markup Language e JAVA, linguaggio Object Oriented come C++). La descrizione e’ interpretata e presentata dai browser (opportuni programmi posti nei vari Client come per es. Netscape) detti Client_Web.

20 fondamenti di informatica parte 220 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

21 fondamenti di informatica parte 221 E questa specifica della URL e’ usata anche nei vari collegamenti ai Siti Internet lavorando col Client_Web disponibile, per es. Netscape. zSu/con Netscape si possono fare esperimenti, prove collegandosi a URL note. Per es. http://home.netscape.com/ zhttp://www.univ.trieste.it/ servizi / z ricerca z didattica z borse …ecc. zUn esempio di file in html è ma.htm che segue

22 fondamenti di informatica parte 222 ma.txt z z MIO z z annamaria z

23 fondamenti di informatica parte 223 Ancora un cenno sui linguaggi di markup (marcatura) HTML fu il primo di questi linguaggi, composti da testo e da tag (etichette), un altro più recente è XML (eXtensible Markup Language). Tra questi 2 linguaggi ci sono analogie (per es. i tag sono scritti nello stesso modo, ma le relative regole sintattiche di XML sono più rigide) e differenze. HTML serve per costruire e visualizzare pagine Web, XML per descrivere e inviare informazioni (documenti) usabili non solo con il Web, ma anche in ambienti applicativi diversi (motori di ricerca, word-processor, basi di dati …)

24 24 File zConcettualmente: file = archivio di dati che varia nel tempo. E’ possibile aggregare i dati (=informazioni) in registrazioni = Record a loro volta anche raggruppabili a blocchi. zAccesso informazioni: sequenziale / diretto zes. libro = successione di pagine zaccesso sequenziale alle info: pagina dopo pagina z “ diretto: occorre l’ indice d’ inform.  n. o pagina zSupporti: dischi (possibili accesso sequen.- diretto) znastri ( bobine) (possibile solo accesso sequenz. ed anche le “matite” USB Universal Serial Bus)

25 fondamenti di informatica parte 225 File & programmi zI 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. zIn generale pero’ parlando di file si intende un archivio di informazioni su disco come per esempio: dati anagrafici di persone o indirizzi o classifiche finanziarie...

26 fondamenti di informatica parte 226 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. zDischi e nastri= Memoria di massa o periferica zEs. Dimensione file: se K=1024=2 10, M=1048576= 2 20 z1 pag. libro  3 Kbyte 1 “ giornale senza foto  50 Kbyte 1 quotidiano  2 Mbyte 1 immagine  1 Mbyte ……...

27 fondamenti di informatica parte 227 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). zOgni 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.

28 fondamenti di informatica parte 228 Disco (Hard, Floppy, C.D.) e Direttori zConcettualmente: 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. zI file su ogni disco sono presentati all’ utente coi loro nomi raggruppati in Direttori/Cartelle organizzati in modo gerarchico con una struttura ad “albero”. zLa 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).

29 fondamenti di informatica parte 229 Denominazioni in DOS e … zNomi 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. z1  n. o caratteri prima  8 z1  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.

30 fondamenti di informatica parte 230 z La struttura gerarchica del disco zappare nella rappresentazione grafica di Windows che usa finestre collegabili tra loro anche gerarchicamente. zIn 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.

31 fondamenti di informatica parte 231 z Con Windows zper aprire un file basta porsi con la freccia del mouse e fare 2 clik su Risorse Computer: compare una finestra con immagini del floppy A: del disco locale C: del video … Si pone la freccia del mouse sul disco C: Con due clik “si apre” il disco e appare una finestra con le cartelle dei direttori e dei file. Basta porsi con la freccia del mouse e fare clik per 2 volte sulla cartella che si vuole aprire. zOgni 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.

32 fondamenti di informatica parte 232 z Struttura logica ad albero z “C:” Clic su C: ed appaiono le z ____|____ 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

33 fondamenti di informatica parte 233 … e poi ? zPer visualizzare e/o cambiare il file pr.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. zIn DOS basta digitare edit e seguire le sue indicazioni; zin Windows basta fare clic col mouse sul file o sull’ icona di un editor e alla sua apertura seguire le sue indicazioni.

34 fondamenti di informatica parte 234 Formattazione di dischetti floppy in DOS zInizialmente il floppy e’ vergine. In DOS col comando FORMAT A: si ottiene di formattare il dischetto inserito nell’ unita’ A: (drive) zLa 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.

35 fondamenti di informatica parte 235 e il disco rigido = hard disk = disco fisso …? zLa 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 !!! zIl tempo richiesto per accedere ad un’ informazione del Disco Rigido e’  30ms (millisecondi); per il floppy 10-20 volte di piu’.

36 36 e i dischi ottici ? i C.D.? i D.V.D. ? zPossono 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.;) zla 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. zI file su ogni C.D. sono presentati all’ utente organizzati ad “albero” come accade per gli altri dischi.

37 fondamenti di informatica parte 237 Creazione di file di tipo testo zUtilizzo 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 tipografiche.

38 fondamenti di informatica parte 238 Costruzione di un programma in C, o in Fortran, o in Pascal zCon l’editor si puo’ creare sul momento qualunque sequenza di caratteri … e quindi anche un programma vero e proprio in un linguaggio di programmazione come il C ?? o il C++? zRisposta 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.

39 fondamenti di informatica parte 239 Fasi di costruzione di ogni prodotto software zPROGETTO CONCETTUALE: qui si devono definire gli obiettivi, con quale algoritmo si vogliono raggiungere, le motivazioni. Ossia COSA, COME, PERCHE’. zPROGETTO LOGICO: la sua bozza con l’ algoritmo risolutivo. zPROGRAMMA ORIGINE (source program) scritto nel linguaggio artificiale scelto per es. in C.

40 fondamenti di informatica parte 240 Quale linguaggio artificiale ? zDi linguaggi artificiali ce ne sono migliaia: la scelta va a quello che appare piu’ vicino al problema da risolvere. zPer 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.

41 fondamenti di informatica parte 241 Tipiche funzioni svolte da un Programma: zLettura dati (input); zElaborazione dei dati (sequenziale, ciclica, condizionale) e costruzione dei risultati; zVisualizzazione risultati (output). z… e senza la visualizzazione ?!? ASSurdita’: i risultati resterebbero ignoti ! zLe tipiche funzioni svolte possono essere realizzate in parti (“moduli”) a se’ stanti.

42 fondamenti di informatica parte 242 Ma i dati ? zLa funzione che li legge deve poterli memorizzare: per questo il programma deve “prenotare” posizioni di C.M. zLo 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. zTali entita’ servono anche per la loro elaborazione e quindi la loro visualizzazione.

43 fondamenti di informatica parte 243 Domanda: zE senza alcuna lettura di dati ha senso un programma? zSi: i dati posono essere generati usando una successione di interi o usando un generatore di numeri pseudocasuali...

44 fondamenti di informatica parte 244 Processo di traduzione zUna 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: zINTERPRETI, COMPILATORI, ASSEMBLATORI, tutti programmi di utilita’ del Software di base.

45 fondamenti di informatica parte 245 Tipi di Traduttori zInterprete: tipico e’ quello della shell del D.O.S. che interpreta e manda in esecuzione i comandi digitati dall’ utente uno alla volta : non produce alcuna traduzione permanente in linguaggio della macchina. zEs. in DOS: Dir A: z Type miofile.txt zDir e Type: interpretati e subito eseguiti

46 fondamenti di informatica parte 246 Software di base: zeditor, interpreti, compilatori, assemblatori, linker... zCompilatore: 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. zAssemblatore: analogo al Compilatore, ma il linguaggio artificiale e’ elementare, con struttura simile al linguaggio della macchina. zLa funzione del linker appare qui di seguito.

47 fondamenti di informatica parte 247 Fasi del processo traduzione- esecuzione zDopo la stesura con l’Editor del SourceProgram, z1) 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); z2) 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). z3) Dopo questo si passa alla fase di esecuzione.

48 fondamenti di informatica parte 248 Ambiente amichevole zI 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++. zSi e’ tentati di scrivere direttamente il Source Program … zma e’ una strategia perdente !

49 fondamenti di informatica parte 249 Strategia corretta zIl RISCHIO e’ di essere tanto coinvolti dalle regole linguistiche (sintattiche e grammaticali) da dimenticare gli obiettivi desiderati. zPRIMA di usare il linguaggio si deve prepararne il PROGETTO. z…. COME ??

50 fondamenti di informatica parte 250 Il progetto ed il suo linguaggio: possibilita’ zIl 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. Questo però è un metodo più vecchio. zSegue esempio.

51 fondamenti di informatica parte 251 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...

52 52 Esempio progettino per visualizzare l’ ASCII code za) Si vuole ottenere il valore numerico Num (ASCII code) di un carattere CAR della tastiera diverso da 0; se 0 Stop. zb) Legenda: I=Inizio; S=Stop; T=True; F=False. CAR=0? S I CAR F T Num=(int)CAR Num

53 fondamenti di informatica parte 253 Dal Progetto al Programma zCome scrivere questo (o qualunque) programma in C o C++ ? (Il Source Program scritto in C++ è in program2 (project7), ma prima di esaminarlo seguono alcune idee.)

54 fondamenti di informatica parte 254 3 Motti da memorizzare 1.MUTISMO & RASSEGNEZIONE 2.AVIARIA  VOLATILE  RAM  PERICOLO 3.BASSE ATTESE = (LOW EXPECTATION)  DIRITTO ALLA FELICITA’

55 fondamenti di informatica parte 255 Segue dal Progetto al Programma zOgni 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++). z z{ z z } zSegue un esempio project7 in /carmin/Inf2005/programm2).

56 56 z/* INIZIO DOCUMENTAZIONE: zIl 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. zAutore: data:....ambiente: LAB.ING. S.O.= … zVariabili (STRUTTURE DATI) usate nel programma: zcar char; per leggere i caratteri (INPUT) znum integer; per memorizzarne il valore numerico (OUTPUT) zProcedure o MODULI componenti: MAIN, LEGGI, ELABORA, SCRIVI, ATTENDI z FINE DOCUMENTAZIONE */

57 fondamenti di informatica parte 257 z/* INIZIO parte dichiarativa */ z#include "stdio.h" /* Libreria usata: Standard Input-Output C */ z#include /* 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();

58 fondamenti di informatica parte 258 z/* INIZIO Parte Esecutiva */ z main() { /* Inizio Modulo principale */ z leggi(); z if ( car != '0') /* fai il seguente blocco di istruzioni */ z{/* inizio del blocco if */ elabora(); scrivi(); attendi();} /* fine del blocco if */ zelse /* altrimenti segnala con il blocco seguente */ z{ printf( "ATTENZIONE: car = %c ", car); attendi(); z }; /* fine blocco di segnalazione */ zreturn (0); z } /* Fine Modulo principale */ z

59 fondamenti di informatica parte 259 Il main zTra 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++. zCome 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() zIl corpo del main deve contenere l’ attivazione di tutte quelle funzioni che portano a raggiungere gli obiettivi posti nel progetto: i risultati desiderati. zIl corpo di ogni funzione contiene il proprio ambiente descritto in fond3.

60 fondamenti di informatica parte 260 Corpo delle Funzioni zPiu’ in dettaglio: il corpo di ogni funzione C e C++ ha frasi dichiarative ed esecutive, queste ultime col significato di istruzioni, comandi. Se dichiarazioni e comandi mancano il corpo e’ vuoto. zIl minimo programma C e’: zmain() z{ z}

61 fondamenti di informatica parte 261 In C++ zil minimo programma e’: zmain() z{ z return (0); z} zIl 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

62 fondamenti di informatica parte 262 C e C++ zCome gia’ detto in questo corso sara’ usato il C++ che e’ compatibile con il C “in basso” (aspetti elementari) e per questo all’ inizio si useranno anche frasi del C. I concetti fondamentali della Programmazione ad Oggetti che caratterizzano il C++ (ed altri linguaggi come il linguaggio JAVA) possono essere introdotti successivamente. Il motivo di cio’ sta nel fatto che l’ Oggetto puo’ essere considerato come una generalizzazione di strutture e sottoprogrammi.

63 fondamenti di informatica parte 263 z Però questa non è l’ unica zimpostazione. Per es. Cay Hortsmann in “Fondamenti di C++ “,McGraw Hill (Biblio. 2) comincia a parlare di oggetti molto presto (cap. 3). La sua idea è che la progettazione di oggetti non è facile, ma è facile usare “oggetti già progettati da altri”e quindi si può introdurli subito. zE’ un’ opinione che non condivido perchè mi sembra che produca un accumulo di novità che possa rallentare l’ apprendimento della programmazione.

64 64 Commenti (vedere in program1 project1.cpp) zPer documentare un programma sono necessari commenti che o sono racchiusi tra /* */ o preceduti da // (solo col compilatore C++) zEs. main() z/*questo C_program scritto da …in data … 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? Usando l’ ambiente di sviluppo del C++… +oltre

65 fondamenti di informatica parte 265 Corpo zPer vedere questo ed altri programmi elementari collegarsi a /carmin/Inf2005/programm1 ove si trovano i project1-5 che si possono leggere ed analizzare subito, con le indicazioni date in ciascuno di essi. 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 project7 in /carmin/Inf2005/programm2

66 fondamenti di informatica parte 266 Visualizzazioni zAll’ interno dei programmi project1-5 e’ usata anche la frase di visualizzazione “printf” appartenente alla libreria di Input/Output del C come in project2 di seguito mostrato. zLa frase printf permette l’ attivazione della funzione C per la visualizzazione resa disponibile includendo il file zE’ un file chiamato header (e percio’ l’ estensione h) che contiene i prototipi delle funzioni di libreria di Input/Output tipiche del C….

67 fondamenti di informatica parte 267 z #pragma hdrstop //terminates the list of header files ect #include // includes specific header file #pragma argsused //affects only the next function (main): it disables the warning message: "Parameter name is never used in function func-name #include // 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); }

68 68 E in C++ ? zIn C++ lo stesso risultato (vedere Project3.cpp) si ottiene con l’uso delle istruzioni di I/O del C++ ossia per la visualizzazione ( qui di una stringa di caratteri ) zcout << “Buonasera” ; ze includendo l’ header file della libreria di I/O tipica di C++ zNOTA: 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.

69 fondamenti di informatica parte 269 Precompilatore zLe 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’ ?

70 fondamenti di informatica parte 270 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: zdefinizione di costanti: #define tre 3 z “ “ espressioni #define paga 9*365 zinclusione di testo sorgente che si trova nel file chiamato mio.h (h sta per header): #include

71 fondamenti di informatica parte 271 Velocita’ zProprio 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. zSi tratta di tanti tipi di funzioni: matematiche, grafiche, di I/O … Ogni libreria e’ formata da coppie di file di cui uno (nel direttorio Lib) contiene le funzioni compilate e l’ altro e’ un file header contenente le loro dichiarazioni e tutte le definizioni che il compilatore deve conoscere per rendere usabile la libreria stessa.

72 fondamenti di informatica parte 272 Compiti del programmatore e del precompilatore zIl 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. zIl compilatore puo’ cosi’ riconoscere le funzioni usate all’ interno del source program (per es. printf) perche’ vi trova il loro prototipo incluso: il collegamento al loro codice in binario (che sta in …\Lib) è fatto dal Linker. (Questo tipo di meccanismo si puo’ anche usare per concatenare librerie scritte eventualmente dall’ utente e poste in altre coppie di file.)

73 fondamenti di informatica parte 273 Per altre direttive come #pragma, tipico del CBuilder4, zguardare l’help relativo che dice: z#pragma hdrstop //terminates the list of header files of your project z#include // 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

74 fondamenti di informatica parte 274 Flussi (stream) zIl 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. zPer usare il sistema di I/O del C++ occorre includere il file dove sono dichiarate le funzioni e gli operatori usabili per gestire operazioni di I/O e flussi di informazioni.

75 fondamenti di informatica parte 275 Operatori (funzioni) > zL’ operatore << (freccia a sin.) invia le informazioni indicate alla sua destra sul flusso standard di output (cout posto alla sua sinistra) dopo averle convertite dal binario alla forma testuale; volendo inserire anche il carattere di fine riga si puo’ porlo con un ulteriore << endl; (end of line) zL’ operatore >> (freccia a destra) estrae dal flusso di entrata cin (posto alla sua sinistra) le informazioni digitate sulla tastiera, le converte dalla forma testuale in binario e le assegna alle variabili indicate alla sua destra.

76 fondamenti di informatica parte 276 cin, cout, cerr. zNel file 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 zOgni 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).

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

78 fondamenti di informatica parte 278 Esempi d’ uso gia’ intravisti nei programmi... zCosi’ 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 ). zPer 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;

79 fondamenti di informatica parte 279 Esempi e considerazioni zConfrontare le frasi di input/output in C ed in C++ nei programmi in /carmin/Inf2005/programm1 di nome project1.cpp - project5.cpp zSi notera’ che il cout > rispetto alla scanf (diapo seg.)

80 fondamenti di informatica parte 280 printf e scanf (cenni) zAnaloga alla printf e’ la scanf che si usa in C per leggere valori da assegnare alle variabili; zentrambe richiedono specifiche di controllo del formato in cui si desiderano i valori da visualizzare o da leggere; zle 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. zInoltre alla scanf le variabili devono essere passate per indirizzo (cfr. parte 3) per es. premettendo al nome della var. da leggere l’ operatore &

81 fondamenti di informatica parte 281 #include oppure: z#include “nomefile.h” ? zLa prima, se nomefile.h sta nel direttorio del sistema C o C++; la seconda, se nomefile.h sta altrove. zL’ estensione.h indica che si tratta di un file “header” che puo’ contenere i prototipi delle funzioni della libreria usata. zEsempi: stdio.h e iostream.h zCominciamo allora a vedere un programma ed a compilarlo per poi eseguirlo. zSegue il programma project2 e quindi come compilarlo.

82 fondamenti di informatica parte 282 z #pragma hdrstop //terminates the list of header files… #include // includes specific header file #pragma argsused //affects only the next function (main): it disables the warning message: "Parameter name is never used in function func-name #include // 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…

83 fondamenti di informatica parte 283 … user_rname e password che abilitano zla connessione al Server e sono richiesti all’ avvio del computer locale: la loro, mancanza inibisce ogni accesso. zColoro che ne sono sprovvisti useranno una password comune ed un user comune comunicati al momento: zogni studente (anche se ha la psw!) creerà una cartella di lavoro in MyDocument con il proprio cognome (anche se lo user è lo stesso per gli sprovvisti di psw, le cartelle di lavoro sono diverse!!!) e costruirà li' dentro il proprio project e tutti i file di lavoro (per es. copierà lì il mio programma project2); zalla fine dell’ esercitazione gli studenti faranno logout, tutti tranne UNO: da costui io andrò a cambiare la password per la successiva esercitazione.

84 84 Con username e password zoccorre attivare l’ ambiente BB4 (Borland Builder 4) ossia clik su: Start (Avvio), Programs, Borland C++ Builder4, C++ Builder4 z(oppure clic su Mycomputer, LocalDiskC:, Program Files, Borland, CBuilder4, Bin; bcb.exe; ( )) zSi apre l’ icona di BB4 e parte BB4 aprendo l’ ambiente di sviluppo del C++Borland con un’ applicazione Visual (grafica per es. che per ora non sarà usata). zInvece 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 C++Borland.

85 fondamenti di informatica parte 285 L’ ambiente di sviluppo zha le seguenti voci: zFile per aprire/chiudere un file contenente un programma origine gia’ registrato (.cpp); zEdit per fare le operaz. di editing sul file aperto; zProject 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; zRun per fare eseguire il prg. eseguibile.

86 fondamenti di informatica parte 286 L’ applicazione Visual zper 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; zal 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...

87 87 …accedere ai miei programmi così: zclic sul menù File, clic su open: si apre una finestra con Look in Documents e una freccetta finale, clic sulla freccetta, clic su MyNetwork Place. zSe lo studente ha la psw c’é la “mappatura” ossia si apre una finestra con arc_stud: 2 clic su carmin, inf2005, program1, project2 … zSenza psw non c’è la “mappatura”  MyNetwork Place non c’è, ma c’è Entire Network. In basso accanto a FileName digitare: ftp:\\serving4\arc_stud\ e poi 2 clic su carmin, inf2005, program1, project2 … zSALVARE project2 nella cartella di lavoro creata (in MyDocument), o sul disco condiviso del Server in X: per gli studenti con psw. Farlo compilare (con clic su CompileUnit sotto Project) ed eseguire con Run.

88 88 username & password personali zabilitano 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 ; zPer registrare può usare MyDocument (o H: e X: ???) partizioni del disco fisso del Server per ogni studente, dove puo’ registrare i suoi programmi in alternativa al floppy personale o a MYDocument che è locale, ma viene conservato. zQUINDI costruito il proprio programma (prima di compilare!) salvarlo con clic su File e su Save Project as nella cartella- lavoro appositamente costruita di X: o di MyDocument, altrimenti C++ cerca di porre i file intermedi (per es. l’ obj) in arc_stud o prog_stud che sono protetti e si ha ERRor. zCon 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.

89 fondamenti di informatica parte 289 Fare le sguenti modifiche ai projects di program1 zVisualizzare una sequenza di caratteri (“vai a pescare?”) con cout includendo il file iostream.h; zUsare #define per introdurre la spesa annuale sapendo che al giorno spendo 55,43€; zleggere 5 caratteri e visualizzare tutte le loro sequenze possibili ….

90 fondamenti di informatica parte 290 L’ esempio del progettino: project7.cpp zNell’ ambiente di sviluppo di BB4, porsi sotto File e con un clic su Open aprire il programma zE:/Carmin/Inf2005/programm2/project7.cpp z Esaminarlo con l’editor, farlo compilare usando Project e girare (Run): questo comando (da solo) provvedera’ prioritariamente (se non e’ stato gia’ fatto) al “linkaggio” del programma oggetto con le librerie usate (per es. di I/O ), producendo il programma eseguibile di nome project7.bpr (bpr  pronto per l’ esecuzione) zAndando 35 diapo indietro lo ritrovate zPer eseguire +volte project7 si puo’ usare +volte Run...

91 fondamenti di informatica parte 291 Iterazione zQuesta ripetizione si e’ resa automatica con un programma che la realizza, project71. Ma quale sara’ il progetto relativo ? zMandando 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; zoccorre quindi ripetere la lettura di CAR, la sua conversione in Num e la visualizzazione di entrambi fino a quando si introduce lo zero … ossia...

92 fondamenti di informatica parte 292 b) Legenda: I=Inizio; S=Stop; T=True; F=False. z CAR=0? CAR F Num=(int)CAR Num Ripeti=TRUE Ripeti Ripeti = FALSE I S F T T

93 fondamenti di informatica parte 293 Assegnazione semplice zLe frasi di Input servono per assegnare alle variabili i valori immessi per es. da tastiera. zIl costrutto linguistico base usato allo scopo di assegnare a variabili valori calcolati, e’ la frase tipica di assegnazione, per esempio: z = b ; zSignificato: 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 zNOTA: b puo’ essere… tutto da una costante ad un’ espressione complicata…. cfr. avanti !

94 fondamenti di informatica parte 294 Assegnazione multipla zOltre l’ assegnazione semplice c’ e’ in C e C++ quella multipla che (con variabili intere) e’ del tipo seguente: za = r = b = pippo = lei111 = 3; ze viene cosi’ interpretata ed eseguita: z(a = (r =(b=(pippo=(lei111=3))))) zossia 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.

95 fondamenti di informatica parte 295 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. zCon 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 tutto ….


Scaricare ppt "Fondamenti di informatica parte 21 appunti per la laurea in Ingegneria Civile, Edile, Ambientale a.a. 2005-2006 di anna maria carminelli gregori"

Presentazioni simili


Annunci Google