gli algoritmi. ogni giorno siamo chiamati a risolvere dei problemi, per es: decidere se...

23
Gli algoritmi Gli algoritmi

Upload: gianni-manzi

Post on 01-May-2015

226 views

Category:

Documents


8 download

TRANSCRIPT

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

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

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

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

• 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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

• 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

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

• 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

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

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

Esempio di pseuodocodifica

PROGRAMMA sommaINIZIO LEGGI (num1, num2) somma num1+num2 SCRIVI (somma)FINE