La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il primo algoritmo. problema Facciamo fare al computer il seguente lavoro: data una lista cartacea di numeri interi positivi che possono rappresentare.

Presentazioni simili


Presentazione sul tema: "Il primo algoritmo. problema Facciamo fare al computer il seguente lavoro: data una lista cartacea di numeri interi positivi che possono rappresentare."— Transcript della presentazione:

1 Il primo algoritmo

2 problema Facciamo fare al computer il seguente lavoro: data una lista cartacea di numeri interi positivi che possono rappresentare diversi dati, ad esempio supponiamo che siano i voti di tutti gli studenti di una classe determinare il voto medio della classe.

3 Come risolvere il problema ? La soluzione del precedente problema viene realizzata per mezzo di un procedimento di pensiero chiamato ALGORITMO Si studia come realizzare lalgoritmo per risolvere il problema dato Quindi si adatta lalgoritmo al computer Il computer esegue lalgoritmo Si ottiene la soluzione del problema

4 Algoritmo e metodologia di un algoritmo Anzitutto, prima di passare allazione vera e propria, bisogna riflettere un attimo per vedere se esiste una metodologia che ci possa aiutare nella soluzione del problema Esiste una metodologia generale che ci insegna a costruire algoritmi ? Che cosa è un algoritmo Che cosa è una metodologia di un algoritmo ? Una metodologia è un metaAlgoritmo, ossia un algoritmo di un algoritmo che ci insegna come costruire algoritmi.

5 Definizione di algoritmo Un algoritmo è un programma di un computer che calcola qualcosa È una sequenza finita di istruzioni, usate per il calcolo e lelaborazione dei dati È una lista di azioni, istruzioni ben definita per eseguire un compito È un insieme di fasi con un ordine preciso eseguite luno dopo laltra per fare un determinato lavoro È un insieme ordinato di step non ambigui, eseguibili, completabili in un tempo finito

6 Qualche osservazioni sulla definizione Si può pensare ad una condizione chi violi la definizione di algoritmo? Ad esempio esistono dei casi in cui la sequenza delle istruzioni non è finita ? il calcolo non possa terminare in un periodo di tempo finito ? La risposta è si. Può accadere che ci sia un blocco di istruzioni che vengano ripetute per sempre perché la condizione di uscita dalla iterazione non è mai soddisfatta (per un errore di programmazione) Pertanto anche se il numero delle istruzioni è finito, alcune di esse sono ripetute indefinitamente perché niente permette linterruzione del processo

7 Perché scrivere un algoritmo ? Per comandare il computer di fare qualcosa, bisogna scrivere un programma. Scrivere un programma significa dire al computer, passo dopo passo, esattamente che cosa deve fare. Il computer per fornire la soluzione ad un problema, esegue meccanicamente il programma, ossia ciascuna istruzione che gli viene fornita.

8 Significato di algoritmo Quando dite al computer che cosa deve fare, dovete pure decidere come deve farlo Ecco che, nel progettare il come, nasce lalgoritmo del computer Lalgoritmo è la tecnica fondamentale utilizzata per far si che un lavoro sia svolto dal computer.

9 Atteggiamento mentale per affrontare un algoritmo Per fare un algoritmo occorre spezzare, frantumare, analizzare, decomporre il lavoro da fare o il compito/attività da eseguire in tante piccole parti o semplici attività/istruzioni Lo scopo è quello di individuare delle fasi del lavoro e in quale sequenza devono essere eseguite per portare a termine il lavoro o compito assegnato Occorre creare una procedura di lavoro

10 Algoritmo dellalgoritmo: procedimento risolutivo Comprendere il problema Identificare i dati noti Identificare le operazioni Identificare le incognite del problema Costruire la soluzione del problema Stabilire quali sono le fasi da eseguire Stabilire la sequenza di queste fasi

11 Comprendere il problema Comprendere il problema: Analisi testuale per identificare le informazioni necessarie Saper riconoscere quali sono i dati esaminando i nomi del testo saper riconoscere quali sono le operazioni richieste dal problema esaminando i verbi del testo Intervistare gli esperti del dominio del problema per comprendere il significato dei dati e delle operazioni

12 I dati del problema Quelli noti di input Quelli incogniti di output Quelli che servono per fare operazioni intermedie di supporto al lavoro Tutti questi dati costituiscono le variabili e costanti del problema. A ciascuna di esse attribuiamo un nome, un tipo di dati (intero, booleano, stringa, carattere,…)

13 Le operazioni Dallanalisi del testo del problema, con lintervista degli esperti, con un procedimento di decomposizione funzionale si arriva a stabilire quali sono le fasi del lavoro e per ciascuna di esse quali sono le sue operazioni. Le operazioni dipendono dalla scelta fatta delle variabili, anche perché agiscono su di esse, e le modificano

14 Retroazione La scelta delle variabili influenza la scelta delle operazioni La scelta delle operazioni influenza la scelta delle variabili Cè chiaramente una retroazione e prima che si possa pervenire ad una scelta equilibrata e soddisfacente occorre fare più tentativi Daltra parte questo si riflette nella programmazione che è sicuramente iterativa e incrementale Scegli variabili Scegli operazioni

15 La cassetta degli strumenti La cassetta degli strumenti per lavorare su di un algoritmo contiene quattro strumenti principali: La sequenza di istruzioni Lalternativa La iterazione La ricorsione

16 Forma mentis di un creatore di algoritmi Lo sforzo mentale di soluzione del problema è collegato non solo allindividuazione dei dati e delle operazioni su di esse, ma anche soprattutto nel cercare di scoprire le iterazioni o le ricorsioni che facilitino la meccanizzazione della soluzione. Bisogna tenere la soluzione del problema ben stretta nel proprio pugno Questo risultato si ottiene ricercando ossessivamente blocchi di istruzioni ripetitive per applicargli literazione o quando necessita la ricorsione Quando tutto il liquido del ragionamento è strutturato con opportune iterazioni, riusciamo a contenerlo tutto e si riesce a ridurre lestensione di processi complessi Questi fenomeni complessi ristrutturati con literazione sono facilmente addomesticabili e sono così trasportabili su di un computer per essere meccanizzati.

17 La tecnica dellalgoritmo Lutilizzo di blocchi di istruzioni ripetitive influenza, a sua volta, la scelta delle variabili e per contraccolpo anche la scelta delle operazioni Ne consegue che la tecnica più importante nel costruire un algoritmo è luso dei costrutti di iterazione e di ricorsione

18 Ragionamenti intuitivi mentali Nellideare un algoritmo torna utile anche pensare ai ragionamenti intuitivi che facciamo mentalmente per risolvere alcuni problemi Talvolta la costruzione di un algoritmo si può avvalere di questi ragionamenti Si tratta proprio di rendere espliciti questi ragionamenti renderli concreti ancorandoli con i costrutti dellalgoritmo

19 Costruiamo il primo algoritmo Supportati da questo bagaglio di strumenti e di suggerimenti possiamo cimentarci nella costruzione del nostro primo algoritmo Per fare questo ci atteniamo alla sequenza di fasi che emergono dallalgoritmo dellalgoritmo Applichiamo questo procedimento risolutivo al problema del calcolo della media di una lista di numeri che abbiamo enunciato allinizio della presentazione

20 Prepariamo tutti i materiali del problema: dati in input Anzitutto ci occorre la lista dei numeri Abbiamo la lista cartacea allegata, sotto la forma di una tabella Di questa tabella lanalisi testuale del testo del problema ci dice che ci occorre solo la colonna dei voti La colonna dei voti sono i dati noti, ossia linput allalgoritmo

21 Analisi testuale: dati di ouptut In questo esempio, essendo il testo del problema molto breve e semplice, è facile ricavare quali sono i dati incogniti, ossia in output Il voto medio della classe data una lista cartacea di numeri interi positivi che possono rappresentare diversi dati, ad esempio supponiamo che siano i voti di tutti gli studenti di una classe determinare il voto medio della classe.

22 Intervistare gli esperti Fare una media di numeri è il lavoro da eseguire Intervistiamo un esperto del dominio del problema, un matematico statistico. Egli ci dice che loperazione della media è: Quindi dobbiamo fare due operazioni La somma di tutti i voti da 1 a al numero complessivo dei voti N Dividere questa somma per il numero complessivo dei voti N

23 Le operazioni In questo caso, determinata la soluzione del problema con una formula matematica, ne consegue che le operazioni da eseguire sono due operazioni aritmetiche: Somma Divisione Gli operandi (i dati) della somma sono i singoli valori dei voti Gli operandi ( i dati) della divisione sono la somma totale dei voti e il numero complessivo dei voti

24 La fasi dellalgoritmo somma Possiamo individuare due fasi di lavoro Sommatoria di tutti i voti Calcolo della media matematica della sommatoria La prima fase è unattività ripetitiva Qui si può vedere quale è l ragionamento intuitivo mentale Nel caso in cui noi facciamo a memoria questo calcolo esplicitando la nostra attività: Dedichiamo una cella della nostra memoria Sommiamo il primo numero a questa zona di memoria Continuiamo a sommare i numeri successivi alla medesima cella di memoria finchè tutti i numeri sono terminati Contiamo quanti sono i numeri sommati Alla fine dividiamo la somma complessiva per il numero complessivo dei numeri

25 Revisione delle operazioni 1. Somma dei voti 2. Conteggio del numero dei voti 3. Divisione della somma per il conteggio del numero dei voti Le prime due operazioni sono ripetitive ed avvengono nella prima fase dellalgoritmo La terzo operazione è ununica istruzione che viene eseguita in una seconda fase del lavoro,al termina della prima fase

26 Stesura dellalgoritmo Si legge un voto alla volta Si incrementa una sommatoria parziale Si incrementa il contatore dei numeri Si ripete questo blocco di istruzioni finchè ci sono numeri nella lista cartacea Quando i numeri sono terminati la sommatoria parziale è la sommatoria S di tutti i voti della lista Il contatore è la somma N del numero di tutti i voti Si divide la sommatoria totale per il numero totale dei voti N e si ottiene media=S/N il risultato desiderato, ossia la media dei voti

27 Soluzione alternativa Avremmo anche potuto caricare tutti i voti della lista ciascuno in una sua area di memoria Quindi avremmo potuto fare ununica istruzione di somma sommando contemporanemente tutti i numeri Contare il totale dei numeri della lista cartacea Ed infine calcolare la media dei voti come prima Tuttavia questa seconda soluzione non comporta lutilizzo della iterazione e ci piace di meno perché loperazione di somma cambia al variare del numero dei voti da sommare Invece il sistema iterativo non muta con il numero dei voti da sommare ed è quindi preferibile al precedente metodo

28 Quale è la soluzione di algoritmo preferibile ? Quando per fare un algoritmo ho diverse possibilità Occorre scegliere quelle che non devo cambiare al mutare di dati nozionistici, quali il numero dei dati o il valore di questi dati Le soluzioni che utilizzano blocchi di istruzioni ripetitivi con lausilio di costrutti tecnici quali iterazione e ricorsione sono particolarmente simpatici perché resistono alle modifiche indotte dal mutato ambiente nozionistico Inoltre queste soluzioni sono preferibili, come già detto, perché spesso sono le uniche a consentire di dominare il liquido e sfuggente ragionamento della nostra mente

29 Per concretizzare lalgoritmo è utile un disegno (il flowchart) Linizio e la fine dellalgoritmo lo rappresentiamo con una forma geometrica ovale Unoperazione di input e di output con un parallelogrammo Unoperazione interna con un rettangolo Una domanda con un rombo Il collegamento tra queste forme geometriche tramite frecce orientate che rappresentano il verso della sequenza delle istruzioni Inizio/fine Input/output domanda calcolo

30 Le variabili del nostro algoritmo Leggiamo dalla lista cartacea un numero alla volta Occorre una cella di memoria per memorizzare il numero letto, chiamiamola numero Occorre una cella di memoria per memorizzare la sommatoria parziale, chiamiamola somma Occorre una cella per calcolare il numero dei voti, chiamiamola contaVoti Occorre una cella di memoria per calcolare la media dei voti, chiamiamola media Occorre individuare un costrutto di iterazione

31 Il flowchart della media dei voti MediaVoti Leggo voto somma= somma + voto contaVoti=contaVoti+1 altri voti ? media=somma/contaVotiscrivi media fine si

32 Scrittura dellalgoritmo in pseudoItaliano MediaVoti ripeti finchè ci sono voti nella lista leggi voto aggiungi voto a somma Incrementa di uno contaVoti dividi somma per contaVoti ed assegna il risultato a media scrivi media fine

33 Scrittura dellalgoritmo in un linguaggio di programmazione ( C language ) #include int voto; int somma; int contaVoti; void calcolaMedia(){ numero=0; somma=0; contaVoti=0; while (numero!=99999){ printf(digita il numero, se non ci sono altri numeri digita 99999); scanf(%d,&numero); if (numero is not numeric) continue; somma=somma+numero; contaVoti=contaVoti+1; } media=somma/contaVoti; printf(la media dei voti =,%d,media); } main() { calcolaMedia(); }

34 Modi di scrittura di un algoritmo Ci sono diversi modi per scrivere un algoritmo: Un disegno con il flowchart Un linguaggio naturale (pseudo inglese/italiano…) Un linguaggio di programmazione In questo caso occorre aggiungere degli elementi di dettaglio affichè lalgoritmo sia eseguibile dal computer Definizione di variabili Azzeramento di variabili Un costrutto per literazione da scegliere tra quelli disponibili nel linguaggio di programmazione usato Una condizione per controllare luscita dalliterazione Delle istruzioni per la lettura e la scrittura dei dati

35 Fine della prima lezione sugli algoritmi Al- Khwarizmi


Scaricare ppt "Il primo algoritmo. problema Facciamo fare al computer il seguente lavoro: data una lista cartacea di numeri interi positivi che possono rappresentare."

Presentazioni simili


Annunci Google