Dal corso di Informatica della laurea triennale. Algoritmi. Algoritmi. Proprietà fondamentali degli algoritmi. Algoritmi.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Dal corso di Informatica della laurea triennale. Algoritmi. Algoritmi. Proprietà fondamentali degli algoritmi. Algoritmi."

Transcript

1 Dal corso di Informatica della laurea triennale Algoritmi Algoritmo: (dal nome del matematico persiano al- Khwarizmi, 825 d.c.) sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero finito di operazioni (Schneider & Gersting 2007) Informatica - Facoltà di Psicologia - Laurea magistrale 1 Algoritmi Algoritmi Il concetto di algoritmo non è limitato all informatica: i seguenti possono essere visti come algoritmi Ricette di cucina Istruzioni di montaggio Mappa con strade da seguire Esistenza di un algoritmo per risolvere un problema la risoluzione del problema può essere automatizzata Risoluzione automatizzata: implementata in hardware e software Con la conoscenza dei principi di base degli algoritmi possiamo: Avere un idea più chiara di come un computer può risolvere i problemi Creare nuovi, efficaci algoritmi Comprendere gli algoritmi scritti da altri Algoritmi Gli algoritmi menzionati precedentemente non sono abbastanza precisi da essere automatizzabili I computer non possiedono intuito Fanno ciò che diamo loro ordine di fare, non ciò che vorremmo che facciano Quando si scrive un algoritmo, bisogna tenere presenti: Capacità: il computer deve sapere quali operazioni deve svolgere e come Linguaggio: la descrizione dell algoritmo non può essere ambigua, cioè deve avere un unica possibile interpretazione Contesto: non dare nulla per scontato riguardo alle caratteristiche dell input o all ambiente in cui l algoritmo verrà eseguito Proprietà fondamentali degli algoritmi Input specificato: Input: dati inseriti dall esterno, usati dall algoritmo Da specificare: tipo, quantità, forma dell input (oppure specificare che non c è input alcuno) Output specificato: Il risultato atteso della computazione dell algoritmo Da specificare: tipo, quantità, forma dell output (oppure specificare che non c è output alcuno) 1

2 Proprietà fondamentali degli algoritmi Determinatezza: Da specificare: in un modo preciso e completo, la sequenza di operazioni che trasforma l input nell output; gestire anche eventuali situazioni di errore Così si può assicurare che esecuzioni diverse dell algoritmo con gli stessi dati di input diano lo stesso risultato Efficacia: Le operazioni dell algoritmo devono essere effettivamente eseguibili in modo meccanico (senza ulteriori informazioni non specificate, intuito, creatività) Proprietà fondamentali degli algoritmi Terminazione: L algoritmo deve terminare in un tempo finito (fornendo l output corretto o segnalando che non è possibile arrivare a una soluzione) Senza la proprietà di terminazione: durante l esecuzione dell algoritmo, l agente sta ancora cercando di arrivare a una soluzione oppure è bloccato in un ciclo infinito? Linguaggio Linguaggio Linguaggio naturale (come l italiano, l inglese, ): non è adatto per esprimere gli algoritmi Ambiguità: diverse interpretazioni delle stesse frasi Linguaggi formali (come i linguaggi di programmazione): il significato di ogni operazione è definito in un modo preciso, non ambiguo Un compromesso: pseudocodice Lo pseudocodice si compone di costrutti in italiano (o inglese) studiati per assomigliare a istruzioni di un linguaggio di programmazione In realtà non si eseguono le istruzioni di pseudocodice sul computer Altri esempi: diagrammi di flusso Linguaggio Linguaggio Esempi di pseudocodice: Esempi di pseudocodice: Somma Numeri da 1 a 100 Input: nessuno Output: la somma dei numeri da 1 a Imposta il valore di somma a 0 2. Imposta il valore di x a 1 3. Finché x è minore o uguale a 100 esegui i passaggi 4 e 5 4. Somma x al valore di somma 5. Somma 1 al valore di x 6. Stampare il valore di somma 7. Terminare 2

3 Linguaggio Esempio di diagrammi di flusso: Inizio Vediamo l esempio di un algoritmo di ordinamento chiamato selection sort Definisci Artista per estrarre il nome dei musicisti 2 Scegli un estremo di partenza e chiama la prima posizione 3 Chiama la posizione subito adiacente a Problema da risolvere: riordinare una serie di CD in ordine alfabetico in base al nome del gruppo (oppure cantante o compositore) L artista nella 4 posizione segue quello in? No C è ancora un 5 posto dopo la posizione? Sì Sì Scambia i CD nelle posizioni e Chiama la posizione che segue la corrente Anche se normalmente si usano linguaggi (semi-) formali per scrivere gli algoritmi, per semplicità usiamo l italiano Stop No 6 Dopo la posizione No c e ne sono almeno Sì altre due? Chiama la posizione che segue la corrente e quella immediatamente successiva ORDINA CD Input: una sequenza di CD Output: gli stessi CD ordinati alfabeticamente (in base al gruppo/cantante/ compositore) 1. Usare Artista per il nome del gruppo/cantante/compositore di un CD 2. Usare per la posizione sullo scaffale che corrisponde all inizio della sequenza di CD 3. Usare per la posizione immediatamente adiacente ad 4. Se l Artista del CD nella posizione segue alfabeticamente l Artista del CD nella posizione, scambiare i due CD e continuare; in caso contrario continuare 5. Se c è ancora almeno un posto dopo, considerarlo la nuova posizione e tornare all istruzione 4; in caso contrario continuare 6. Se ci sono due o più posti dopo, considerare quello immediatamente successivo come nuova posizione e quello ancora dopo come nuova posizione e saltare all istruzione 4; in caso contrario terminare Istruzione 1: Usare Artista per riferisi al nome del gruppo/cantante/compositore di un CD Definisce Artista: una abbreviazione per il nome del gruppo/cantante/compositore del CD Rende più facile la definizione dell istruzione 4 ma non è indispensabile Istruzione 2: Usare per la posizione sullo scaffale che corrisponde all inizio della sequenza di CD Definisce per fare riferimento a una posizione L istruzione specifica anche un significato iniziale per, cioè la posizione che corrisponde all inizio della sequenza di CD Istruzione 3: Usare per la posizione immediatamente adiacente ad Simile all istruzione 2 : Se l Artista del CD nella posizione segue alfabeticamente l Artista del CD nella posizione scambiare i due CD, poi continuare; in caso contrario continuare Questa è l istruzione che svolge la gran parte del lavoro. L istruzione confronta i nomi degli artisti che caratterizzano i CD in e e, se necessario, li scambia in modo che siano nell ordine corretto 3

4 : Se c è ancora almeno un posto dopo, considerarlo la nuova posizione e tornare all istruzione 4; in caso contrario continuare Ridefinisce in modo che il nome si riferisca alla posizione successiva nella sequenza, se esiste Con questa nuova definizione di è possibile eseguire nuovamente l istruzione 4, confrontando una diversa coppia di CD Istruzione 6: Se ci sono due o più posti dopo, considerare quello immediatamente successivo come nuova posizione e quello ancora dopo come nuova posizione e saltare all istruzione 4; in caso contrario terminare Arrivati a questa istruzione, il CD in precede alfabeticamente tutti i CD nelle posizioni successive Possiamo fare avanzare di una posizione e percorrere ancora tutti i CD, localizzando il CD che precede alfabeticamente tutti gli altri Quando non ci sono almeno due posti per definire le posizioni e e quindi fa riferimento alla penultima posizione tutti i CD sono stati ordinati e l algoritmo termina Ordina CD e le proprietà fondamentali degli algoritmi: Input/output specificato: vedi descrizione Input e Output Determinatezza: scritto in linguaggio naturale, ma con precisione Efficacia: le operazioni dell algoritmo sono semplici e facilmente eseguibili automaticamente Se la sequenza non esiste fisicamente, ma logicamente dentro il computer, le operazioni possono essere facilmente realizzabili dal computer Terminazione: Dato che il numero di posizioni è finito, anche il numero di coppie di posizioni (Alpha/) è finito. Più precisamente, indicando con N il numero di CD: Ciclo di istruzioni 4 e 5: può essere ripetuto al massimo N-1 volte Perché? La posizione di è incrementata ogni volta che l istruzione 5 viene eseguita Quando non può essere aumentato, usciamo dal ciclo e andiamo all istruzione 6 Ciclo di istruzioni 4, 5 e 6: sarà ripetuto N-1 volte Perché? La posizione di è incrementata ogni volta l istruzione 6 viene eseguita Quando fa riferimento alla posizione N-1, usciamo dal ciclo e terminiamo Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6 Passo 7 Passo 8 Istruzione 1 Istruzione 2 Istruzione 3 4

5 Passo 9 Passo 10 Passo 11 Passo 12 Passo 13 Passo 14 Passo 15 Passo 16 Istruzione 6 Passo 17 Passo 18 Passo 19 Passo 20 Passo 21 Passo 22 Passo 23 Passo 24 Istruzione 6 Istruzione 6 Tipi di istruzione Passo 25 Passo 26 Passo 27 Istruzione 6 Tre tipi di istruzioni: Istruzioni sequenziali: Eseguono singole attività ben definite Terminata l'attività, l'algoritmo passa all'istruzione successiva Normalmente: calcolo, ingresso, uscita Per esempio: istruzioni 1, 2 e 3 dell algoritmo Ordina CD Istruzioni iterative: Istruzioni di ciclo dell'algoritmo Indicano di non proseguire con l'istruzione successiva, ma di ripetere un blocco di istruzioni Per esempio: istruzioni 5 e 6 dell algoritmo Ordina CD specificano di eseguire un istruzione (istruzione 4) già eseguita in precedenza 5

6 Tipi di istruzione Inizio 1 2 Definisci Artista per estrarre il nome dei musicisti Scegli un estremo di partenza e chiama la prima posizione Diagramma di " flusso di Ordina CD Istruzioni condizionali: Istruzioni che pongono una domanda L'istruzione successiva è selezionata sulla base della risposta fornita alla domanda Per esempio: istruzioni 4, 5 e 6 dell algoritmo Ordina CD Si noti che un istruzione iterativa è normalmente anche condizionale (spesso questo tipo di istruzione viene chiamato semplicemente iterativo ) La condizione specifica in quali situazioni il ciclo deve essere ripetuto e in quali situazioni abbandonare il ciclo e continuare Stop 3 Chiama la posizione adiacente ad 4 L artista nella posizione segue quello in? No 5 C è ancora un posto dopo la posizione? No 6 Dopo la posizione No ce ne sono almeno altre due? Sì Sì Sì Scambia i CD nelle posizioni e Chiama la posizione che segue la corrente Chiama la posizione che segue la corrente e quella immediatamente successiva Pseudocodice di Ordina CD ORDINA CD Input: una sequenza di gruppi/cantanti/compositori Artista[1],, Artista[n] (dove n 2) Output: la stessa sequenza ordinata alfabeticamente Assegna il valore 1 a Assegna il valore 2 a Finché n-1 Finché n Se Artista[] > Artista[] allora Assegna il valore di Artista[] a Scambio Assegna il valore di Artista[] a Artista[] Assegna il valore di Scambio a Artista[] Assegna il valore +1 a e torna all istruzione 4 Assegna il valore +1 a, assegna il valore +2 a Istruzioni sequenziali: Per esempio: Assegna il valore 1 a Istruzioni iterative: Due istruzioni: Finché (while) Ripeti/finché (repeat/until) Finché (while): Finché la condizione è vera le operazioni all'interno del corpo del ciclo vengono ripetute Finché una condizione è vera (ripeti le seguenti istruzioni) istruzione 1 istruzione 2 istruzione n Se la condizione non diventa mai falsa, abbiamo un ciclo infinito (istruzione 1, istruzione 2,, istruzione n, istruzione 1, istruzione 2,, istruzione n, istruzione 1, istruzione 2, ) 6

7 un esempio chiedere il numero di matricola a dieci studenti Ripeti/finché (repeat/until): ripeti una serie di istruzioni fino a che la condizione diventa vera Assegna il valore 0 a contatore Finché contatore è minore di 10 Chiedi allo studente il numero di matricola Assegna il numero inserito a NumMatr[contatore] Incrementa contatore di 1 Ripeti (le seguenti istruzioni) istruzione 1 istruzione 2 istruzione n finché una condizione diventa vera Se la condizione non diventa mai vera, abbiamo un ciclo infinito (istruzione 1, istruzione 2,, istruzione n, istruzione 1, istruzione 2,, istruzione n, istruzione 1, istruzione 2, ) Finché (while): le istruzioni vengono eseguite zero o più volte Ripeti/finché (repeat/until): le istruzioni vengono eseguite almeno una volta Finché una condizione è vera istruzione 1 istruzione 2 istruzione n Ripeti istruzione 1 istruzione 2 istruzione n finché una condizione diventa vera Istruzioni condizionali: La più comune è se/allora/altrimenti (if/then/else) La parte per altrimenti può essere omessa (in questo caso altrimenti vuol dire continuare all istruzione successiva) Se una condizione è vera Allora istruzione 1 istruzione n Altrimenti istruzione 1 istruzione n Pseudocodice: esercizio Scrivere la versione in pseudocodice di un algoritmo che calcola la somma tra due numeri mediante la tecnica dell incremento ripetuto Cioè, x+y = x incrementato per y volte (ad esempio, 2+3 = ) Pseudocodice: esercizio Possibile soluzione Somma di due numeri Input: due numeri x e y Output: x+y Assegna il valore 1 a i Finché (i y) Incrementa x di 1 Incrementa i di 1 Provare a simulare l algoritmo con due input 7

8 Pseudocodice: esercizio Scrivere la versione in pseudocodice di un algoritmo che calcola il prodotto tra due numeri mediante la tecnica della somma ripetuta Tecnica della somma ripetuta: x*y = x sommato y volte (ad esempio, 2*3 = 2+2+2) Altri esempi: ricerca sequenziale Algoritmo di ricerca: Abbiamo un elenco di n nomi in un elenco telefonico Ricerca Nome Input: una sequenza di nomi Nome[1],, Nome[n], una sequenza di numeri Tel[1],, Tel[n], il nome da cercare NomeDaCercare Output: il numero di telefono che corrisponde a NomeDaCercare Assegna il valore 1 a i e il valore falso a Trovato Finché (Trovato = falso) e (i n) Se NomeDaCercare = Nome[i] allora Stampa Tel[i] Assegna il valore vero a Trovato Altrimenti Incrementa i di 1 Se (Trovato = falso) allora Stampa il messaggio Questo nome non è nell elenco Altri esempi: ricerca binaria Altri esempi: ricerca binaria L algoritmo precedente è poco efficiente: sfruttando il fatto che l elenco telefonico è ordinato, possiamo cercare più velocemente Algoritmo di ricerca binaria: Abbiamo un elenco di n nomi in un elenco telefonico I nomi sono ordinati Possiamo ottenere un algoritmo più veloce di Ricerca Nome: Per esempio, cerchiamo Mastroianni, Marcello Algoritmo di ricerca binaria: Abbiamo un elenco di n nomi in un elenco telefonico I nomi sono ordinati Possiamo ottenere un algoritmo più veloce di Ricerca Nome: Per esempio, cerchiamo Mastroianni, Marcello Elemento (1+15)/2 = Fellini, Federico Elenco di nomi Elenco di nomi Altri esempi: ricerca binaria Altri esempi: ricerca binaria Algoritmo di ricerca binaria: Abbiamo un elenco di n nomi in un elenco telefonico I nomi sono ordinati Possiamo ottenere un algoritmo più veloce di Ricerca Nome: Per esempio, cerchiamo Mastroianni, Marcello Elemento (9+15)/2 = Rossellini, Roberto Algoritmo di ricerca binaria: Abbiamo un elenco di n nomi in un elenco telefonico I nomi sono ordinati Possiamo ottenere un algoritmo più veloce di Ricerca Nome: Per esempio, cerchiamo Mastroianni, Marcello Elemento (9+11)/2 = Mastroianni, Marcello Elenco di nomi Elenco di nomi 8

9 Altri esempi: ricerca binaria Ricerca Binaria Nome Input: una sequenza ordinata di nomi Nome[1],, Nome[n], una sequenza di numeri Tel[1],, Tel[n], il nome da cercare NomeDaCercare Output: il numero di telefono che corrisponde a NomeDaCercare Assegna il valore 1 a Inizio, il valore n a Fine, e il valore falso a Trovato Finché (Trovato = falso) e (Inizio Fine) Assegna il valore della posizione centrale tra Inizio e Fine a m Se NomeDaCercare = Nome[m] allora Stampa Tel[i] Assegna il valore vero a Trovato Altrimenti Se NomeDaCercare < Nome[m] allora Assegna m-1 a Fine Altrimenti Assegna m+1 a Inizio Se (Trovato = falso) allora Stampa il messaggio Questo nome non è nell elenco Altri esempi: ricerca del massimo valore Algoritmo di ricerca del massimo valore: Per esempio, una lista di voti di un esame: quale studente ha la votazione più alta? Altri esempi: ricerca del massimo valore Algoritmo di ricerca del massimo valore: Per esempio, una lista di voti di un esame: quale studente ha la votazione più alta? Ricerca Massimo Valore Input: una sequenza di elementi A[1],, A[n] Output: l elemento massimo della sequenza A[1],, A[n] e la sua posizione Assegna il valore A[1] a MassVal, il valore 1 a posmassval, e il valore 2 a i Finché i n Se A[i]>MassVal allora Assegna il valore A[i] a MassVal Assegna il valore i a posmassval Incrementa i di 1 Stampa il valore di MassVal Stampa il valore di posmassval Altri esempi: ordinamento Algoritmo di ordinamento: Due esempi: Selection sort (ordinamento per selezione): Ordina CD è l algoritmo di ordinamento per selezione (applicato ai CD) Bubble sort: Prima coppia di elementi (posizioni 1 e 2): ordina gli elementi della coppia Seconda coppia di elementi (posizioni 2 e 3): ordina gli elementi della coppia Quando hai ordinato l ultima coppia di elementi, torna all inizio ma a questa iterazione abbiamo la garanzia che l ultimo elemento è il valore massimo, quindi non deve essere preso in considerazione Altri esempi: bubble sort Algoritmo di ordinamento: Bubble sort Bubble sort Input: una sequenza di elementi A[1],, A[n] Output: la stessa sequenza ordinata alfabeticamente Assegna il valore n a ultimo Finché ultimo>1 Assegna il valore 1 a i Finché i<(ultimo-1) Se (A[i]<A[i-1]) allora Assegna il valore A[i] a Scambio Assegna il valore A[i-1] a A[i] Assegna il valore Scambio a A[i-1] Incrementa i di 1 Decrementa ultimo di 1 Efficienza di un algoritmo Come si può dire che un algoritmo per risolvere (correttamente!) un problema è migliore di un altro? Facilità di comprensione ed eleganza Efficienza: l uso delle risorse da parte di un algoritmo Risorse: Tempo, in termini di numero di operazioni per ottenere il risultato o la soluzione di un problema Spazio, in termini di numero massimo di bit di informazioni che devono essere memorizzate durante l esecuzione dell algoritmo Normalmente consideriamo il caso peggiore Per esempio, nella ricerca sequenziale, il caso in cui la voce da trovare è nell ultima posizione nella sequenza 9

10 Efficienza di un algoritmo Efficienza di un algoritmo Algoritmi di ricerca: n = numero di elementi della sequenza ordinata Ricerca sequenziale: n confronti Numero di istruzioni eseguite: c*n, dove c è un fattore costante (il numero di istruzioni per ogni confronto) Il fattore c non è considerato importante nella classificazione degli algoritmi: ricerca sequenziale è un algoritmo di ordine n Ricerca binaria: log 2 n confronti Numero di istruzioni eseguite: c * log 2 n, dove c e c non sono necessariamente uguali Anche la base del logaritmo non è considerata importante: Ricerca binaria è un algoritmo di ordine log n Efficienza di un algoritmo Perché i fattori c e c non sono importanti per la classificazione dell efficienza degli algoritmi? Per c e c fissi, è sempre possibile trovare un valore N tale che, per ogni n N: cn > c log n Cioè, per n sufficientemente grande (quando la grandezza del problema n supera N) l algoritmo di ricerca binaria risulta sempre vincente, indipendentemente da c e c È vincente perché impiega meno passi per risolvere lo stesso problema Diciamo che l algoritmo di ricerca binaria è più efficiente dell algoritmo di ricerca sequenziale Efficienza di un algoritmo Algoritmi di ordinamento: Sia selection sort che bubble sort sono di ordine n 2 Esistono algoritmi per ordinamento di ordine n log n Algoritmi efficienti Intrattabilità e indecidibilità Ordine di un algoritmo: consideriamo il polinomiale massimo Per esempio, un algoritmo che esegue cn 2 + c n istruzioni è di ordine n 2 Algoritmi limitati polinomialmente: algoritmi di ordine n m per un m costante Questi algoritmi vengono chiamati efficienti Esistono dei problemi per cui non esistono algoritmi efficienti (problemi intrattabili) Per alcuni problemi, non conosciamo algoritmi efficienti, ma non sono necessariamente intrattabili: problemi NP-completi Per esempio: Il problema di trovare l insieme dei biglietti aerei più economici per visitare n città Il problema di trovare un insieme di prodotti di un negozio con prezzo totale di esattamente k euro Esistono dei problemi (definiti in un modo preciso, con obiettivi anche definiti in un modo preciso) per cui non può esistere una soluzione algoritmica (problemi indecidibili) 10

Cos è l informatica? Un esempio di algoritmo. Che cos è un algoritmo? Algoritmi e loro proprietà. non ambigue ed effettivamente calcolabili

Cos è l informatica? Un esempio di algoritmo. Che cos è un algoritmo? Algoritmi e loro proprietà. non ambigue ed effettivamente calcolabili Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli

Dettagli

Algoritmi e loro proprietà. Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio

Algoritmi e loro proprietà. Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione

Dettagli

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 7 Lezione 7 1 Algoritmi e loro proprietà Efficienza rispetto al tempo Efficienza rispetto allo spazio Efficienza degli algoritmi Una volta determinato un algoritmo

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 2-Iterazione 1 Prerequisiti Salto condizionato Salto incondizionato Espressione logica 2 1 Introduzione In alcuni casi si presenta la necessità di eseguire un ciclo, ossia

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

Algoritmi e diagrammi di flusso Classi seconde

Algoritmi e diagrammi di flusso Classi seconde Algoritmi e diagrammi di flusso Classi seconde Pablo Genova gallini.genova@gmail.com I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2017 2018 Approfondimento importante Tenendo presente

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni Sistemi di Elaborazione delle Informazioni Algoritmi e Programmi 1 Risoluzione di un problema Il procedimento di soluzione di un problema dovrebbe essere caratterizzato da: analisi del problema e identificazione

Dettagli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso

Dettagli

ALGORITMI E SOLUZIONI DI PROBLEMI

ALGORITMI E SOLUZIONI DI PROBLEMI ALGORITMI E SOLUZIONI DI PROBLEMI Il computer è una macchina complessa in grado di eseguire milioni di istruzioni al secondo, dotato di una memoria capace di contenere enormi quantità di dati, siano essi

Dettagli

Ad ogni problema computazionale possiamo associare una misura della sua complessità.

Ad ogni problema computazionale possiamo associare una misura della sua complessità. Problema computazionale: Descrizione dell input, Compito da svolgere. Esempio: SOMMA: INPUT: 2 numeri x e y, COMPITO: stampare x+y. Ad ogni problema computazionale possiamo associare una misura della sua

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Strutture di Controllo

Strutture di Controllo Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere

Dettagli

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 4 anno accademico 2015-2016 Mario Verdicchio Numeri primi Si definisce primo un numero intero maggiore di 1 che ha due soli divisori: se stesso e 1 Esempi di numeri primi:

Dettagli

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Progettazione di algoritmi e attributi Linguaggio

Dettagli

Progettazione di algoritmi e attributi

Progettazione di algoritmi e attributi Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2008/2009 Docente: ing. Salvatore

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3 Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

CdL in Medicina Veterinaria - STPA AA

CdL in Medicina Veterinaria - STPA AA CdL in Medicina Veterinaria - STPA AA 2007-08 Programmi e algoritmi I Calcolatori: cos hanno di speciale? 1 Elaborazione dell Informazione Dati, informazione e istruzioni Un esempio: Dr Rossi 328275456

Dettagli

Elementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing.

Elementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Elementi di Informatica Corso di Laurea in Ingegneria Biomedica aa 2003/2004 Ing. Antonio Coronato 1 Introduzione 2 Cos è l informatica Scienza della rappresentazione e della elaborazione (trasformazione)

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Algoritmi Introduzione L informatica è una

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena.

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena. I flow chart Informatica Generale 14/15 Scienze della comunicazione cristina gena cgena@di.unito.it http://www.di.unito.it/~cgena/teaching.html Diagrammi di flusso SAR Inizio del processo (Blocco di start)

Dettagli

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi

Dettagli

Istruzioni di controllo: SEQUENZA

Istruzioni di controllo: SEQUENZA Istruzioni di controllo: SEQUENZA Negli esempi visti in precedenza gli algoritmi sono stati descritti come sequenze di passi elementari del tipo Passo 1. azione 1 Passo 2. azione 2... Abbiamo utilizzato

Dettagli

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico ALGORITMI Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico Dati input Elaboratore elettronico Risultati Per risolvere un problema è necessario fornire una descrizione chiara e

Dettagli

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì

Dettagli

Informatica, Algoritmi, Linguaggi

Informatica, Algoritmi, Linguaggi Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo

Dettagli

Caratteristiche di un calcolatore elettronico

Caratteristiche di un calcolatore elettronico Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,

Dettagli

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi. Flow-chart Introduzione agli algoritmi e ai diagrammi a blocchi ugo.rinaldi@gmail.com 1 Sommario Fasi dello sviluppo di un programma Algoritmo Dati: Variabili e Costanti Le operazioni tipiche Diagramma

Dettagli

Introduzione all informatica

Introduzione all informatica Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell

Dettagli

Dall analisi alla codifica (1)

Dall analisi alla codifica (1) Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (1) Aprile 2010 Dall'analisi alla codifica (1) 1 Contenuti... Problemi e algoritmi comprensione del problema

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Università degli Studi di Brescia Elementi di Informatica e Programmazione Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica

Dettagli

Analisi strutturata 1

Analisi strutturata 1 Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Programmazione Strutturata

Programmazione Strutturata Programmazione Strutturata Problema: Spaghetti Code è un termine dispregiativo per quei programmi per computer che abbiano una struttura di controllo del flusso complessa e/o incomprensibile Ad esempio,

Dettagli

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione

Dettagli

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop Diagrammi di flusso Un metodo per rappresentare graficamente gli algoritmi. Input/ Output sotto programma Start predicato Elaborazione Stop La programmazione strutturata Un algoritmo è strutturato in blocchi

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di

Dettagli

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2010-11 Esempio: risolviamo le equazioni di secondo grado ax 2 + bx + c = 0 La formula risolutiva è: x= b±

Dettagli

Laboratorio di Calcolo di Aerodinamica: II Lezione

Laboratorio di Calcolo di Aerodinamica: II Lezione Ingegneria Aerospaziale a.a. 2016/17 Laboratorio di Calcolo di Aerodinamica: II Lezione Francesco Battista francesco.battista@uniroma1.it DIMA: Dipartimento di Ingegneria Meccanica e Aerospaziale Programma:

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Algoritmi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Algoritmi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Algoritmi Algoritmi classici Alcuni problemi si presentano con elevata frequenza e sono stati ampiamente studiati Ricerca di un elemento in un vettore

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Che cos è l Informatica?

Che cos è l Informatica? Che cos è l Informatica? Che cos è l Informatica? Non è facile da definire! Alcune affermazioni vere: L informatica è parente stretta della matematica Ha a che fare con il modo in cui risolviamo i problemi

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

Computer. Capitolo 2. 05/04/2012 continuazione 1

Computer. Capitolo 2. 05/04/2012 continuazione 1 Computer Capitolo 2 05/04/2012 continuazione 1 Le prestazioni del computer Velocità delle cpu, ossia numero d istruzioni eseguite nell unità di tempo; Dimensione delle RAM; Capacità e velocità in scrittura/

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:

Dettagli

Elaboratore Elettronico

Elaboratore Elettronico L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti

Dettagli

3. Programmi e algoritmi

3. Programmi e algoritmi 3. Programmi e algoritmi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides del corso «Fondamenti di Informatica» del Prof. Montessoro (Università degli Studi di Udine) Recall:

Dettagli

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione Informatica Generale Andrea Corradini 14 - Algoritmi: ordinamento per inserimento e ricorsione Sommario Un algoritmo iterativo: l'ordinamento per inserimento (insertion sort) La ricorsione: i numeri triangolari

Dettagli

Il flusso algoritmico di esecuzione

Il flusso algoritmico di esecuzione Il flusso algoritmico di esecuzione La conoscenza della sintassi di un linguaggio di programmazione è ovviamente solo il primo passo verso la risoluzione di problemi. Quando si intende eseguire un elaborazione,

Dettagli

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi 1 Cos è n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati n Un algoritmo è un metodo per la soluzione di un problema adatto

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un

Dettagli

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. 006-007 Definizione di Algoritmo Def.: Per Algoritmo si intende un elenco di istruzioni che specificano una serie

Dettagli

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione

Dettagli

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale Università degli Studi di Brescia INFORMATICA Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica e Industriale DIPARTIMENTO

Dettagli

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale

Efficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente! Qualche problema computazionale " Trova min " Selection sort! Pseudocodice per descrivere algoritmi " Variabili

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su dati in ingresso (input) per produrre uno

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Marco D. Santambrogio Ver. aggiornata al 9 O/obre 2010

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Marco D. Santambrogio Ver. aggiornata al 9 O/obre 2010 Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 9 O/obre 2010 Algoritmi Pseudocodice Diagramma di flusso Una prima introduzione al C Un primo programma Tipi di dato Strutture di controllo

Dettagli

Iterazione A. Ferrari

Iterazione A. Ferrari Iterazione A. Ferrari Iterazioni (cicli) L iterazione è una struttura che consente di ripetere più volte l esecuzione di un insieme di istruzioni. Due tipi di iterazione: iterazioni enumerative: consentono

Dettagli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere

Dettagli

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Concetti di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli