Obiettivi
Conoscere le strategie che permettono di
individuare le procedure risolutive dei problemi;
Conoscere il concetto di algoritmo e le sue
caratteristiche;
Saper rappresentare graficamente un algoritmo;
Conoscere il concetto di variabile;
Conoscere e saper utilizzare l’istruzione di
assegnazione;
Conoscere le strutture di controllo;
Indice
Analisi e risoluzione di un problema
Algoritmi
Algoritmo: definizione e caratteristiche
Come sviluppare un algoritmo
Variabili e istruzioni
Le variabili
Tipi di variabili
Istruzione di assegnazione
Alcuni tipi di assegnazione
Istruzioni di input e output
Utilizzo delle istruzioni
Indice
Rappresentazione grafica degli algoritmi
Formalismi di codifica
Simboli grafici
Rappresentazione grafica di un algoritmo
Strutture di controllo
Struttura di sequenza
Strutture di selezione: selezione semplice
Strutture di selezione: selezione multipla
Strutture di iterazione
Strutture di iterazione: a condizione iniziale
Indice
Strutture di iterazione: a condizione finale
Strutture di iterazione: confronto tra
While e Repeat
Strutture di iterazione: a contatore
Strutture di iterazione: riepilogo
Bibliografia
Exit
Exit
Menù
Menù
Analisi e risoluzione di un problema
Analisi e risoluzione di un problema
Per risolvere un problema bisogna seguire un procedimento
detto ANALISI che è composto da:
INTERPRETAZIONE dell’enunciato del problema;
INDIVIDUAZIONE delle informazioni importanti;
DESCRIZIONE del procedimento risolutivo;
ESECUZIONE delle operazioni descritte;
VERIFICA dei risultati ottenuti;
Analisi e risoluzione di un problema
PROBLEMA
PROBLEMA
VERIFICA
VERIFICA
DEI
DEI RISULTATI
RISULTATI
INTERPRETAZIONE
INTERPRETAZIONE
ESECUZIONE
ESECUZIONE
MODELLO
MODELLO
PROCEDIMENTO
PROCEDIMENTO
RISOLUTIVO
RISOLUTIVO
Exit
Exit
Algoritmi
Menù
Menù
Algoritmo: definizione e caratteristiche
Sequenza di azioni elementari per la risoluzione
di una classe di problemi:
GENERALE
FINITA
COMPLETA
NON AMBIGUA
ESEGUIBILE
Algoritmo: definizione e caratteristiche
GENERALE: deve risolvere una classe di problemi
e NON un SINGOLO problema;
FINITA: ogni istruzione deve essere eseguita
un numero di volte FINITO;
COMPLETA: deve contemplare TUTTI i casi
possibili del problema da risolvere;
Algoritmo: definizione e caratteristiche
NON AMBIGUA: ogni istruzione deve essere
definita in modo UNIVOCO
e PRECISO;
ESEGUIBILE: deve essere POSSIBILE eseguire
ogni istruzione in un tempo finito;
Algoritmo: definizione e caratteristiche
DATI
DATI INPUT
INPUT
ALGORITMO
DATI
DATI OUTPUT
OUTPUT
Come sviluppare un Algoritmo
Esempio di problema:
Calcolare l’area di un appezzamento di terreno
rettangolare di dimensioni 300m e 150m.
Dalla geometria ricaviamo il modello matematico
che risolve il problema…
Come sviluppare un Algoritmo
inizio
acquisire il dato 300
acquisire il dato 150
moltiplicare i due dati
fornire il risultato della moltiplicazione
fine
Abbiamo così descritto un algoritmo.
Come sviluppare un Algoritmo
Osserviamo che l’ algoritmo appena descritto
risolve solo un SINGOLO problema.
Infatti se volessimo calcolare l’area di un altro
rettangolo dovremmo scrivere un nuovo algoritmo.
È possibile scrivere un algoritmo che risolva una
CLASSE di problemi e non solo un singolo caso?
Come sviluppare un Algoritmo
Indichiamo con i simboli B e H le misure della
base e dell’altezza di un GENERICO
rettangolo e con A il loro prodotto.
L’algoritmo può essere così descritto…
Come sviluppare un Algoritmo
inizio
ricevi i valori di B e di H
moltiplica i due numeri e chiama A il risultato
comunica il valore di A
fine
Questo algoritmo è GENERALE.
Come sviluppare un Algoritmo
Dunque:
DATI
DATI INPUT
INPUT
ALGORITMO
DATI
DATI OUTPUT
OUTPUT
Che cosa sono i dati?:
Ricordate?