Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
LL Caponetti Caponetti
LL Caponetti Caponetti
Problemi - algoritmi
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
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
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
Problemi - algoritmi
13
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
n max
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
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:
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
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
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
Problemi - algoritmi
35
Attivitit esecutiva
Esecuzione delle operazioni descritte nella soluzione Le operazioni sono eseguite dallesecutore (uomo oppure macchina)
LL Caponetti Caponetti
Problemi - algoritmi
36