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?