Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se...
-
Upload
gianni-manzi -
Category
Documents
-
view
226 -
download
8
Transcript of Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se...
![Page 1: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/1.jpg)
Gli algoritmiGli algoritmiGli algoritmiGli algoritmi
![Page 2: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/2.jpg)
Ogni giorno siamo chiamati a risolvere dei problemi, per es:• Decidere se riconciliarci con l’amico con
cui abbiamo litigato;• Calcolare l’area di un rettangolo, note la
base e l’altezza;• Stabilire quale squadra di calcio vincerà
il campionato, ecc.Noi cercheremo in questa sede di
esaminare soltanto i problemi del secondo tipo, poiché solo tali problemi sono risolvibili mediante algoritmi
![Page 3: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/3.jpg)
Cos’e’ un Algoritmo??
![Page 4: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/4.jpg)
• E’ una sequenza finita di passi (istruzioni), che devono essere eseguiti secondo un ordine prefissato per individuare la soluzione del quesito posto
![Page 5: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/5.jpg)
Quando dobbiamo risolvere un problema è necessario individuare:
Chi lo risolve;Quali risorse sono necessarie;Qual è il risultato che si vuole
ottenere
![Page 6: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/6.jpg)
Es:lavaggio della biancheria
Chi risolve questo problema è senz’altro
la lavatrice:
![Page 7: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/7.jpg)
Le risorse necessarie sono:i panni, il detersivo, l’ammorbidente, eventualmente la candeggina.Il risultato che dobbiamo ottenere sono i panni puliti.
![Page 8: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/8.jpg)
• E’ però necessario analizzare prima il problema e poi trovare una strategia per risolverlo.
• Mentre la lavatrice può essere utilizzata solo per lavare i panni, il COMPUTER è in grado di risolvere problemi di natura diversa.
![Page 9: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/9.jpg)
Cos’è il COMPUTER?
E’ un sistema di elaborazione che trasforma le informazioni che riceve in ingresso nei risultati che vogliamo ottenere
computerDati di input
Dati di output
![Page 10: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/10.jpg)
Caratteristiche dell’algoritmo
L’algoritmo deve essere:Finito: composto da un numero finito di passiDeterministico: a fronte degli stessi dati in
input deve produrre gli stessi risultatiNon ambiguo: i passi che lo compongono
devono essere interpretati in modo univoco dall’esecutore
Generale: deve fornire la soluzione per tutti i problemi appartenenti ad una certa classe
![Page 11: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/11.jpg)
Componenti di un algoritmo
DATI :sono gli oggetti su cui dobbiamo operare
ISTRUZIONI: sono le attività che devono essere svolte
![Page 12: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/12.jpg)
I dati
Ad ogni dato è associato un nome che lo identifica in modo univoco (es. lato, codice, imposta, ecc).
I dati possono essere classificati secondo il modo in cui interagiscono con l’elaboratore:
• Input (forniti dall’esterno, es. prezzo, quantità, aliquota)
• Output (comunicati all’esterno, es. totale fattura)
• Lavoro (dati di lavoro, es. IVA).
![Page 13: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/13.jpg)
I dati a seconda degli oggetti che rappresentano, possono essere:
Numerici
Interi (es. numero degli studenti)
Reali (es.temperature)
Alfanumerici o stringhe
(es. codice fiscale, indirizzo, numero di telefono)
![Page 14: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/14.jpg)
In base alla possibilità di cambiare il valore durante
l’esecuzione dell’algoritmo, distinguiamo:
• Costanti, il cui valore rimane immutato nel tempo
• (es.aliquota IVA);
• Variabili, il cui valore può cambiare nel tempo
(es. prezzo di un prodotto)
![Page 15: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/15.jpg)
Le istruzioniAnalizziamo i tre tipi di istruzioni fondamentali:• Lettura: attraverso la quale si assegna ad
una variabile un valore tramite digitazione sulla tastiera del PC;
• Scrittura:permette di visualizzare tramite video o supporto cartaceo, un messaggio o il valore di una variabile;
• Assegnazione:permette di attribuire un valore ad una variabile.
(Si utilizza il simbolo )
![Page 16: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/16.jpg)
Rappresentazione degli algoritmi
• Diagramma a blocchi o di flusso o Flow-chart:
è il metodo più usato e si basa sull’uso di simboli a cui corrispondono delle precise operazioni.
• Pseudocodifica : utilizza un linguaggio speciale per descrivere le istruzioni da eseguire.
![Page 17: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/17.jpg)
Diagramma di flusso
Ogni diagramma inizia con :
E termina con
INIZIO
FINE
![Page 18: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/18.jpg)
• Il simbolo seguente si utilizza per indicare un’ operazione che si definisce
un’assegnazione per es: importo = prezzo * quantità
Importo prezzo* quantità
![Page 19: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/19.jpg)
Il simbolo:indica un’operazione di lettura,( es: leggi il valore dell’importo)Mentre il simbolo:
leggi importoI
scrivi importo
indica un’operazione di scrittura,
( es: scrivi il valore dell’importo)
O
![Page 20: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/20.jpg)
• Infine abbiamo il rombo che indica una condizione,
es. se il prezzo è > a 50 € si applica il 5% di sconto, altrimenti del 2%.
prezzo>50
verofalso
![Page 21: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/21.jpg)
Ogni simbolo è collegato al successivo attraverso una freccia che indica il flusso delle operazioni;
Ogni diagramma ha un solo inizio e una sola fine.
![Page 22: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/22.jpg)
Es. di diagramma di flusso per il calcolo della somma di due numeri
inizio
Leggi num1, num2
Somma num1+num2
Scrivi somma
fine
![Page 23: Gli algoritmi. Ogni giorno siamo chiamati a risolvere dei problemi, per es: Decidere se riconciliarci con lamico con cui abbiamo litigato; Calcolare larea.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb59497959361e8c5887/html5/thumbnails/23.jpg)
Esempio di pseuodocodifica
PROGRAMMA sommaINIZIO LEGGI (num1, num2) somma num1+num2 SCRIVI (somma)FINE