Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica...

15
Informatica Prof. Francesco Lo Presti Prof. Francesco Lo Presti [email protected] [email protected] Calendario Calendario delle delle lezioni lezioni 11/11 16:00 11/11 16:00-18:00 18:00 Aula Aula D15 D15 18/11 16:00 18/11 16:00-18:00 18:00 Aula Aula D15 D15 25/11 16:00 25/11 16:00-18:00 18:00 Aula Aula D15 D15 2/12 16:00 2/12 16:00-18:00 18:00 Aula Aula D15 D15 9/12 16:00 /12 16:00-18:00 18:00 Aula Aula D15 D15 16/12 16:00 16/12 16:00-18:00 18:00 Aula Aula D15 D15 13/1 16:00 13/1 16:00-18:00 18:00 Aula Aula D15 D15 20/1 16:00 20/1 16:00-18:00 18:00 Aula Aula D15 D15 Programma Programma (indicativo indicativo) Introduzione Introduzione al al corso corso Codifica Codifica dell’Informazione dell’Informazione Architetture Architetture dei dei Calcolatori Calcolatori Elaborazione Elaborazione dell’Informazione dell’Informazione Reti Reti di di Calcolatori Calcolatori Materiale Materiale didattico didattico Testo Testo di di riferimento riferimento Introduzione Introduzione ai ai sistemi sistemi informatici informatici 4/ 4/ed ed – D. D. Sciuto Sciuto, G. , G. Buonanno Buonanno, L. Mari , L. Mari - McGraw McGraw-Hill Hill Materiale Materiale sul sul sito sito del del corso corso http://www.ce.uniroma2.it/... http://www.ce.uniroma2.it/... http://www.ce.uniroma2.it/... http://www.ce.uniroma2.it/... Le slides Le slides delle delle lezioni lezioni pubblicate pubblicate sul sul sito sito possono possono essere essere utilizzate utilizzate come come integrazione integrazione ma non ma non sono sono sufficienti sufficienti per per prepararsi prepararsi per per l’esame l’esame (BISOGNA STUDIARE SUL (BISOGNA STUDIARE SUL LIBRO!) LIBRO!)

Transcript of Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica...

Page 1: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Informatica

Prof. Francesco Lo Presti Prof. Francesco Lo Presti

[email protected]@info.uniroma2.it

CalendarioCalendario delledelle lezionilezioni

�� 11/11 16:0011/11 16:00--18:00 18:00 AulaAula D15D15

�� 18/11 16:0018/11 16:00--18:00 18:00 AulaAula D15D15

�� 25/11 16:0025/11 16:00--18:00 18:00 AulaAula D15D15

�� 2/12 16:002/12 16:00--18:00 18:00 AulaAula D15D15�� 2/12 16:002/12 16:00--18:00 18:00 AulaAula D15D15

�� 99/12 16:00/12 16:00--18:00 18:00 AulaAula D15D15

�� 16/12 16:0016/12 16:00--18:00 18:00 AulaAula D15D15

�� 13/1 16:0013/1 16:00--18:00 18:00 AulaAula D15D15

�� 20/1 16:0020/1 16:00--18:00 18:00 AulaAula D15D15

ProgrammaProgramma ((indicativoindicativo))

�� IntroduzioneIntroduzione al al corsocorso

�� CodificaCodifica dell’Informazionedell’Informazione

��ArchitettureArchitetture deidei CalcolatoriCalcolatori

�� ElaborazioneElaborazione dell’Informazionedell’Informazione

RetiReti di di CalcolatoriCalcolatori�� RetiReti di di CalcolatoriCalcolatori

MaterialeMateriale didatticodidattico

�� TestoTesto di di riferimentoriferimento❍❍ IntroduzioneIntroduzione aiai sistemisistemi informaticiinformatici 4/4/eded –– D. D. SciutoSciuto, G. , G.

BuonannoBuonanno, L. Mari , L. Mari -- McGrawMcGraw--Hill Hill

�� MaterialeMateriale sulsul sitosito del del corsocorso❍❍ http://www.ce.uniroma2.it/...http://www.ce.uniroma2.it/...❍❍ http://www.ce.uniroma2.it/...http://www.ce.uniroma2.it/...

❍❍ Le slides Le slides delledelle lezionilezioni pubblicatepubblicate sulsul sitosito possonopossono essereessereutilizzateutilizzate come come integrazioneintegrazione ma non ma non sonosono sufficientisufficienti per per prepararsiprepararsi per per l’esamel’esame (BISOGNA STUDIARE SUL (BISOGNA STUDIARE SUL LIBRO!)LIBRO!)

Page 2: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

RicevimentoRicevimento eded esamiesami

�� RicevimentoRicevimento❍❍ In In aulaaula al al terminetermine delladella lezionelezione❍❍ Su Su appuntamentoappuntamento (da (da concordareconcordare tramitetramite email) email) pressopresso la la

FacoltàFacoltà di di IngegneriaIngegneria

��DipartimentoDipartimento InformaticaInformatica SistemiSistemi e e ProduzioneProduzione stanza D1stanza D1--1212

�� EsameEsame�� EsameEsame❍❍ ProvaProva scrittascritta❍❍ date date dada definiredefinire

�� RiconoscimentoRiconoscimento EsameEsame❍❍ PatentePatente EuropeaEuropea -- OKOK❍❍ EsameEsame dada 1+ CFU 1+ CFU didi InformaticaInformatica pressopresso altraaltra sedesede e/o e/o

CdLCdL -- OKOK

IntroduzioneIntroduzione

Prof. Francesco Lo PrestiProf. Francesco Lo Presti

InformaticaInformatica

�� Varie DefinizioniVarie Definizioni

1.1. “Scienza degli Elaboratori Elettronici”“Scienza degli Elaboratori Elettronici”❍❍ Computer ScienceComputer Science

2.2. “Scienza dell’Informazione”“Scienza dell’Informazione”

�� “Scienza della Rappresentazione e della “Scienza della Rappresentazione e della

Introduzione 7

�� “Scienza della Rappresentazione e della “Scienza della Rappresentazione e della Elaborazione dell’Informazione”Elaborazione dell’Informazione”

L’informatica studia le caratteristiche L’informatica studia le caratteristiche dell’informazione e i modi di usarla, dell’informazione e i modi di usarla, immagazzinarla, trasportarla e manipolarla in immagazzinarla, trasportarla e manipolarla in modo automaticomodo automatico

L’Informatica comprende:L’Informatica comprende:

1.1. Metodi per la rappresentazione dell’informazioneMetodi per la rappresentazione dell’informazione2.2. Metodi per la rappresentazione delle soluzioniMetodi per la rappresentazione delle soluzioni3.3. Linguaggi di programmazioneLinguaggi di programmazione4.4. Linguaggi di integrazioneLinguaggi di integrazione5.5. Architettura dei calcolatoriArchitettura dei calcolatori6.6. Sistemi operativiSistemi operativi7.7. Reti di CalcolatoriReti di Calcolatori8.8. Basi di DatiBasi di Dati

Introduzione 8

8.8. Basi di DatiBasi di Dati9.9. Tecnologie WebTecnologie Web10.10. AlgoritmiAlgoritmi

……

�� Due AnimeDue Anime❍❍ TecnologicaTecnologica: I calcolatori elettronici ed i sistemi che li : I calcolatori elettronici ed i sistemi che li

utilizzanoutilizzano❍❍ MetodologicaMetodologica: I metodi per la soluzione di problemi e la : I metodi per la soluzione di problemi e la

gestione delle informazioni gestione delle informazioni

Page 3: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

CalcolatoreCalcolatore

�� Un Un calcolatore elettronicocalcolatore elettronico è una è una macchina macchina programmabileprogrammabile per la rappresentazione, la per la rappresentazione, la memorizzazione, l’elaborazione e la trasmissione memorizzazione, l’elaborazione e la trasmissione delle informazioni delle informazioni

�� Deve essere in grado di:Deve essere in grado di:❍❍ Eseguire istruzioni sui datiEseguire istruzioni sui dati

Introduzione 9

❍❍ Eseguire istruzioni sui datiEseguire istruzioni sui dati

❍❍ Controllare il flusso di esecuzioneControllare il flusso di esecuzione

❍❍ Memorizzare le istruzioni e i dati su cui operareMemorizzare le istruzioni e i dati su cui operare

❍❍ Interagire con gli utenti e gli altri sistemiInteragire con gli utenti e gli altri sistemi

�� DecomposizioneDecomposizione❍❍ HardwareHardware: Struttura fisica del calcolatore: Struttura fisica del calcolatore

❍❍ SoftwareSoftware: Insieme di programmi che consentono : Insieme di programmi che consentono all’hardware di svolgere compiti utiliall’hardware di svolgere compiti utili

Programma e ProgrammazioneProgramma e Programmazione

�� ProgrammaProgramma❍❍ Sequenza di istruzioni che il computer esegue e di Sequenza di istruzioni che il computer esegue e di

decisioni che il computer prende per svolgere una certa decisioni che il computer prende per svolgere una certa attivitàattività

❍❍ IstruzioniIstruzioni�� estrarre un numero da una posizione della memoriaestrarre un numero da una posizione della memoria�� sommare due numerisommare due numeri

inviare la lettera inviare la lettera A A alla stampantealla stampante

Introduzione 10

�� inviare la lettera inviare la lettera A A alla stampantealla stampante�� se un dato è negativo, proseguire il programma da una certa se un dato è negativo, proseguire il programma da una certa

istruzione anziché dalla successiva (istruzione anziché dalla successiva (decisionedecisione))

❍❍ Ogni programma svolge una diversa funzione, anche Ogni programma svolge una diversa funzione, anche complessacomplessa�� impaginare testi o giocare a scacchiimpaginare testi o giocare a scacchi

�� ProgrammazioneProgrammazione❍❍ L’attività di L’attività di progettareprogettare e e realizzarerealizzare un un programmaprogramma

AlgoritmoAlgoritmo

�� Quale tipo di problemi è possibile risolvere con un Quale tipo di problemi è possibile risolvere con un computer?computer?

�� Si dice Si dice algoritmoalgoritmo la descrizione di un la descrizione di un metodo di metodo di soluzionesoluzione di un di un problemaproblema cheche

❍❍ sia eseguibilesia eseguibile

Introduzione 11

❍❍ sia eseguibilesia eseguibile

❍❍ sia priva di ambiguità arrivi ad una conclusione in un sia priva di ambiguità arrivi ad una conclusione in un tempo finitotempo finito

�� Un Un computercomputer può risolvere soltanto quei può risolvere soltanto quei problemiproblemiper i quali sia noto un per i quali sia noto un algoritmoalgoritmo

Cosa e’ un calcolatore?Cosa e’ un calcolatore?

�� “A device that computes, especially a “A device that computes, especially a programmable electronic machineprogrammable electronic machine that performs that performs highhigh--speed mathematical or logical operations or speed mathematical or logical operations or that assembles, stores, correlates, or otherwise that assembles, stores, correlates, or otherwise processes information”processes information”---- The American Heritage Dictionary of the The American Heritage Dictionary of the English LanguageEnglish Language, 4th Edition, 2000, 4th Edition, 2000

Introduzione 12

---- The American Heritage Dictionary of the The American Heritage Dictionary of the English LanguageEnglish Language, 4th Edition, 2000, 4th Edition, 2000

Page 4: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Calcolatore Elettronico Calcolatore Elettronico

�� Macchina per l’esecuzione automatica di algoritmiMacchina per l’esecuzione automatica di algoritmi❍❍ General Purpose:General Purpose: puo’ svolgere qualsiasi elaborazione di puo’ svolgere qualsiasi elaborazione di

cui sia noto un algoritmo risolutivocui sia noto un algoritmo risolutivo

�� Programma e’ un algoritmo espresso in un Programma e’ un algoritmo espresso in un linguaggio di programmazionelinguaggio di programmazione

�� Linguaggio macchina binarioLinguaggio macchina binario: l’insieme delle : l’insieme delle

Introduzione 13

�� Linguaggio macchina binarioLinguaggio macchina binario: l’insieme delle : l’insieme delle istruzioni istruzioni direttamente eseguibile dal calcolatore direttamente eseguibile dal calcolatore

�� Istruzione MacchinaIstruzione Macchina❍❍ operazione logico/aritmetica su dati o di trasferimento operazione logico/aritmetica su dati o di trasferimento

datidati

❍❍ codificata in binariocodificata in binario�� Esempio 10000110010100000 istruisce il calcolatore di Esempio 10000110010100000 istruisce il calcolatore di

effettuare una sommaeffettuare una somma

�� Programma eseguibileProgramma eseguibile: un algoritmo espresso in : un algoritmo espresso in linguaggio macchinalinguaggio macchina

Calcolatore ElettronicoCalcolatore Elettronico

1.1. Accetta in ingresso informazioni codificate in Accetta in ingresso informazioni codificate in forma digitaleforma digitale

2.2. Le elabora attraverso un Le elabora attraverso un programma memorizzatoprogramma memorizzato

3.3. Produce informazioni in uscitaProduce informazioni in uscita

Introduzione 14

Computer

Programma memorizzato in esecuzione

Dati Risultati

Modello di Von NeumannModello di Von Neumann

Unità di controllo

Unità di elaborazione

Memoria

Processore

Dispositivi di I/O

Dispositivi di I/O

Interfaccia di I/O

Interfaccia

Introduzione 15

elaborazione dati

Interfaccia di I/O

Interfaccia di I/O

Busdatiindirizzicontrollo

Processore Processore -- Central Processing Unit (CPU)Central Processing Unit (CPU)

�� Provvede all’esecuzione delle istruzioni macchina Provvede all’esecuzione delle istruzioni macchina

�� Ciclo di EsecuzioneCiclo di Esecuzione1.1. Prelievo Istruzione dalla MemoriaPrelievo Istruzione dalla Memoria

2.2. Decodifica IstruzioneDecodifica Istruzione

3.3. Esecuzione IstruzioneEsecuzione Istruzione

�� Ogni Processore e’ caratterizzato da un proprio Ogni Processore e’ caratterizzato da un proprio

Introduzione 16

�� Ogni Processore e’ caratterizzato da un proprio Ogni Processore e’ caratterizzato da un proprio linguaggio macchinalinguaggio macchina

Page 5: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Processore Processore -- Central Processing Unit (CPU)Central Processing Unit (CPU)

�� Processore e’ composto da due sottosistemi:Processore e’ composto da due sottosistemi:1.1. Unità di Controllo (Control) Unità di Controllo (Control) –– Parte di ControlloParte di Controllo

❍❍ Controlla il sequenziamento e l’esecuzione delle istruzioni Controlla il sequenziamento e l’esecuzione delle istruzioni generando i segnali di controllogenerando i segnali di controllo

2.2. Unita’ di Elaborazione (Datapath) Unita’ di Elaborazione (Datapath) –– Parte Parte OperativaOperativa

Esegue le istruzioniEsegue le istruzioni

Introduzione 17

❍❍ Esegue le istruzioniEsegue le istruzioni❍❍ ALUALU

�� Esegue operazioni logico aritmetiche sui datiEsegue operazioni logico aritmetiche sui dati

❍❍ Banco di Registri (Register File)Banco di Registri (Register File)�� Memoria interna CPUMemoria interna CPU�� Program Counter (PC)Program Counter (PC)

–– Indirizzo Prossima IstruzioneIndirizzo Prossima Istruzione�� Instruction Register (IR)Instruction Register (IR)

–– Codice Istruzione da eseguireCodice Istruzione da eseguire

Processore Processore -- Central Processor Unit (CPU)Central Processor Unit (CPU)

ALU

Registri

Bus I

nterno C

PU

PCIR

Bus D

ati

Bus I

ndir

izzi

Bus C

ontrolloUnità di Elaborazione

Introduzione 18

Unità di Controllo

ALU

Bus I

nterno C

PU

Segnali di Controllo

Bus I

ndir

izzi

Bus C

ontrollo

Il BusIl Bus

�� La struttura di interconnessione più comuneLa struttura di interconnessione più comune❍❍ percorsi di comunicazione tra due o più dispositivipercorsi di comunicazione tra due o più dispositivi

❍❍ mezzo di trasmissione condivisomezzo di trasmissione condiviso

❍❍ Usualmente di tipo broadcastUsualmente di tipo broadcast�� I dati sono visibili da tutte le unità connesse I dati sono visibili da tutte le unità connesse

Introduzione 19

Unità di controllo

Unità di elaborazione dati

Memoria

ProcessoreDispositivi di

I/ODispositivi di

I/O

Interfaccia di I/O

Interfaccia di I/O

Busdati

indirizzi

controllo

La Memoria La Memoria

�� Memoria Primaria: Memoria CentraleMemoria Primaria: Memoria Centrale❍❍ Contiene istruzioni/dati dei programmi in esecuzioneContiene istruzioni/dati dei programmi in esecuzione

�� …in formato binario…in formato binario

❍❍ VolatileVolatile❍❍ RAM RAM –– Random Access MemoryRandom Access Memory

��Memoria ad accesso casualeMemoria ad accesso casuale–– Tempo di accesso costanteTempo di accesso costante

Introduzione 20

–– Tempo di accesso costanteTempo di accesso costante�� SRAM, DRAM, etc.SRAM, DRAM, etc.

❍❍ Veloce (~10Veloce (~10--100ns) Costosa100ns) Costosa❍❍ Dimensioni contenute (fino a qualche Gigabyte)Dimensioni contenute (fino a qualche Gigabyte)❍❍ E’ organizzata come una gerarchia di memorieE’ organizzata come una gerarchia di memorie

�� Cache di primo e secondo livello…Cache di primo e secondo livello…

�� Memoria Secondaria: Dischi, CD, etc..Memoria Secondaria: Dischi, CD, etc..❍❍ Memoria di lungo periodo Memoria di lungo periodo -- non volatilenon volatile❍❍ Tempo di accesso maggiori (~ms e piu’), economicaTempo di accesso maggiori (~ms e piu’), economica

Page 6: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

La Memoria Centrale La Memoria Centrale

�� CompostaComposta didi cellecelle, o , o locazionilocazioni, a , a loroloro voltavoltacompostecomposte dada un un numeronumero fissofisso didi bitbit

❍❍ CellaCella elementareelementare didi memoriamemoria puòpuò memorizzarememorizzare solo solo due due valorivalori: 0 o 1, : 0 o 1, cifracifra binariabinaria (binary digit (binary digit --> bit) > bit)

❍❍ TipicamenteTipicamente cellacella=1 byte (8 bit)=1 byte (8 bit)

�� OgniOgni locazionelocazione e’ e’ associataassociata ad un ad un indirizzoindirizzonell’intervallonell’intervallo [0,1,…,M[0,1,…,M--1]1]

❍❍ M M dimensionedimensione delladella memoriamemoria Memoria

byte M-1

byte M-2

Introduzione 21

❍❍ M M dimensionedimensione delladella memoriamemoria❍❍ La La memoriamemoria e’ vista come un e’ vista come un vettorevettore didi bytebyte

�� La CPU (ma non solo) accede La CPU (ma non solo) accede allealle informazioniinformazioni in in scritturascrittura//letturalettura tramitetramite indirizzoindirizzo delladella cellacella

❍❍ IndirizziIndirizzi a m bit: a m bit: spaziospazio didi indirizzamentoindirizzamento 22mm

�� Non Non necessariamentenecessariamente M= 2M= 2mm

�� OperazioniOperazioni: : LetturaLettura//ScritturaScrittura❍❍ LetturaLettura: : PrelevarePrelevare ilil contenutocontenuto didi unauna cellacella didi memoriamemoria❍❍ ScritturaScrittura: : SostituireSostituire ilil contenutocontenuto didi unauna cellacella didi memoriamemoria

Memoria

8 bit

byte 0

byte 1

Software Applicativo

Software di Base

SoftwareSoftware

�� Programmi che vengono eseguiti dal sistemaProgrammi che vengono eseguiti dal sistema❍❍ Software di baseSoftware di base

�� Sistema OperativoSistema Operativo

❍❍ Software ApplicativoSoftware Applicativo��Word Word ProcessorProcessor

Insieme (complesso) di programmiInsieme (complesso) di programmi

Hardware

Introduzione 22

Software Applicativo�� Insieme (complesso) di programmiInsieme (complesso) di programmi

�� Organizzato a stratiOrganizzato a strati❍❍ Ciascuno con funzionalità di livello più alto rispetto a Ciascuno con funzionalità di livello più alto rispetto a

quelli sottostantiquelli sottostanti

�� Concetto di Macchina VirtualeConcetto di Macchina Virtuale

Il Sistema OperativoIl Sistema Operativo

�� Strato software che opera sopra l’hardware e Strato software che opera sopra l’hardware e gestisce l’elaboratoregestisce l’elaboratore

❍❍ Windows, Linux, Windows, Linux, MacOsMacOs X, X, Android, etc.Android, etc.

�� FunzioniFunzioni❍❍ Gestione delle risorse disponibiliGestione delle risorse disponibili

�� Processore, Memoria, Dischi, Processore, Memoria, Dischi, etcetc,,

Introduzione 23

�� Processore, Memoria, Dischi, Processore, Memoria, Dischi, etcetc,,

❍❍ Processore: Sistema MultiutenteProcessore: Sistema Multiutente❍❍ Memoria Centrale: Memoria VirtualeMemoria Centrale: Memoria Virtuale❍❍ Memoria Secondaria: File SystemMemoria Secondaria: File System

�� Gli utenti vedono l’elaboratore solo tramite il Gli utenti vedono l’elaboratore solo tramite il Sistema OperativoSistema Operativo

❍❍ Il SO realizza una “macchina virtuale”Il SO realizza una “macchina virtuale”

Programmi ApplicativiProgrammi Applicativi

�� Risolvono problemi specifici degli utenti:Risolvono problemi specifici degli utenti:❍❍ Word processorWord processor

❍❍ Fogli elettroniciFogli elettronici

❍❍ DatabaseDatabase

❍❍ GiochiGiochi

❍❍ Etc. Etc.

Introduzione 24

Etc. Etc. �� Scritti in linguaggi di programmazione di alto livelloScritti in linguaggi di programmazione di alto livello

�� Ambiente di ProgrammazioneAmbiente di Programmazione❍❍ L’insieme dei programmi che consentono la scrittura, la L’insieme dei programmi che consentono la scrittura, la

verifica e l’esecuzione di nuovi programmi verifica e l’esecuzione di nuovi programmi �� Fase di sviluppoFase di sviluppo

Page 7: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Alcune Domande FondamentaliAlcune Domande Fondamentali

�� Quali istruzioni esegue un eleboratore?Quali istruzioni esegue un eleboratore?

�� Quali problemi puo’ risolvere un eleboratore?Quali problemi puo’ risolvere un eleboratore?

�� Esistono problemi che un elaboratore non puo’ Esistono problemi che un elaboratore non puo’ risolvere?risolvere?

�� Che ruolo ha il linguaggio di programmazione?Che ruolo ha il linguaggio di programmazione?

Introduzione 25

Problemi da RisolvereProblemi da Risolvere

�� I problemi che siamo interessati a risolvere sono di natura I problemi che siamo interessati a risolvere sono di natura molto varia:molto varia:

1.1. Trovare il maggiore fra due numeriTrovare il maggiore fra due numeri

2.2. Dato un elenco di nomi e numeri di telefono, trovare il Dato un elenco di nomi e numeri di telefono, trovare il numero di una data personanumero di una data persona

3.3. Problema del lupo, della capra e del cavoloProblema del lupo, della capra e del cavolo

4.4. Dati a e b, risolvere l’equazione ax+b=0Dati a e b, risolvere l’equazione ax+b=0

Introduzione 26

4.4. Dati a e b, risolvere l’equazione ax+b=0Dati a e b, risolvere l’equazione ax+b=0

5.5. Stabilire se una parola precede alfabeticamente un’altraStabilire se una parola precede alfabeticamente un’altra

6.6. Ordinare una lista di elementiOrdinare una lista di elementi

7.7. Creare, alterare suoniCreare, alterare suoni

8.8. Analizzare e riconoscere immaginiAnalizzare e riconoscere immagini

9.9. Salvare e recuperare delle informazioniSalvare e recuperare delle informazioni

10.10. Trasmettere informazioniTrasmettere informazioni

……

Risoluzione di ProblemiRisoluzione di Problemi

�� La descrizione di un problema non fornisce (in La descrizione di un problema non fornisce (in generale) un metodo per risolverlogenerale) un metodo per risolverlo

�� Non tutti i problemi sono risolvibili attraverso l’uso Non tutti i problemi sono risolvibili attraverso l’uso del calcolatore: Esistono classi di problemi per le del calcolatore: Esistono classi di problemi per le quali la soluzione automatica non è proponibile. As quali la soluzione automatica non è proponibile. As

Introduzione 27

quali la soluzione automatica non è proponibile. As quali la soluzione automatica non è proponibile. As esempio:esempio:

❍❍ Se il problema ammette infinite soluzioniSe il problema ammette infinite soluzioni

�� Noi considereremo problemi che ammettono un Noi considereremo problemi che ammettono un metodo risolutivo metodo risolutivo ovvero…ovvero…

�� Problemi per i quali esiste un algoritmo risolutivoProblemi per i quali esiste un algoritmo risolutivo

AlgoritmoAlgoritmo

�� Un algoritmo è una sequenza Un algoritmo è una sequenza finitafinita di mosse/azioni di mosse/azioni che risolve che risolve in un tempo finitoin un tempo finito una una classeclasse di di problemiproblemi

�� L'esecuzione delle azioni nell'ordine specificato L'esecuzione delle azioni nell'ordine specificato dall'algoritmodall'algoritmo consente di ottenere, a partire dai consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il dati di ingresso, i risultati che risolvono il

Introduzione 28

dall'algoritmodall'algoritmo consente di ottenere, a partire dai consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il dati di ingresso, i risultati che risolvono il problemaproblema

�� EsecutoreEsecutore è una è una macchina astrattamacchina astratta capace di capace di eseguire le azionieseguire le azioni specificate dall’specificate dall’algoritmoalgoritmo

❍❍ Il calcolatore è un caso particolare di esecutoreIl calcolatore è un caso particolare di esecutore

Page 8: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Esempio di ProblemaEsempio di Problema

�� Problema:Problema: Come si cucina un uovo al burro?Come si cucina un uovo al burro?

�� SoluzioneSoluzione

1.1. Far sciogliere in un tegamino 20g. di burroFar sciogliere in un tegamino 20g. di burro

2.2. Quando il burro assume un colore dorato rompere Quando il burro assume un colore dorato rompere il guscio dell’uovoil guscio dell’uovo

3.3. Far scivolare delicatamente nel tegamino albume e Far scivolare delicatamente nel tegamino albume e

Introduzione 29

3.3. Far scivolare delicatamente nel tegamino albume e Far scivolare delicatamente nel tegamino albume e tuorlotuorlo

4.4. RosolareRosolare

5.5. Quando l’albume è ben rappreso spegnere il fuocoQuando l’albume è ben rappreso spegnere il fuoco

Esempio di ProblemaEsempio di Problema

�� Problema:Problema: Risolvere l’equazione ax+b=0Risolvere l’equazione ax+b=0

�� SoluzioneSoluzione

1.1. leggi i valori di a e bleggi i valori di a e b

2.2. calcola calcola ––bb

3.3. dividi quello che hai ottenuto per a e chiama x il dividi quello che hai ottenuto per a e chiama x il risultatorisultato

Introduzione 30

risultatorisultato

4.4. stampa xstampa x

Algoritmi e ProgrammiAlgoritmi e Programmi

�� Passi per la risoluzione di un problema:Passi per la risoluzione di un problema:❍❍ individuazione di un procedimento risolutivoindividuazione di un procedimento risolutivo

❍❍ scomposizione del procedimento in un insieme ordinato di azioni scomposizione del procedimento in un insieme ordinato di azioni �� AlgoritmoAlgoritmo

❍❍ rappresentazione dei dati e dell’algoritmo attraverso un rappresentazione dei dati e dell’algoritmo attraverso un formalismo comprensibile dal calcolatore (linguaggio di formalismo comprensibile dal calcolatore (linguaggio di programmazione) programmazione) �� ProgrammaProgramma

Introduzione 31Problema

Inizio

Leggi a e b

Sì w > 0 ?

No

w ← a; z ← 0;

Scrivi z = a × b

Fine

z ← z + b w ← w – 1

Dichiarazione: a, b, w, z contengono numeri interi

Prodotto di due numeri

naturali

Algoritmo

Metodo di Risoluzione

Linguaggio di Programmazione

main() { /* prodotto C */unsigned int a, b;int w, z;

scanf("%d %d",&a,&b);z = 0;w = a;while (w > 0) {

z = z + b;w = w – 1;

}printf("%d", z);

}

Programma

Dati e istruzioniDati e istruzioni

�� Tipi di datiTipi di dati❍❍ Numeri naturali o interi o realiNumeri naturali o interi o reali (1, (1, --2, 0.34)2, 0.34)

❍❍ Caratteri alfanumerici Caratteri alfanumerici (A, B, ..)(A, B, ..)

❍❍ Dati logici o booleani Dati logici o booleani (Vero, Falso)(Vero, Falso)

❍❍ Array o vettore di n elementi Array o vettore di n elementi ({1,2,3})({1,2,3})

�� IstruzioniIstruzioni

Introduzione 32

�� IstruzioniIstruzioni❍❍ Operazioni di Input/OutputOperazioni di Input/Output (es. (es. leggileggi, , scriviscrivi))

❍❍ Operazioni AritmeticoOperazioni Aritmetico--logichelogiche (es. (es. max = A + Bmax = A + B))

❍❍ Strutture di ControlloStrutture di Controllo (es. (es. SESE, , RIPETI RIPETI ))

Page 9: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Algoritmi e VariabiliAlgoritmi e Variabili

�� Gli algoritmi sono parametrici:Gli algoritmi sono parametrici:❍❍ producono un risultato che dipende da un insieme di dati producono un risultato che dipende da un insieme di dati

di partenza;di partenza;❍❍ descrivono la soluzione non di un singolo problema, ma di descrivono la soluzione non di un singolo problema, ma di

una intera classe di problemiuna intera classe di problemi strutturalmente equivalenti.strutturalmente equivalenti.❍❍ Esempi:Esempi:

�� l’algoritmo per la moltiplicazione di due numeri specifica l’algoritmo per la moltiplicazione di due numeri specifica come effettuare il prodotto di come effettuare il prodotto di tuttetutte le possibili coppie di le possibili coppie di numeri;numeri;

Introduzione 33

come effettuare il prodotto di come effettuare il prodotto di tuttetutte le possibili coppie di le possibili coppie di numeri;numeri;

�� l’algoritmo per la ricerca di un libro nello schedario della l’algoritmo per la ricerca di un libro nello schedario della biblioteca vale per tutti i possibili libri;biblioteca vale per tutti i possibili libri;

�� ……

Algoritmi e VariabiliAlgoritmi e Variabili

�� Le istruzioni dell’algoritmo Le istruzioni dell’algoritmo fanno riferimento a fanno riferimento a variabilivariabili

❍❍ Somma x ad ySomma x ad y❍❍ Se a>o alloraSe a>o allora❍❍ ……❍❍ Come in matematica una variabile è Come in matematica una variabile è

un sinonimo per indicare un dato un sinonimo per indicare un dato

�� VariabileVariabile: Nome associato ad : Nome associato ad

Memoria

Introduzione 34

�� VariabileVariabile: Nome associato ad : Nome associato ad una locazione di memoria una locazione di memoria

❍❍ Contenitore per datiContenitore per dati

�� Astrazione delle cella di Astrazione delle cella di memoriamemoria

y

x

a

totale

4

8

3

6

Uso delle VariabiliUso delle Variabili

�� All’interno di espressioni,All’interno di espressioni,❍❍ l’esecutore usa il valore contenuto nelle variabili per l’esecutore usa il valore contenuto nelle variabili per

calcolare il risultato dell’espressione,calcolare il risultato dell’espressione,❍❍ per esempio var1per esempio var1 ++ var2 var2 ×× var3 oppure var1var3 oppure var1 // var2 var2 –– var3, var3,

……

�� in istruzioni di assegnamento/assegnazionein istruzioni di assegnamento/assegnazione❍❍ introdurre nel contenitore identificato dal nome della introdurre nel contenitore identificato dal nome della

variabile il valore specificato a destra dell’assegnamento;variabile il valore specificato a destra dell’assegnamento;

Introduzione 35

variabile il valore specificato a destra dell’assegnamento;variabile il valore specificato a destra dell’assegnamento;❍❍ Esempi: Esempi: ❍❍ rr == 35 (assegna 35 alla variabile il cui nome è 35 (assegna 35 alla variabile il cui nome è rr),),❍❍ PiPi == 3,143,14❍❍ ……

L’AssegnazioneL’Assegnazione

�� SintassiSintassi

nomeVariabile = espressione;

total=total+ quarters * 0.25;

C++: Introduzione 36

�� Calcola il valore di Calcola il valore di espressioneespressione e memorizza il e memorizza il risultato nella posizione di memoria assegnata alla risultato nella posizione di memoria assegnata alla variabile variabile nomeVariabilenomeVariabile

Page 10: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

L’AssegnazioneL’Assegnazione

total=total+ quarters * 0.25;

Memoria

total+ quarters * 0.25

Calcola

1.23

Memoria

C++: Introduzione 37

dimes

pennies

quarters

total

4

8

3

0.48

total+ quarters * 0.251.23

Memorizza il risultato in total

dimes

pennies

quarters

total

4

8

3

1.23

Uso delle VariabiliUso delle Variabili

�� in istruzioni di assegnamento combinate con in istruzioni di assegnamento combinate con espressioniespressioni

❍❍ assegna a una variabile il risultato ottenuto dalla assegna a una variabile il risultato ottenuto dalla valutazione di un’espressionevalutazione di un’espressione

❍❍ CircCirc == 22 ×× rr ×× pipi�� il risultato dell’espressione 2il risultato dell’espressione 2 ×× rr ×× pipi viene calcolato viene calcolato

utilizzando i valori contenuti nelle variabili utilizzando i valori contenuti nelle variabili rr e e pipi e il e il risultato viene poi assegnato alla variabile risultato viene poi assegnato alla variabile circcirc;;

Introduzione 38

risultato viene poi assegnato alla variabile risultato viene poi assegnato alla variabile circcirc;;

❍❍ la stessa variabile può comparire in entrambi i lati la stessa variabile può comparire in entrambi i lati dell’istruzione di assegnamentodell’istruzione di assegnamento�� kk= k= k ++ 11�� il valore contenuto in k viene utilizzato per trovare il valore il valore contenuto in k viene utilizzato per trovare il valore

dell’espressione kdell’espressione k ++ 1 che viene memorizzato come nuovo 1 che viene memorizzato come nuovo valore di k.valore di k.

Rappresentazione degli algoritmiRappresentazione degli algoritmi

�� Linguaggio naturaleLinguaggio naturale

�� Diagramma a blocchiDiagramma a blocchi

�� Pseudo codicePseudo codice

Introduzione 39

�� Linguaggio di programmazioneLinguaggio di programmazione

Rappresentazione degli algoritmiRappresentazione degli algoritmi

�� Linguaggio NaturaleLinguaggio Naturale

❍❍ Sollevare il ricevitoreSollevare il ricevitore

❍❍ Attendere il segnale di Attendere il segnale di linea liberalinea libera

❍❍ Comporre il numeroComporre il numero

❍❍ ……

�� Diagramma di flussoDiagramma di flusso

Inizio

Leggi

x e y

d ←x – y

Introduzione 40

……

d ←x – y

d > 0 ?No

Fine

Scrivi

“max è x”

Scrivi

“max è y”

Page 11: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Diagrammi di flussoDiagrammi di flusso

START

Inizio

END

Fine

I/O

Operazioni di ingresso/uscita

PROCESS

Elaborazione

Introduzione 41

ingresso/uscita

PredicatoPredicato

Selezione a due vie

Sì NoSUB-PROCESS

Sottoprogramma

EsempioEsempio

Esempio:Esempio:dati in ingresso due numeri dati in ingresso due numeri x e y, si calcoli e stampi il x e y, si calcoli e stampi il maggiore.maggiore.

Inizio

Leggi

x e y

d ←x – y

Introduzione 42

d ←x – y

d > 0 ?No

Fine

Scrivi

“max è x”

Scrivi

“max è y”

Somma dei primi N numeri naturaliSomma dei primi N numeri naturali

Inizio

Leggi n

ris ← 0 i ← 0

Inizio

Leggi n

ris ← n

Introduzione 43

No Sì

Scrivi ris

Fine

i > n ?

ris ← ris + i i ← i +1

No Sì

Scrivi ris

Fine

n < 1 ?

n ← n –1 ris ← ris + n

Somma dei primi N numeri naturaliSomma dei primi N numeri naturali

Inizio

Leggi n

ris ← 0 i ← 0

2

1

T posiz. n i ris note

t01 � ?? ?? ?? Variabili non ancora definite

t02 � 4 ?? ?? Letto il valore 4 e inserito in n

t03 � 4 0 0 i < n ⇒ posiz. 4

t04 � 4 0 0

t05 � 4 1 0 i < n ⇒ posiz. 4

t06 � 4 1 0

Introduzione 44

No Sì

i ← 0

Scrivi ris

Fine

i > n ?

ris ← ris + i i ← i +1

3

4 5

6

t06 � 4 1 0

t07 � 4 2 1 i < n ⇒ posiz. 4

t08 � 4 2 1

t09 � 4 3 3 i < n ⇒ posiz. 4

t10 � 4 3 3

t11 � 4 4 6 i = n ⇒ posiz. 4

t12 � 4 4 6

t13 � 4 5 10 i > n ⇒ posiz. 5

t14 � 4 5 10

t15 � 4 5 10 Stampato risultato (10)

Page 12: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Somma dei primi N numeri naturaliSomma dei primi N numeri naturali

�� Esiste infatti una soluzione analitica: Esiste infatti una soluzione analitica: nn ×× (n(n ++ 1)1) // 22

�� L’algoritmo è molto più semplice (il numero L’algoritmo è molto più semplice (il numero di istruzioni da eseguire è costante e non di istruzioni da eseguire è costante e non dipende dal valore di dipende dal valore di nn).).

Inizio

Leggi n

ris ← n × (n + 1) / 2

2

1

Introduzione 45

ris ← n × (n + 1) / 2

Scrivi ris

Fine

3

4

T posiz. N ris note

t01 � ?? ?? Variabili non ancora definite

t02 � 4 ?? Letto il valore 4 e inserito in n

t03 � 4 10 Calcolato il risultato 10=4×5/2

t04 � 4 10 Stampato risultato (10)

Prodotto di due numeri naturaliProdotto di due numeri naturali

Dati

aa, bb interi positiviww, zz interi

Risoluzione

leggi aa e bbzz ← 0ww ← afinché ww > 0 ripeti

Inizio

Leggi a e b

Dichiarazione: a, b, w, zcontengono numeri interi

Introduzione 46

finché ww > 0 ripetizz ← zz + bbww ← ww – 11

fine cicloscrivi zzfine Sì

w > 0?No

w ←a;

z ←0;

Scrivi z

Fine

z ←z + b

w ←w – 1

Istruzioni e Strutture di ControlloIstruzioni e Strutture di Controllo

�� Le Le istruzioniistruzioni esprimono esprimono azioniazioni che, una volta che, una volta eseguite, comportano una eseguite, comportano una modifica permanentemodifica permanentedello stato internodello stato interno del programmadel programma

�� Le Le strutture di controllostrutture di controllo permettono di permettono di aggregareaggregareistruzioni sempliciistruzioni semplici in istruzioni più complessein istruzioni più complesse

�� Un’istruzione C++ ha la seguente forma:Un’istruzione C++ ha la seguente forma:

C++: Strutture di Controllo 47

�� Un’istruzione C++ ha la seguente forma:Un’istruzione C++ ha la seguente forma:

istruzione istruzione == istruzione semplice istruzione semplice istruzione istruzione == istruzione semplice istruzione semplice

istruzione istruzione == istruzione di controlloistruzione di controllo

Istruzioni SempliciIstruzioni Semplici

�� Qualsiasi Qualsiasi espressioneespressione seguita da un punto e virgola seguita da un punto e virgola è una è una istruzione sempliceistruzione semplice

� Esempi

istruzione semplice istruzione semplice = = espressioneespressione;;istruzione semplice istruzione semplice = = espressioneespressione;;

C++: Strutture di Controllo 48

x = 0;

y=y+x;

K=k+1;

Page 13: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Istruzioni di ControlloIstruzioni di Controllo

�� Una istruzione di controllo può essere:Una istruzione di controllo può essere:

1.1. una istruzione una istruzione compostacomposta (blocco)(blocco)

2.2. una istruzione una istruzione condizionale condizionale (selezione)(selezione)

3.3. una istruzione di una istruzione di iterazioneiterazione (ciclo)(ciclo)

�� Le istruzioni di controllo sono alla base della Le istruzioni di controllo sono alla base della programmazione strutturataprogrammazione strutturata (Dijkstra, 1969)(Dijkstra, 1969)

C++: Strutture di Controllo 49

programmazione strutturataprogrammazione strutturata (Dijkstra, 1969)(Dijkstra, 1969)

Programmazione StrutturataProgrammazione Strutturata

�� ObiettivoObiettivo: rendere piu’ facile la lettura dei : rendere piu’ facile la lettura dei programmi (e quindi la loro modifica e programmi (e quindi la loro modifica e manutenzione)manutenzione)

�� Abolizione di salti incondizionati (goto) nel flusso Abolizione di salti incondizionati (goto) nel flusso di controllodi controllo

C++: Strutture di Controllo 50

di controllodi controllo

�� La parte di esecuzione di un programma è ottenuta La parte di esecuzione di un programma è ottenuta dalla combinazione di istruzioni elementari tramite dalla combinazione di istruzioni elementari tramite regole di composizione (strutture di controllo) regole di composizione (strutture di controllo)

Strutture di ControlloStrutture di Controllo

Concetti chiave:Concetti chiave:

�� concatenazione o composizione concatenazione o composizione BLOCCOBLOCCO❍❍ istruzioni eseguite in sequenzaistruzioni eseguite in sequenza

�� istruzione condizionale istruzione condizionale SELEZIONESELEZIONE❍❍ ramifica il flusso di controllo in base al valore vero o falso ramifica il flusso di controllo in base al valore vero o falso

di una espressione (“di una espressione (“condizione di sceltacondizione di scelta”)”)

C++: Strutture di Controllo 51

di una espressione (“di una espressione (“condizione di sceltacondizione di scelta”)”)

�� ripetizione o iterazione ripetizione o iterazione CICLOCICLO❍❍ esegue ripetutamente un’istruzione finché rimane vera esegue ripetutamente un’istruzione finché rimane vera

una espressione (“una espressione (“condizione di iterazione”condizione di iterazione”))

Bohm e Jacopini (1966): queste tre strutture di Bohm e Jacopini (1966): queste tre strutture di controllo sono sufficienti per definire tutte le controllo sono sufficienti per definire tutte le funzioni computabilifunzioni computabili

BloccoBlocco

�� SintassiSintassi

blocco = {

istruzione 1

istruzione n

istruzione 1

istruzione 2

C++: Strutture di Controllo 52

istruzione n

}

istruzione 2

istruzione n

Page 14: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Istruzioni CondizionaliIstruzioni Condizionali

�� SintassiSintassi

�� Struttura di controllo che ramifica il flusso di Struttura di controllo che ramifica il flusso di esecuzione in base al esecuzione in base al

valore valore verovero o o falsofalso di una espressione di una espressione booleanboolean

selezione = scelta

C++: Strutture di Controllo 53

❍❍ valore valore verovero o o falsofalso di una espressione di una espressione booleanboolean(“(“condizione di sceltacondizione di scelta”)”)

Istruzione di Scelta: if Istruzione di Scelta: if

�� SintassiSintassi

scelta =

if ( condizione )

istruzione if

[else

istruzione if istruzione else

condizionevero falso

C++: Strutture di Controllo 54

❍❍ La parte else e’ opzionaleLa parte else e’ opzionale

[else

istruzione else]

istruzione if

condizionevero falso

Istruzione whileIstruzione while

�� SintassiSintassi

�� L’istruzione viene L’istruzione viene

istr. while =

while (condizione)

istruzione condizione

vero falso

C++: Strutture di Controllo 55

�� L’istruzione viene L’istruzione viene eseguita finche’ la eseguita finche’ la condizione rimane condizione rimane veravera

�� Puo’ essere eseguita 0 Puo’ essere eseguita 0 o piu’ volteo piu’ volte

❍❍ cfr. con docfr. con do--while while ❍❍ Infinite volte se la Infinite volte se la

condizione è sempre condizione è sempre vera!!vera!!

istruzione

Istruzione doIstruzione do--whilewhile

�� SintassiSintassi

La condizione è La condizione è

istr. do while = do {

istruzione

} while (condizione); istruzione

C++: Strutture di Controllo 56

�� La condizione è La condizione è controllata a fine controllata a fine ciclociclo

❍❍ Il ciclo viene eseguito Il ciclo viene eseguito 1 o piu’ volte1 o piu’ volte

❍❍ Nel while la condizione Nel while la condizione è controllata a inizio è controllata a inizio ciclociclo

condizionevero

falso

Page 15: Informatica - ce.uniroma2.itlopresti/IntroLop_2015x4.pdf · Prof. Francesco Lo Presti Informatica Varie Definizioni 11.. “Scienza degli Elaboratori Elettronici” Computer Science

Esempio: Iterazione Controllata da Contatore Esempio: Iterazione Controllata da Contatore

�� Una classe di 10 studenti ha sostenuto un test. Una classe di 10 studenti ha sostenuto un test. Inserire i voti (compresi da 0 a 100) e calcolare la Inserire i voti (compresi da 0 a 100) e calcolare la media. media.

Inizializzazione

C++: Strutture di Controllo 57

?

Inizializzazione

Processamento

Termine

EsempioEsempio

�� Dal Pseudocodice al codiceDal Pseudocodice al codice

Inizializzazione

Dichiara Variabili totale, contatore, voto e media

totale=0

contatore=0Dichiarare variabili

e inizializzarle

C++: Strutture di Controllo 58

Inizializzazione

Processamento

Inserire i 10 valori

while contatore<10

richiedi voto

somma voto a totale

incrementa contatore

Media=totale/10

Calcolare la media

Termine

Stampa la mediaStampa la media

EsempioEsempio

�� Dal Pseudocodice al codiceDal Pseudocodice al codice

while contatore<10

richiedi voto

somma voto a totale

contatore<10vero falso

C++: Strutture di Controllo 59

somma voto a totale

incrementa contatorerichiedi voto

incrementa contatore

somma voto a totale