Fondamenti di programmazione!! Parte 2!

Documenti analoghi
Fondamenti di Programmazione -Presentazione del Corso-

Concetti Introduttivi

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

INFORMATICA. L informatica comprende:

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Sistemi di numerazione

Introduzione alla programmazione

Il calcolatore. Architettura di un calcolatore (Hardware)

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Introduzione al funzionamento di un calcolatore elettronico

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

CONCETTI FONDAMENTALI

Sistemi di Elaborazione delle Informazioni

Concetti di base dell ICT

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Memoria Secondaria o di Massa

Introduzione al software. Maurizio Gabbrielli Università di Bologna

Architettura dei calcolatori e Software di sistema

Cos è la programmazione?

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Teoria dell Informazione

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Sviluppo di programmi

Lezione2: Circuiti Logici

Linguaggi di programmazione

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

Introduzione ai Calcolatori Elettronici

Fondamenti di Programmazione -Presentazione del Corso-

Come funzionano i computer

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Il computer P R O F. L O R E N Z O P A R I S I

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Fondamenti di Informatica T. Il Software

Linguaggi di programmazione

Linguaggi di Programmazione

ALGORITMI: PROPRIETÀ FONDAMENTALI

Linguaggi, Traduttori e le Basi della Programmazione

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Francia dalla contrazione delle parole INFORmazione e automatica. Elaborazione e trattamento automatico delle informazioni INFORMATICA

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Piccoli Ingegneri Informatici

Introduzione alla programmazione. Walter Didimo

Architettura di un elaboratore. Il modello di von Neumann

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

LINGUAGGI DI ALTO LIVELLO

Fondamenti: Informatica, Computer, Hardware e Software

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Come ragiona il computer. Problemi e algoritmi

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Architettura di un calcolatore

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Gocce di Java (seconda edizione) Glossario

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Organizzazione strutturata

Il computer P R O F. L O R E N Z O P A R I S I

Il linguaggio di programmazione Python

I Linguaggi di Programmazione

Piccoli Ingegneri Informatici

L elaboratore. Fondamenti di Informatica S.Badaloni Ing. Aerospaziale A.A. 2003/04

Architettura degli Elaboratori

L informatica comprende:

RETI E SISTEMI INFORMATIVI

Problemi, algoritmi, calcolatore

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Linguaggi di Programmazione

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE PRIMA

La codifica digitale

Programmazione strutturata

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Rappresentazione con i diagrammi di flusso (Flow - chart)

Algoritmi e soluzione di problemi

Architettura di Von Neumann

Aritmetica dei Calcolatori Elettronici

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

I Sistemi Informativi

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Il Software programmabili programma algoritmo

Sistema Operativo (Software di base)

Personal Computer: introduzione

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Introduzione alla Programmazione. Giselda De Vita

Macchine Astratte. Luca Abeni. February 22, 2017

Componenti e connessioni. Capitolo 3

Sistemi di Elaborazione delle Informazioni 6 CFU. Il software di sistema

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

Sorgenti di errore. Laboratorio di Informatica 1

Dall algoritmo al programma

Dipartimento di Giurisprudenza Prof. Michele Perilli Conoscenze Informatiche

Transcript:

Fondamenti di programmazione!! Parte 2! 1!

Definizione intuitiva di algoritmo! n 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! 2!

Proprietà degli algoritmi! n FINITI! n NON AMBIGUI! n GENERALI! 3!

Soluzione di ax 2 +bx+c=0 1. inizio dell algoritmo; 2. acquisire dall esterno i valori dei coefficienti a, b e c; 3. calcolare il valore Δ=b 2-4ac; 4. se Δ<0, allora non esistono radici reali: eseguire 8; 5. se Δ=0, allora x 1 =x 2 =-b/2a: eseguire 7; 6. se Δ>0, allora x 1 =(-b+ Δ)/2a e x 2 =(-b- Δ)/2a; 7. comunicare all esterno i valori di x 1 ed x 2 ; 8. fine dell algoritmo. 4!

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. 5!

Blocchi elementari begin input azione end output falso C vero 6!

Esempio su ax 2 +bx+c=0 begin a, b, c Δ=b 2-4ac V Δ<0 F x 1 =-b/2a V Δ=0 F x 1 =(-b+ Δ)/2a x 2 =-b/2a x 2 =(-b- Δ)/2a radici c.c. x 1, x 2 end 7!

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 8!

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. 9!

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 10!

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

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) 12!

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) 13!

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. 14!

Componenti hardware principali Dispositivi di input Organizzazione hardware standard Memoria Processore (CPU) Dispositivi di output 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 15!

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 16!

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 Indirizzo Dato 3021 1111 0000 3022 1100 1100 Dato 1: 2 byte 3023 1010 1010 Dato 2: 1 byte 3024 1100 1110 3025 0011 0001 Dato 3: 3 byte 3026 1110 0001 3027 0110 0011 3028 1010 0010 Dato 4: 2 byte 3029 Etc. 17!

Organizzazione della Memoria Ausiliaria Radice File Directory Directory File Directory Directory Directory File File File Directory File 18!

Programma Insieme di istruzioni che il calcolatore deve eseguire Programma Input Calcolatore Output 19!

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 20!

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

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. 22!

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=2x10 3 +8x10 2 +6x10 1 +3x10 0 23!

In generale i sistemi numerici posizionali in base b 2 rappresentano ogni numero con m cifre in base b: N=c m-1.c 0 Dove i c i denotano elementi di un insieme di b simboli che corrispondono ai primi b numeri naturali 0..b-1. Vale N= c i b i Es:1100 2 =1x2 3 +1x2 2 +0x2 1 +0x2 0 24!

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 25!

Storia Moderna PASCAL (1970) Programming in Logic (1971) C (1974) ADA(1980) 26!

Storia Contemporanea C++ (1985) Java (1994) 27!

Tipi di programmazione Funzionale Logica Procedurale Orientata agli oggetti 28!

Traduttori macchina traduttore programma Codice in l. macchina macchina dati Codice in l. macchina risultati 29!

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 30!

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 31!

L ambiente Java Programma Java Programmi precedentemente compilati Dati in input Compilatore Java Programma in Byte-Code Interprete Esecuzione Output del Programma Java 32!