algoritmi

11
algoritmi algoritmi proprietà e proprietà e caratteristiche caratteristiche

description

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 - PowerPoint PPT Presentation

Transcript of algoritmi

  • algoritmipropriet e caratteristiche

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

  • descrizione degli algoritmicodice e pseudo-codiceusiamo pseudo-codice, useremo codice (Java)rapportata allesecutorepersona o macchina?se persona, adulto o bambino?se macchina, cosa capace di fare? leggibilit della descrizionefondamentale per operazioni di correzione, manutenzione, adattamento e riuso

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

  • pseudo-codiceinput, outputstart, stopassegnazione = testif()else

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

  • pseudo-codice/2ripetizione o ciclowhile()

    esempio: somma primi n interi positivistart input(n)somma = 0i = 0while(i < n)somma = somma + ii = i + 1output(somma)stop

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

  • loop infinitiuna classica causa del malfunzionamento del softwarees.: somma dei primi n disparii = 1j = 0somma = 0while(j < i) // errato!somma = somma + ii = i + 2j = j + 1

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

  • esecutorigli algoritmi vanno formulati tenendo conto delle capacit dei loro esecutoriun computer sa di norma eseguire le quattro operazioni, confronti fra numeri e alcune semplici operazioni logichesi possono concepire esecutori molto limitaties.: 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 + bc = atemp = bwhile(temp > 0)incrementa cdecrementa temp

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

  • leggibilit degli algoritmiqualit della descrizione degli algoritminon influenza correttezza ed efficienza!fondamentale per operazioni di correzione, manutenzione, adattamento e riusooltre il 50% del tempo di sviluppo del software dedicato alla correzione degli errorila manutenzione del software viene spesso eseguita da terzispesso il software deve essere modificato per tener conto di modifiche delle specificheil buon riuso del software alla base di una buona produttivit ed abbattimento costi

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

  • tecniche per la leggibilitindentazionenon tutte le righe del codice (o pseudo-codice) hanno inizio alla stessa colonnasi tiene conto della struttura dellalgoritmocommentiper motivare scelte non ovvie e in generale per documentare il softwareuso di nomi evocativiusare variabili con nomi significativisomma un nome migliore di xyz

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

  • es: max fra N numeriinput(N)// lettura Ninput(x)// lettura primo valoreletti = 1// conta quanti valori lettimax = x// max provvisorio!while(letti < N)input(x)// legge prossimoif(x > max)max = x// se grande aggiorna maxletti = letti + 1 // aggiorna contatoreoutput(max)// output risultatostop// termine

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

  • esempiogiochiamo ad alto-bassoquale 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