Sei sulla pagina 1di 18

Argomenti della lezione

Introduzione al problem solving Fasi dello sviluppo di un programma Analisi: Dati di input/output Progettare una soluzione: Algoritmi Esempi

LL Caponetti Caponetti

Problemi - algoritmi

Obiettivi
Introdurre i concetti di base della programmazione procedurale attraverso luso di linguaggi imperativi ( Assembly, Pascal, C ) Programmazione
insieme di attivit utili nella soluzione di problemi con il computer o Problem Solving
LL Caponetti Caponetti

Problemi - algoritmi

Programmazione
La programmazione l'attivit di sviluppare programmi per un calcolatore. Lo scopo della scrittura di un programma la soluzione di un problema

Sviluppare un programma non vuol dire soltanto scrivere quel programma !


Problemi - algoritmi 3

LL Caponetti Caponetti

Fasi dello sviluppo di un programma


Per risolvere un problema necessario:
Formulare il problema (specifica dei requisiti) in modo pi o meno formale Capire il problema e scomporlo in parti pi semplici (analisi del problema) Progettare una soluzione (algoritmo) Implementare la soluzione (scrittura del codice) Sottoporre la soluzione a test e correggere eventuali errori (verifica del programma, testing e debugging) Tenere aggiornato il programma (manutenzione)

LL Caponetti Caponetti

Problemi - algoritmi

Specificare le richieste del problema


Formulare il problema (specifica dei requisiti):
Stabilire qual il problema da risolvere in modo da avere una chiara comprensione di che cosa richiesto per la sua soluzione Lobiettivo di eliminare gli aspetti non importanti e di concentrarsi su quelli essenziali

LL Caponetti Caponetti

Problemi - algoritmi

Analizzare il problema
Capire il problema e scomporlo in parti pi semplici (analisi del problema)
Identificare i dati di input del problema cio i dati disponibili su cui lavorare Identificare i dati di output cio i risultati desiderati Se le prime 2 fasi non sono realizzate correttamente si potrebbe risolvere il problema sbagliato

LL Caponetti Caponetti

Problemi - algoritmi

Progettare lalgoritmo
Progettare una soluzione (algoritmo)
Richiede che si definisca come si risolve il problema
Definire un insieme di passi o di azioni la cui esecuzione risolve il problema iniziale Non tentare di risolvere ogni dettaglio del problema allinizio, ma utilizzare una disciplina top- down (dal generale al particolare)

LL Caponetti Caponetti

Problemi - algoritmi

Progettare lalgoritmo approccio top-down


Progettare una soluzione (algoritmo)
Elenca i sottoproblemi che devono essere risolti; per risolvere il problema originale risolvi ciascun sottoproblema Una volta identificati i sottoproblemi si pu risolvere ciascun sottoproblema singolarmente; lalgoritmo risolutivo di ciascun sottoproblema pu essere rifinito ulteriormente (algorithm refinement)
Problemi - algoritmi 8

LL Caponetti Caponetti

Implementazione
Implementare la soluzione (scrittura del codice)
Implementare un algoritmo vuol dire scrivere il programma E possibile convertire ciascun passo dellalgoritmo in 1 o pi istruzioni di un linguaggio di programmazione

LL Caponetti Caponetti

Problemi - algoritmi

Problem solving
Problem solving il termine inglese che indica l'insieme dei processi per analizzare e risolvere situazioni problematiche. In informatica indica labilit di risolvere problemi con il computer Problem solving si occupa di inventare e progettare metodi risolutivi algoritmiappropriati per il computer Richiede: pianificazione accurata, coerenza logica, perseveranza, attenzione al dettaglio..
LL Caponetti Caponetti

Problemi - algoritmi

10

Problemi
Esempi di semplici problemi:
ordinare 10000 numeri cercare un numero di telefono in una rubrica preparare una ricetta installare un elettrodomestico definire il percorso migliore tra 2 citt ad esempio Roma Berlino

LL Caponetti Caponetti

Problemi - algoritmi

11

Analisi- Dati di input/output


Chi imposta un problema per tentare di risolverlo, si trova a considerare un insieme di fatti iniziali detto
STATO INIZIALE del problema DATI di INPUT) ( o DATI INIZIALI o

Si risolve il problema quando, da questo stato iniziale si perviene a uno stato detto
STATO FINALE (o DATI FINALI O RISULTATI o DATI di OUTPUT)

LL Caponetti Caponetti

Problemi - algoritmi

12

Analisi- Dati di input/output


Un problema richiede che si determinino dei risultati- dati di output - a partire da dati iniziali - dati di input Generalmente si pu individuare una relazione tra i dati di input e quelli di output ad esempio il percorso migliore tra Roma e Berlino quello che ha lunghezza uguale alla distanza tra Roma e Berlino
LL Caponetti Caponetti

Problemi - algoritmi

13

Analisi - Dominio dei dati


I dati di input/output variano in un insieme di valori detto dominio di definizione Una istanza di un problema si ottiene ogni volta che i dati di input assumono particolari valori nel loro dominio di definizione
LL Caponetti Caponetti

Problemi - algoritmi

14

Specifica di un problema
La descrizione di un problema o specifica costituita da
Descrizione di che cosa - compito o funzione - il problema richiede Descrizione dei dati di input e di output ad esempio nome, descrizione e dominio dei dati
LL Caponetti Caponetti

Problemi - algoritmi

15

Generalit
Se descriviamo un problema in modo generale individuando i dati ed il dominio dei dati - consideriamo non un singolo problema ma un insieme di problemi o istanze del problema generale

LL Caponetti Caponetti

Problemi - algoritmi

16

Soluzione di un problema
Soluzione
procedimento risolutivo metodo mediante il quale possibile risolvere il problema nella sua generalit non costituita dai risultati del problema, ma dal procedimento che consente di risolverne tutte le istanze

LL Caponetti Caponetti

Problemi - algoritmi

17

Algoritmi e programmi
Un metodo risolutivo che risolve un problema nella sua generalit si chiama algoritmo La soluzione di un problema descritta in un linguaggio di programmazione si chiama programma
Problemi - algoritmi 18

LL Caponetti Caponetti

Un semplice problema P1
Indichiamo con P1 il problema:

Consideriamo i seguenti numeri interi 10 300 521 5 43 Qual il valore massimo tra i 5 numeri interi?

LL Caponetti Caponetti

Problemi - algoritmi

19

Un semplice problema P2
Indichiamo con P2 il problema:

Consideriamo i seguenti numeri interi 70 25 40 Qual il valore massimo tra i 3 numeri interi?

LL Caponetti Caponetti

Problemi - algoritmi

20

Formulare il problema
I problemi P1 e P2 sono uguali o diversi ?

LL Caponetti Caponetti

Problemi - algoritmi

21

Formulare il problema
I problemi P1 e P2 sono uguali o diversi ?
E necessario per ogni problema capire - che cosa richiede il problema compito o funzione - quale informazione disponibile - dati di ingresso - e quali risultati - dati di uscita si devono ottenere

LL Caponetti Caponetti

Problemi - algoritmi

22

Problema P1 e P2
Problema P1
che cosa richiede il problema calcolare il massimo di 3 numeri interi dati di ingresso - 70, 25 40 dati di uscita numero intero rappresentante il valore massimo

LL Caponetti Caponetti

Problemi - algoritmi

23

Problema P1 e P2
Problema P2
che cosa richiede il problema calcolare il massimo di 5 numeri interi dati di ingresso - 100, 300, 521, 5, 43 dati di uscita numero intero rappresentante il valore massimo

LL Caponetti Caponetti

Problemi - algoritmi

24

Problemi P1 e P2
P1 e P2 sono istanze di un problema pi generale -- ricerca del massimo in un insieme di n valori interi i cui dati sono:

I N P U T

OUTPUT
Problemi - algoritmi 25

LL Caponetti Caponetti

Problemi P1 e P2
P1 e P2 sono istanze di un problema pi generale -- ricerca del massimo in un insieme di n valori interi i cui dati sono:

Nome descrizione
I N P U T OUTPUT

dominio
Insieme delle ennuple di numeri interi Insieme dei numeri interi >0 Insieme dei numeri interi
26

Elenco di n valori interi

n max

Numero dei valori interi Valore massimo tra i valori di E


Problemi - algoritmi

LL Caponetti Caponetti

Problemi P1 e P2

Relazione tra i dati di input e quelli di output nei problemi P1 e P2 il risultato max il valore che gode della propriet di essere il pi grande tra i dati di input

LL Caponetti Caponetti

Problemi - algoritmi

27

Formulazione generale dei problemi P1 e P2

Problema P Sia n un intero positivo >0 Qual il valore massimo tra i valori presenti in un elenco E di n numeri interi? Il problema P1 un caso particolare di P per n=5 ed E = { 10, 300, 521, 5, 43 } Il problema P2 un caso particolare di P per n=3 ed E = { 70, 25, 40 }

LL Caponetti Caponetti

Problemi - algoritmi

28

Un semplice problema P3
Indichiamo con P3 il problema:

Consideriamo un elenco di 5 numeri interi


70 25 40 10 15 A ciascun numero sia associata la posizione: 1, 2, che il numero occupa nellelenco a partire da sinistra

Quale posizione occupa il numero 10 ?


Problemi - algoritmi 29

LL Caponetti Caponetti

Un semplice problema P4
Indichiamo con P4 il problema:
Consideriamo un elenco di 12 numeri interi
70 25 40 1 50 100 2 10 200 20 15 30

A ciascun numero sia associata la posizione: 1, 2, che il numero occupa nellelenco a partire da sinistra

Quale posizione occupa il numero 21 ?

LL Caponetti Caponetti

Problemi - algoritmi

30

Capire il problema
I problemi P3 e P4 sono uguali o diversi ?

LL Caponetti Caponetti

Problemi - algoritmi

31

Capire il problema
I problemi P3 e P4 sono uguali o diversi ?
Anche in questo caso necessario descrivere - che cosa richiede il problema compito o funzione - quale informazione disponibile - dati di ingresso - e quali risultati - dati di uscita si devono ottenere

LL Caponetti Caponetti

Problemi - algoritmi

32

Soluzione dei problemi P1 e P2


Le soluzioni dei problemi P1 e P2 sono uguali o differenti?
Poich i due problemi sono casi particolari di un problema pi generale necessario inventare un procedimento risolutivo che risolva entrambi i casi

LL Caponetti Caponetti

Problemi - algoritmi

33

Esempio di soluzione
Descriviamo in modo informale una soluzione per i problemi P1 e P2:
1.Confronta il primo numero con il secondo e determina il valore massimo 2.Confronta il valore massimo attuale con il numero successivo e determina il valore massimo Il secondo punto deve essere ripetuto finch ci sono ancora numeri da analizzare

LL Caponetti Caponetti

Problemi - algoritmi

34

Problema P1

10

300

521

43

300 521 521 521


LL Caponetti Caponetti

Problemi - algoritmi

35

Fasi creativa ed esecutiva


Attivit creativa
Insieme delle attivit che chi risolve il problema svolge per arrivare alla descrizione di una soluzione La descrizione della soluzione algoritmo - deve utilizzare un formalismo noto a chi deve eseguirlo

Attivitit esecutiva
Esecuzione delle operazioni descritte nella soluzione Le operazioni sono eseguite dallesecutore (uomo oppure macchina)
LL Caponetti Caponetti

Problemi - algoritmi

36