1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa (for, while…), salto (go to) –diagramma di flusso –variabile –array, record (struct)
2 Sommario lez 1 Concetti principali, domande ed esercizi Domande –quali sono i tre sottosistemi che compongono un calcolatore? –fornire un esempio di problema per cui è difficile fornire un algoritmo risolutivo –come si specializza un computer per risolvere un nuovo problema, es. testare se x è il MCD di y e z?
3 Struttura di un calcolatore L’architettura di Von Neumann Memorie (RAM,dischi, etc) Mantiene Dati e Programmi Processore (CPU) E’ un esecutore capace di interpretare i singoli passi richiesti dai programmi (istruzioni elementari) Sottosistema di Interfaccia Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, micr., stampante, schermo, )
4 Struttura di un calcolatore (2) Memorie Processore Sottosistema di Interfaccia La comunicazione fra i tre sottosistemi viene effettuata attraverso un dispositivo fisico detto bus di interconnessione. Attraverso il bus la CPU - legge\scrive dati e programmi in memoria - trasferisce da\a la memoria al dispositivo di interfaccia - recupera la prossima istruzione da eseguire bus
5 Struttura di un calcolatore (3) Memorie Processore Sottosistema di Interfaccia Il sottosistema di interfaccia cura anche la comunicazione fra due calcolatori diversi (es. via telefono\modem, via ethernet\ con opportune schede di connessione) bus
6 Struttura di un calcolatore (4) Hw e sw Memorie Mantiene Dati e Programmi Processore Sottosistema di Interfaccia Software Hardware bus
7 Sommario lez 1 Concetti principali, domande ed esercizi Domande (2) –cosa calcola il seguente DF?
8 I < N ? Inizio Fine Si No Stampa ‘risultato’ DF per ???????? Leggi N I = 1, risultato = 1 I = I + 1 Supponiamo N intero positivo risultato = risultato * I
9 Sommario lez 1 Concetti principali, domande ed esercizi Esercizi proposti (dalla scorsa volta) –trovare la somma dei primi K numeri (K letto dall’esterno) –trovare la media di una sequenza di numeri positivi (la sequenza viene letta dall’esterno e si interrompe al primo numero negativo letto) –leggere una data (un record che indica giorno, mese ed anno) e stampare il numero di giorni passati dall’inizio dell’anno
10 I < K ? Inizio Fine Si No Stampa ‘risultato’ DF per la somma dei primi K numeri Leggi K I = 0, risultato = 0 I = I + 1 Supponiamo K intero positivo risultato = risultato + I
11 Inizio Fine Stampa ‘risultato’ DF per la somma dei primi K numeri (seconda versione) Leggi K Supponiamo K intero positivo risultato = K * (K+1)/2
12 I >= 0 ? Inizio Fine Si No Stampa ‘risultato’ DF per la media di una sequenza di interi positivi Leggi I risultato = 0 Supponiamo di usare l’algoritmo naive risultato = risultato + I risultato = risultato /2
13 I < m ? Inizio Fine Si No Stampa ‘risultato’ DF per il problema della data Leggi m, g, a risultato = g, I = 0 Supponiamo di avere una tabella giorni[12] [3000] che fornisce il numero di giorni per ogni mese dall’anno 0 al 2999 es. giorni [1] [2004] fornisce i giorni di Febbraio 2003 risultato = risultato + giorni[I][a]