1 / 32

Parte 2

Parte 2. Elementi di Informatica di base Dott.ssa Elisa Tiezzi. Definizione intuitiva di algoritmo. Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo le quali e’ possibile risolvere ogni istanza di un problema di un dato tipo. Proprietà degli algoritmi. FINITI

clara
Download Presentation

Parte 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parte 2 Elementi di Informatica di base Dott.ssa Elisa Tiezzi Elementi di informatica dibase

  2. Definizione intuitiva di algoritmo • Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo le quali e’ possibile risolvere ogni istanza di un problema di un dato tipo Elementi di informatica dibase

  3. Proprietà degli algoritmi • FINITI • NON AMBIGUI • GENERALI Elementi di informatica dibase

  4. Soluzione di ax2+bx+c=0 1. inizio dell’algoritmo; 2. acquisire dall’esterno i valori dei coefficienti a, b e c; 3. calcolare il valore b2-4ac; 4. se , allora non esistono radici reali: eseguire 8; 5. se , allora x1=x2=-b/2a: eseguire 7; 6. se , allora x1=(-b+)/2ae x2=(-b-)/2a; 7. comunicare all’esterno i valori di x1 ed x2; 8. fine dell’algoritmo. Elementi di informatica dibase

  5. Descrizione degli algoritmi Diagramma a blocchi (flow chart): rappresentazione grafica di un algoritmo che indica il flusso delle trasformazioni descritte dall’algoritmo che devono essere eseguite a partire dai dati iniziali per ottenere i risultati finali. Elementi di informatica dibase

  6. input azione begin falso vero C output end Blocchi elementari Elementi di informatica dibase

  7. begin a, b, c b2-4ac V F  V F  x1=-b/2a x1=(-b+)/2a x2=-b/2a x2=(-b-)/2a x1, x2 radici c.c. end Esempio su ax2+bx+c=0 Elementi di informatica dibase

  8. Il gioco dei quindici Quindici oggetti, ad esempio fiammiferi, sono su una tavola. Il primo giocatore ne raccoglie 1, 2 o 3. Il secondo giocatore ne raccoglie a sua volta 1, 2 o 3. Quindi è ancora il primo giocatore a raccogliere 1, 2 o 3 fiammiferi. I giocatori alternano le loro mosse finchè sul tavolo non esistono più fiammiferi. Il giocatore che è costretto a raccogliere l’ultimo fiammifero è il perdente. Descrivere una strategia vincente per il primo giocatore Elementi di informatica dibase

  9. Problema delle dodici monete Tra 12 monete di identico aspetto potrebbe nascondersene una falsa e pertanto di peso diverso. Disponendo di una bilancia a 2 piatti per confrontare gruppi di monete, si vuole individuare la moneta falsa e stabilire se essa pesi più o meno delle altre, mediante non più di 3 pesate. Elementi di informatica dibase

  10. Soluzione del gioco dei quindici Siano A il primo giocatore e B il secondo 1. Prima mossa: A raccoglie 2 fiammiferi 2. Mosse successive: se B raccoglie k fiammiferi (k<=3), allora A raccoglie 4-k fiammiferi Elementi di informatica dibase

  11. 1, 2, 3, 4 : 5, 6, 7, 8 1L 2L 3L 4L 5P 6P 7P 8P 1P 2P 3P 4P 5L 6L 7L 8L 9L 10L 11L 12L 9P 10P 11P 12P 0 1, 2, 5 : 3, 4, 6 1, 2, 5 : 3, 4, 6 1L 2L 6P 5P 3L 4L 5L 3P 4P 1P 2P 6L 7P 8P 7L 8L 1:2 7:8 3:4 3:4 7:8 1:2 9, 10 : 11, 1 1L 6P 2L 8P imp 7P 3L 5P 4L 4P 5L 3P 7L imp 8L 2P 6L 1P 9L 10L 11P 9P 10P 11l 12L 12P 0 9:10 12:1 9:10 9L 11P 10L 12L 0 12P 10P 11L 9P Soluzione del gioco delle monete Elementi di informatica dibase

  12. Breve storia dei calcolatori • Primi strumenti di calcolo meccanici • Abaco • 1600 • Pascal (somma e sottrazione) • Leibniz (moltiplicazione e divisione) • 1800 • Babbage (quadrato e stampa) • Babbage (macchina analitica) • Ada Augusta Lovelace (prima programmatrice) • Schede perforate utilizzate nel 1890 (inizio di IBM) Elementi di informatica dibase

  13. 1944 • Mark I (primo calcolatore elettromeccanico) • 1946 • ENIAC • 1949 • EDSAC (macchina di tipo Von Neumann) • Anni successivi • Stessa architettura ma tecnologia più avanzata • 1960 • Internet (fine anni sessanta per esigenze militari, si chiamava Arpanet) • 1989 • www (word wide web: enorme enciclopedia) Elementi di informatica dibase

  14. Hardware Pezzi fisici tangibili che supportano l’elaborazione (chip di silicio, fili elettrici, tastiera, dischi, stampanti….) Software I componenti hardware sono inutili se non ricevono precise istruzioni. Un programma è una serie di istruzioni che l’hardware esegue in sequenza. Elementi di informatica dibase

  15. Componenti hardware principali • Dispositivi di input • Ad es.: mouse, tastiera • Dispositivi di output • Ad es.: monitor, stampante • Insieme in uno stesso contenitore • Processore (CPU) • Central Processing Unit • Interpreta e esegue le istruzioni • Memoria Organizzazione hardware standard Memoria Dispositivi di input Processore (CPU) Dispositivi di output Elementi di informatica dibase

  16. Due Tipi di Memoria • Principale • area di lavoro • mantiene temporaneamente programmi e dati (mentre il programma è in esecuzione) • Ausiliaria • permanente • salva programmi e risultati • Esempi: floppy & hard disk, CD, nastri Elementi di informatica dibase

  17. Organizzazione della Memoria Principale • Bit = una cifra binaria • valori: 0 o 1 • Byte = 8 bit • La memoria principale è una lista di locazioni numerate ciascuna di un byte • Il numero di byte utilizzato per memorizzare un dato varia con il tipo di dato Elementi di informatica dibase

  18. Radice Directory File Directory File Directory Directory File File Directory Directory File File Organizzazione della Memoria Ausiliaria Elementi di informatica dibase

  19. Programma Input Output Programma • Insieme di istruzioni che il calcolatore deve eseguire Calcolatore Elementi di informatica dibase

  20. Tipi di Programmi • Sistema Operativo • Programma supervisore • DOS, Windows, MacOS, UNIX, Linux • Applicazioni esistenti • word-processor/editor • web browser • compilatori o assembler • Applicazioni create dall’utente Elementi di informatica dibase

  21. Informazione Esistono due formati per memorizzare l’informazione: ANALOGICO DIGITALE L’informazione analogica è continua La tecnologia digitale spezza e cresce proporzionalmente alla l’informazione in tanti pezzi sorgente di informazione che rappresenta come numeri Es: termometro di mercurio, segnali Es: compact disc elettrici Elementi di informatica dibase

  22. I computer moderni sono digitali: Ogni tipo di informazione è spezzato in blocchi. Ogni blocco è rappresentato da un numero e l’informazione è memorizzata sotto forma di sequenza di numeri. Il computer digitale memorizza l’informazione sotto forma di numeri binari (base 2). La singola cifra binaria si chiama bit (binary digit). La base del sistema indica quante cifre si hanno a disposizione e il valore posizionale di ogni cifra in un numero. Elementi di informatica dibase

  23. Sistemi posizionali Il sistema di numerazione decimale è basato sull’alfabeto decimale {0,1,2,3,4,5,6,7,8,9} ed ogni numero è rappresentato come sequenza di simboli di tale alfabeto. Ad ogni simbolo è associato un peso a seconda della posizione. Es: 2863=2x103 +8x102+6x101+3x100 Elementi di informatica dibase

  24. In generale i sistemi numerici posizionali in base b2 rappresentano ogni numero con m cifre in base b: N=cm-1…….c0 Dove i ci denotano elementi di un insieme di b simboli che corrispondono ai primi b numeri naturali 0…..b-1. Vale N=∑cibi Es:11002=1x23+1x22+0x21+0x20 Elementi di informatica dibase

  25. Come comunicare • Linguaggio macchina: • sequenze di 0 ed 1 • rigoroso • essenziale • Linguaggio assembler: • simbolico • semplice traduzione aggiuntiva • Linguaggio naturale: • linguaggio preferito dall’essere umano • ambiguo, ridondante, non preciso • Linguaggio di programmazione ad alto livello Elementi di informatica dibase

  26. Storia Moderna • PASCAL (1970) • Programming in Logic (1971) • C (1974) • ADA(1980) Elementi di informatica dibase

  27. Storia Contemporanea • C++ (1985) • Java (1994) Elementi di informatica dibase

  28. Tipi di programmazione • Funzionale • Logica • Procedurale • Orientata agli oggetti Elementi di informatica dibase

  29. macchina traduttore programma Codice in l. macchina macchina Codice in l. macchina dati risultati Traduttori Elementi di informatica dibase

  30. Compilatori ed interpreti • Compilatore • programma che traduce un programma in linguaggio ad alto livello in un programma in linguaggio più semplice che il calcolatore può eseguire (più o meno) direttamente. • Interprete • programma che traduce ed esegue una dopo l’altra le istruzioni che compongono il programma sorgente Elementi di informatica dibase

  31. L’approccio di Java • Sia compilato che interpretato • Codice intermedio: “Byte Code” • codice a basso livello portabile • simile al codice assembler ma indipendente dall’hardware • invisibile ai programmatori Java • L’interprete traduce dal byte code in un programma nel linguaggio macchina della macchina specifica Elementi di informatica dibase

  32. Programmi precedentemente compilati Dati in input Compilatore Java Programma in Byte-Code Interprete Esecuzione Output del Programma Java L’ambiente Java Programma Java Elementi di informatica dibase

More Related