Algoritmi proprietà e caratteristiche. ottobre 2002(c) Fabrizio d'Amore, IGEA 02-032 descrizione degli algoritmi codice e pseudo-codice codice e pseudo-codice.

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

I Linguaggi di programmazione
INFORMATICA Altre Istruzioni di I/O
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Linguaggi algoritmici
Classe III A A.s – 2010 Programma di Informatica
Linguaggio C++ Selezione.
Classe III A A.s – 2011 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
PROGRAMMARE IN PASCAL (le basi)
PHP.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Metodologie di Programmazione = decomposizione basata su astrazioni
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Informatica? Scienza della rappresentazione e dell’elaborazione dell’informazione ovvero Studio degli algoritmi che descrivono e trasformano l’informazione.
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Il Linguaggio Macchina
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Strutture di controllo nel C
Strutture di controllo in C -- Flow Chart --
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
CAPITOLO 6.
Fondamenti di Informatica Algoritmi
Elementi di Informatica
Elementi di Informatica
Dall’algoritmo al programma.
INFORMATICA MATTEO CRISTANI.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
PROGRAMMAZIONE: linguaggi
Radix-Sort(A,d) // A[i] = cd...c2c1
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Programmazione di Calcolatori
Programmazione di Calcolatori
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
14 marzo 2002 Avvisi:.
BIOINFO3 - Lezione 221 Listruzione IF-ELSE prevede un secondo blocco di istruzioni da eseguire in alternativa al primo nel caso la condizione sia falsa.
Capitolo 4 (Deitel) Le strutture di controllo in C
Algoritmo per la generazione dei primi 20 numeri dispari Autore: Francesco Russo matr
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
DIVERTIRSI CON SCRATCH
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Il ciclo while.  Permette di ripetere un blocco di istruzioni fino a quando non si verifica un determinato evento  Il ciclo while può essere realizzato.
Rappresentazione degli algoritmi
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Fondamenti di Informatica L- A Alcune considerazioni sul progetto di soluzioni software 12.
Programmazione dei Calcolatori Elettronici
Transcript della presentazione:

algoritmi proprietà e caratteristiche

ottobre 2002(c) Fabrizio d'Amore, IGEA descrizione degli algoritmi codice e pseudo-codice codice e pseudo-codice usiamo pseudo-codice, useremo codice (Java) usiamo pseudo-codice, useremo codice (Java) rapportata allesecutore rapportata allesecutore persona o macchina? persona o macchina? se persona, adulto o bambino? se persona, adulto o bambino? se macchina, cosa è capace di fare? se macchina, cosa è capace di fare? leggibilità della descrizione leggibilità della descrizione fondamentale per operazioni di correzione, manutenzione, adattamento e riuso fondamentale per operazioni di correzione, manutenzione, adattamento e riuso

ottobre 2002(c) Fabrizio d'Amore, IGEA pseudo-codice input, output input, output start, stop start, stop assegnazione assegnazione = = test testif(<condizione>) else

ottobre 2002(c) Fabrizio d'Amore, IGEA pseudo-codice/2 ripetizione o ciclo ripetizione o ciclowhile(<condizione>) esempio: somma primi n interi positivi esempio: somma primi n interi positivistartinput(n) somma = 0 i = 0 while(i < n) somma = somma + i i = i + 1 output(somma)stop

ottobre 2002(c) Fabrizio d'Amore, IGEA loop infiniti una classica causa del malfunzionamento del software una classica causa del malfunzionamento del software es.: somma dei primi n dispari 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

ottobre 2002(c) Fabrizio d'Amore, IGEA esecutori gli algoritmi vanno formulati tenendo conto delle capacità dei loro 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 un computer sa di norma eseguire le quattro operazioni, confronti fra numeri e alcune semplici operazioni logiche si possono concepire esecutori molto limitati si possono concepire esecutori molto limitati es.: capacità di incrementare/decrementare numeri (una unità alla volta) e di confrontare un numero con zero es.: capacità di incrementare/decrementare numeri (una unità alla volta) e di confrontare un numero con zero è meno potente? è meno potente?

ottobre 2002(c) Fabrizio d'Amore, IGEA somma a + b 1. c = a 2. temp = b 3. while(temp > 0) incrementa c decrementa temp

ottobre 2002(c) Fabrizio d'Amore, IGEA leggibilità degli algoritmi qualità della descrizione degli algoritmi qualità della descrizione degli algoritmi non influenza correttezza ed efficienza! non influenza correttezza ed efficienza! fondamentale per operazioni di correzione, manutenzione, adattamento e riuso fondamentale per operazioni di correzione, manutenzione, adattamento e riuso oltre il 50% del tempo di sviluppo del software è dedicato alla correzione degli errori oltre il 50% del tempo di sviluppo del software è dedicato alla correzione degli errori la manutenzione del software viene spesso eseguita da terzi la manutenzione del software viene spesso eseguita da terzi spesso il software deve essere modificato per tener conto di modifiche delle specifiche 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 il buon riuso del software è alla base di una buona produttività ed abbattimento costi

ottobre 2002(c) Fabrizio d'Amore, IGEA tecniche per la leggibilità indentazione indentazione non tutte le righe del codice (o pseudo-codice) hanno inizio alla stessa colonna non tutte le righe del codice (o pseudo-codice) hanno inizio alla stessa colonna si tiene conto della struttura dellalgoritmo si tiene conto della struttura dellalgoritmo commenti commenti per motivare scelte non ovvie e in generale per documentare il software per motivare scelte non ovvie e in generale per documentare il software uso di nomi evocativi uso di nomi evocativi usare variabili con nomi significativi usare variabili con nomi significativi somma è un nome migliore di xyz somma è un nome migliore di xyz

ottobre 2002(c) Fabrizio d'Amore, IGEA 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

ottobre 2002(c) Fabrizio d'Amore, IGEA esempio giochiamo ad alto-basso giochiamo ad alto-basso quale algoritmo scegliere? quale algoritmo scegliere? cè differenza concettuale con la ricerca tabellare? 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!) es., ricerca su un elenco telefonico: supponendo 1ms per ogni controllo, come fa info412 a controllare oltre 10 milioni di numeri? (1000 secondi!)