algoritmi
Download
Skip this Video
Download Presentation
algoritmi

Loading in 2 Seconds...

play fullscreen
1 / 11

algoritmi - PowerPoint PPT Presentation


  • 164 Views
  • Uploaded on

algoritmi. proprietà e caratteristiche. descrizione degli algoritmi. codice e pseudo-codice usiamo pseudo-codice, useremo codice (Java) rapportata all’esecutore persona o macchina? se persona, adulto o bambino? se macchina, cosa è capace di fare? leggibilità della descrizione

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' algoritmi' - ramiro


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
algoritmi

algoritmi

proprietà e caratteristiche

descrizione degli algoritmi
descrizione degli algoritmi
  • codice e pseudo-codice
    • usiamo pseudo-codice, useremo codice (Java)
  • rapportata all’esecutore
    • persona o macchina?
    • se persona, adulto o bambino?
    • se macchina, cosa è capace di fare?
  • leggibilità della descrizione
    • fondamentale per operazioni di correzione, manutenzione, adattamento e riuso

(c) Fabrizio d\'Amore, IGEA 02-03

pseudo codice
pseudo-codice
  • input, output
  • start, stop
  • assegnazione

<variabile> = <risultato di una espressione>

  • test

if(<condizione>)

<istruzioni se condizione vera>

else

<istruzioni se condizione falsa>

(c) Fabrizio d\'Amore, IGEA 02-03

pseudo codice 2
pseudo-codice/2
  • ripetizione o ciclo

while(<condizione>)

<istruzioni da ripetere finché condizione è vera>

  • esempio: somma primi n interi positivi

start

input(n)

somma = 0

i = 0

while(i < n)

somma = somma + i

i = i + 1

output(somma)

stop

(c) Fabrizio d\'Amore, IGEA 02-03

loop infiniti
loop infiniti
  • una classica causa del malfunzionamento del software
  • es.: somma dei primi n dispari

i = 1

j = 0

somma = 0

while(j < i) // errato!

somma = somma + i

i = i + 2

j = j + 1

(c) Fabrizio d\'Amore, IGEA 02-03

esecutori
esecutori
  • gli algoritmi vanno formulati tenendo conto delle capacità dei loro esecutori
    • un computer sa di norma eseguire le quattro operazioni, confronti fra numeri e alcune semplici operazioni logiche
  • si possono concepire esecutori molto limitati
    • es.: capacità di incrementare/decrementare numeri (una unità alla volta) e di confrontare un numero con zero
    • è meno “potente”?

(c) Fabrizio d\'Amore, IGEA 02-03

somma a b
somma a + b
  • c = a
  • temp = b
  • while(temp > 0)

incrementa c

decrementa temp

(c) Fabrizio d\'Amore, IGEA 02-03

leggibilit degli algoritmi
leggibilità degli algoritmi
  • qualità della descrizione degli algoritmi
    • non influenza correttezza ed efficienza!
  • fondamentale per operazioni di correzione, manutenzione, adattamento e riuso
    • oltre il 50% del tempo di sviluppo del software è dedicato alla correzione degli errori
    • la manutenzione del software viene spesso eseguita da terzi
    • spesso il software deve essere modificato per tener conto di modifiche delle specifiche
    • il buon riuso del software è alla base di una buona produttività ed abbattimento costi

(c) Fabrizio d\'Amore, IGEA 02-03

tecniche per la leggibilit
tecniche per la leggibilità
  • indentazione
    • non tutte le righe del codice (o pseudo-codice) hanno inizio alla stessa colonna
    • si tiene conto della “struttura” dell’algoritmo
  • commenti
    • per motivare scelte non ovvie e in generale per documentare il software
  • uso di nomi evocativi
    • usare variabili con nomi significativi
    • somma è un nome migliore di xyz

(c) Fabrizio d\'Amore, IGEA 02-03

es max fra n numeri
es: max fra N numeri

input(N) // lettura N

input(x) // lettura primo valore

letti = 1 // conta quanti valori letti

max = x // max provvisorio!

while(letti < N)

input(x) // legge prossimo

if(x > max)

max = x // se grande aggiorna max

letti = letti + 1 // aggiorna contatore

output(max) // output risultato

stop // termine

(c) Fabrizio d\'Amore, IGEA 02-03

esempio
esempio
  • giochiamo ad “alto-basso”
    • quale algoritmo scegliere?
  • c’è differenza concettuale con la ricerca tabellare?
    • es., ricerca su un elenco telefonico: supponendo 1ms per ogni controllo, come fa info412 a controllare oltre 10 milioni di numeri? (1000 secondi!)

(c) Fabrizio d\'Amore, IGEA 02-03

ad