Chi sono? Come contattarmi? Introduzione ai Diagrammi di Flusso

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Chi sono? Come contattarmi? Introduzione ai Diagrammi di Flusso"

Transcript

1 Introduzione ai Diagrammi di Flusso Introduzione alla Programm e JavaScript Chi sono? Come contattarmi? Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino Corso Svizzera, 185 I Torino (ITALY) baldoni@di.unito.it URL: Tel.: Fax.: Pagina del corso: Sono nato a Torino nel 1968, nel febbraio 1993 mi sono laureato con lode in Scienze dell Inform e nel febbraio 1998 sono diventato Dottore in Ricerca in Informatica. Dal luglio 1999 sono ricercatore in Informatica presso il Dipartimento di Informatica dell Università degli Studi di Torino. Introduzione ai Diagrammi di Flusso Obiettivi di questo corso Introduzione alla programm: Cos è un algoritmo Cos è un programma Diagrammi di flusso Concetto di variabile Linguaggi di programm Interpreti, compilatori Introduzione a JavaScript (client-side): Core language Oggetti Document Object Model (DOM) Introduzione ai Diagrammi di Flusso 3 Gli Algoritmi Un algoritmo è una sequenza di passi che sono necessari per risolvere un determinato problema: una successione finita di istruzioni che definiscono le operazioni da eseguire sui dati assegnati, per produrre risultati. Ogni oper definisce una compiuta sui dati d ingresso per produrre dati in uscita Dati di Input Matteo Marco Giovanni Alberto Luisa Carlo Cristina Algoritmo di Ordinamento Risultato Alberto Carlo Cristina Giovanni Luisa Matteo Marco Introduzione ai Diagrammi di Flusso 4 I Programmi Un programma è la traduzione in un determinato linguaggio di programm dell algoritmo risolutivo del problema in esame. Scrivere programmi Analisi del problema da risolvere (dati li, risultati attesi, ecc.) Pascal program ordina (input, output); begin end. Java class ordinamenti ( ) { } Sviluppo dell algoritmo come sequenza di passi che trasformi i dati li nei risultati desiderati C/C++ void ordina ( ) { } JavaScript function ordina ( ) { } Codifica dell algoritmo in un linguaggio di programm e altri ancora Introduzione ai Diagrammi di Flusso 5 Introduzione ai Diagrammi di Flusso 6 1

2 Esempio: il calcolo del M.C.D. vuole definire un algoritmo per il calcolo del Massimo Comun Divisore (M.C.D.) tra due numeri interi non negativi Es.: M.C.D. (0, 1) = 4 M.C.D. (7, 1) = 7 M.C.D. (5, 9) = 1 M.C.D. (0, 6) = 6 Esempio: il calcolo del M.C.D. Proprietà di Euclide (300 a.c.): ognuno dei divisori comuni di due numeri a e b è contemporaneamente divisore sia di a e b, sia del resto r del quoziente di a con b se questo non è nullo: M.C.D. (a, b) = M.C.D. (b, r) dove r = a mod b M.C.D. (0, 1) = 0 mod 1 = 8 M.C.D. (1, 8) = 1 mod 8 = 4 M.C.D. (8, 4) 8 mod 4 = 0 = 4 M.C.D. (5, 9) = 5 mod 9 = 5 M.C.D. (9, 5) = 9 mod 5 = 4 M.C.D. (5, 4) = 5 mod 4 = 1 M.C.D. (4, 1) = 4 mod 1 = 0 = 1 Introduzione ai Diagrammi di Flusso 7 Introduzione ai Diagrammi di Flusso 8 Descriviamo come calcolre il M.C.D. Descriviamo come calcolare il M.C.D. Start Considera i numeri a e b Se b = 0 allora la risposta è a e vai all istruzione Calcola r = a mod b Se r = 0 allora la risposta è b, altrimenti torna all istruzione Stop Start Considera i numeri a e b Se b = 0 allora la risposta è a e vai all istruzione Calcola r = a mod b Se r = 0 allora la risposta è b, altrimenti torna all istruzione Stop M.C.D. (0, 1) = 0 mod 1 = 8 M.C.D. (1, 8) = 1 mod 8 = 4 M.C.D. (8, 4) 8 mod 4 = 0 = 4 M.C.D. (5, 9) = 5 mod 9 = 5 M.C.D. (9, 5) = 9 mod 5 = 4 M.C.D. (5, 4) = 5 mod 4 = 1 M.C.D. (4, 1) = 4 mod 1 = 0 = 1 Introduzione ai Diagrammi di Flusso 9 Introduzione ai Diagrammi di Flusso 10 Descriviamo come calcolare il M.C.D. Start L esecuzione sequenziale è interrotta da istruzioni di tipo Considera i numeri a e b vai, torna Se b = 0 allora la risposta è a Le istruzioni sono numerate e vai all istruzione Istruzioni del tipo se allora, se allora Calcola r = a mod b altrimenti operano una scelta tra due condizioni Se r = 0 allora la risposta è b, L istruzione 3 è necessaria altrimenti torna per evitare che si esegua b all istruzione mod 0 che non è possibile (num / 0 è impossibile!) Stop Il risultato è il M.C.D. qualunque siano i valori a e b (generalità) Introduzione ai Diagrammi di Flusso 11 Descriviamo come calcolare il M.C.D. Start Istruzioni (fare qualcosa) e dichiarazioni (definire Considera i numeri a e b qualcosa) Se b = 0 allora la risposta è a Dichiarazioni: di variabili e vai all istruzione costanti (numeriche, Calcola r = a mod b logiche, caratteri, stringhe, ecc.) Se r = 0 allora la risposta è b, Istruzioni: altrimenti torna salti condizionati e incondizionati all istruzione confronti Stop assegnamenti istruzione di inizio istruzione di fermata Introduzione ai Diagrammi di Flusso 1

3 Diagrammi di flusso Start Considera i numeri a e b leggi a e b Se b = 0 allora la risposta è a e vai all istruzione b = 0 Calcola r = a mod b r = a mod b stampa a Se r = 0 allora la risposta è b, r = 0 altrimenti torna stampa b all istruzione Stop Introduzione ai Diagrammi di Flusso 13 Diagrammi di flusso Blocco le Blocco di input/output Blocco di controllo leggi a e b b = 0 r = a mod b stampa a Blocco r = 0 stampa b Blocco finale Introduzione ai Diagrammi di Flusso 14 Diagrammi di flusso I blocchi hanno una sola freccia intrante ed una uscente Un blocco di controllo ha una freccia entrante e due uscenti Una freccia entra in un blocco oppure si inserisce in un altra freccia Ciascun blocco è raggiungibile dal blocco le Il blocco finale è raggiungibile da qualsiasi blocco r = a mod b r = 0 stampa b leggi a e b b = 0 stampa a Introduzione ai Diagrammi di Flusso 15 Il programma M.C.D. in JavaScript <SCRIPT> <!-- Inizio script JavaScript var a0, b0, r; a0 = window.prompt("inserisci il primo numero"); b0 = window.prompt("inserisci il secondo numero"); var a = a0, b = b0; document.writeln("m.c.d. (" + a + ", " + b + ") = <BR>"); if (b!= 0) { r = a % b; while (r!= 0) { a = b; b = r; r = a % b; document.writeln("m.c.d. (" + a + ", " + b + ") = <BR>"); } document.writeln(b); } else document.writeln(a); // Fine script --> </SCRIPT> Vedremo più avanti nel corso cosa significa questo programma Introduzione ai Diagrammi di Flusso 16 Diagrammi di flusso: schemi di base selezione: if then else test test sequenza selezione: if then test iter: while iter: do while (repeat until) test Introduzione ai Diagrammi di Flusso 17 Diagrammi di flusso: schemi di base In realtà ogni blocco descritto precedentemente può essere composto da uno schema di base (che a sua volta ) Se si usano solo gli schemi descritti si realizzano diagrammi di flusso strutturati (nota: ogni algoritmo descrivibile da un diagramma di flusso è descrivibile anche da un diagramma di flusso strutturato [teorema di Böhm-Iacopini]) L uso di diagrammi di flusso strutturati è consigliabile ed incoraggiata (la strasform in programma ne sarà facilitata come anche la comprensione) n è necessaria nessun altro schema per descrivere un qualsiasi algoritmo [tesi di Church] Introduzione ai Diagrammi di Flusso 18 3

4 Diagrammi di flusso: schemi di base Diagrammi di flusso: schemi di base leggi a e b leggi a e b b = 0 r = a mod b b = 0 Calcola M.C.D. Calcola M.C.D. mediante la proprietà di Euclide stampa a r = 0 stampa b r = a mod b r = 0 stampa a stampa b Introduzione ai Diagrammi di Flusso 19 Introduzione ai Diagrammi di Flusso 0 Dato un insieme di n ( ) numeri, vogliamo scrivere un algoritmo per la determin del massimo elemento dell insieme Introduzione ai Diagrammi di Flusso 1 Introduzione ai Diagrammi di Flusso Introduzione ai Diagrammi di Flusso 3 Introduzione ai Diagrammi di Flusso 4 4

5 Introduzione ai Diagrammi di Flusso 5 Introduzione ai Diagrammi di Flusso Introduzione ai Diagrammi di Flusso 7 Introduzione ai Diagrammi di Flusso 8 calcola max confronta... Variabili Una variabile è un nome associato ad una loc di memoria e può contenere dei dati leggi n i = 1 max = tavolo[1] i <= n tavolo[i] > max calcola max confronta il tavolo con max max = tavolo[i] scrivi max i = i + 1 calcola max confronta... 8 Introduzione ai Diagrammi di Flusso 9 Introduzione ai Diagrammi di Flusso 30 5

6 Variabili Ad ogni istante una variabile individua un valore Il valore contenuto il una variabile è l ultimo assegnatole e resta inalterato finche una successiva assegn non modifica il valore stesso L assegn è effettuata mediante una istruzione detta istruzione di assegn L istruzione di assegn permette di assegnare ad una variabile il valore di una espressione generica Alle variabili (e costanti) sono associati degli identificatori Una variabile è rappresentata dalla coppia: <identificatore,valore> Per non itrodurre confusione denoteremo con = l istruzione di assegn e con == il confronto per uguale Introduzione ai Diagrammi di Flusso 31 Array (o Vettore) Un array (vettore) è costituito da una sequenza di elementi consecutivi nella memoria Introduzione ai Diagrammi di Flusso 3 Array (o Vettore) Ad ogni istante un array individua un insieme di valori Ogni singolo valore nell array è individuato dall identificatore dell array e da un indice che ne individua la posizione nella sequenza degli elementi nell array stesso, es. tavolo[] Un array è caratterizzato da una dimensione che esprime il numero di elementi che contiene L oper di assegn permette di modificare il valore di un determinato elemento della sequenza come per una qualsiasi variabile In genere gli elementi di un array sono tutti dello stesso tipo (stringhe, interi, caratteri, ecc.) ma in alcuni linguaggi di programm sono permessi array di elementi di tipo diverso, es. JavaScript, ma non è una scelta consigliabile Introduzione ai Diagrammi di Flusso 33 Esercizio: calcolare il minore tra n numeri Dato un insieme di n ( ) numeri, vogliamo scrivere un algoritmo per la determinare il più piccolo elemento dell insieme Suggerimento: L algoritmo è del tutto analogo a quello per la ricerca del più grande È sufficiente modificare il test di confronto tra l elemento minore trovato temporaneamente e la nuova posizione del tavolo considerata tavolo[i] < min minore invece di maggiore Introduzione ai Diagrammi di Flusso 34 Esercizio: Calcolo del fattoriale Scrivere un algoritmo che calcoli il fattoriale di un numero intero non negativo n. n! = 1 * * * (n -) * (n -1) * n Suggerimento. Le varibili usate nell algoritmo sono: n, il numero intero positivo considerato fatt, la variabile destinata ad assumere il valore del fattoriale di n (n!), in essa si accumulano I successivi prodotti parziali i, varibile contatore Esercizio: Numeri pari e dispari Scrivere un algoritmo che determini se un numero intero positivo n è pari o dispari Un numero è pari se è un multiplo di, dispari altrimenti Suggerimento: sfruttare l oper modulo mod notando che un numero n è multiplo di se n mod = 0 un confronto può coinvolgere anche espressioni Introduzione ai Diagrammi di Flusso 35 Introduzione ai Diagrammi di Flusso 36 6

7 Esercizio: La somma di n numeri Scrivere un algoritmo che calcoli la somma di primi n numeri interi positivi: somma i = 0 Suggerimento: se invece di sommare fosse stato richiesto di moltiplicare? somma = (n -) + (n -1) + n n! = 1 * * * (n -) * (n -1) * n = n i F. Gauss [ ]: n ( n + 1) Introduzione ai Diagrammi di Flusso 37 Algoritmi di ordinamento L ordinamento (sort) è il procedimento che dispone un insieme di elementi in ordine crescente o decrescente secondo un determinato criterio Introduzione ai Diagrammi di Flusso 38 Ordinamento per Selezione ricerca l elemento minimo e lo si scambia con il primo (tavolo[1]) ripete la ricerca considerando gli elementi dal secondo all ultimo e si scambia l elemento più piccolo con tavolo[] In n 1 passi gli elementi saranno ordinati Introduzione ai Diagrammi di Flusso 39 Ordinamento per Selezione Le carte sul tavolo vengono percorse da sinistra verso destra cercando l elemento più piccolo L algoritmo per la ricerca del più piccolo è simile a quello per la ricerca del più grande Introduzione ai Diagrammi di Flusso 40 Ordinamento per Selezione Individuato l elemento più piccolo tra quelli considerati si effettua lo scambio Ordinamento per Selezione A scambio completato avremo un tavolo con n carte con la certezza di avere l elemento più piccolo in prima posizione È l elemento più piccolo!! Introduzione ai Diagrammi di Flusso 41 Introduzione ai Diagrammi di Flusso 4 7

8 Ordinamento per Selezione considera la rimanente parte del tavolo seleziona il più piccolo dei rimanenti elementi e lo si mette in seconda posizione Ordinamento per Selezione L algoritmo effettua gli n 1 cicli considerando ogni volta una porzione di tavolo più piccola di una posizione L elemento non più considerato da un ciclo successivo (quello posizionato nella posizione i-esima è il più piccolo di tutti i rimanenti ma più grandi di quelli già oggetto di uno scambio E così via fino NOTA: è sufficiente a memorizzare la posizione di i = i + 1 completament min o (n 1 passi) Introduzione ai Diagrammi di Flusso 43 Introduzione ai Diagrammi di Flusso 44 i = 1 i < n trova minore min in {tavolo[i] tavolo[n]} (la sua posizione) scambia min con tavolo[i] Lo scambio: variabili temporanee Calcolo del minore tra n numeri scambia calcola min temp = tavolo[posizione di min] j = i confronta... tavolo[posizione di min] = tavolo[i] tavolo[i] = temp scambia 1 posizione di min = i calcola min j <= n confronta il tavolo con min tavolo[j] < tavolo[posizione di min] posizione di min = j È necessario memorizzarsi in una variabile temporanea il più piccolo elemento trovato per effettuare lo scambio j = j + 1 calcola min confronta... Introduzione ai Diagrammi di Flusso 45 Introduzione ai Diagrammi di Flusso 46 Iterazioni: ciclo while Le iterazioni permettono l esecuzione ripetuta di una serie di istruzioni, definendo un ciclo Nell iter di tipo while l espressione test è valutata iter: while prima di ogni ciclo, se il valore è vero il ciclo viene test effettuato, altrimenti si prosegue con il blocco successivo seguendo l arco istruzioni etichettato A priori non è noto il numero di ripetizioni del ciclo Caratteristica analoga si può dire anche dell iter repeat until (o do while) Introduzione ai Diagrammi di Flusso 47 Iterazioni: ciclo for L iter di tipo for è un iter di tipo while dove, però, il numero di cicli è noto a priori Una variabile, j, è assegnato un valore le La variabile è incrementata ad ogni ciclo di un certo valore, nell esempio di 1 Il test che coinvolge la variabile in oggetto controlla se questa ha superato un certo estremo È quindi noto a priori il numero di cicli che verranno effettuati (nell esempio n - i + 1 volte) calcola min j = i j <= n confronta il tavolo con min j = j + 1 Introduzione ai Diagrammi di Flusso 48 calcola min 8

9 Soluzione esercizio: Calcolo del fattoriale leggi n calcola fatt i = 1 Quale è la classe di funzioni calcolabili? Babbage [1837]: Di quali operazioni deve essere dotata una machina per effettuare tutti i calcoli che un essere umano può teoricamente effettuare? fatt = 1 calcola fattoriale scrivi fatt i <= n fatt = fatt * i i = i + 1 Anni 30: A. Church, K. Gödel, E. Post, A. Tarski, A. Turing proposero, nel giro di pochi anni, un gran numero di possibili definizioni, ciascuna basata su di un particolare aspetto della nozione di funzione calcolabile, ciascuno con le sue caratteristiche calcola fatt Introduzione ai Diagrammi di Flusso 49 Introduzione ai Diagrammi di Flusso 50 Funzioni Ricorsive Dedekind [1888]: analisi matematica del concetto di numero naturale. I numeri naturali sono generati a partire dallo 0, dall oper di successore, dalla ricorsione primitiva e soddisfano il principio del minimo (nessun elemento è asciato fuori) Kleene [1936]: le funzioni ricorsive sono quelle definibili a partire dalla funzione costante 0, dalla funzione successore, ricorsione primitiva e ricerca del minimo (minimo elemento tale che ) Intuitivamente: 0 e successore corrispondono all assegnamento, ricorsione primitiva all iter di tipo for, il principio del minimo all iter di tipo while Introduzione ai Diagrammi di Flusso 51 Funzioni Ricorsive Kleene [1936]: Tutte le definizioni proposte sono equivalenti, e descrivono sempre la classe delle funzioni ricorsive. Metodo di Aritmetizz: assegnare numeri a oggetti in modo sistematico ed effettivo, e nel tradurre proprietà degli oggetti in proprietà dei loro corrispondenti numeri Gödel: L aritmetizz è possibile effettuarla mediante funzioni ricorsive! Equivalenza tra tutte le definizioni non è una dimostr che la definizione di funzione ricorsiva corrisponda a quella di calcolabile (ma è un buon indizio ) Introduzione ai Diagrammi di Flusso 5 La Tesi di Church [1936] A. Church, A. Turing: Le funzioni ricorsive (parziali) sono esattamente le funzioni calcolabili. Le sole funzioni per cui esistono programmi sono le funzioni ricorsive. Quindi esistono decine di problemi per cui non è possibile trovare soluzioni ricorsive (es. non esiste un algoritmo per calcolare le soluzioni di qualunque equazone di grao n) Le funzioni calcolabili sono calcolabili mediante computer! La Tesi di Church [1936] Poiché i computer calcolano tutte e sole le funzioni ricorsive, ogni definizione equivalente di ricorsività descrive un approccio alternativo alla calcolabilità attraverso computer, e dunque un tipo di linguaggio di programm La dimostr di equivalenza fra un dato approccio e la calcolabilità mediante computer consiste nel tradurre il metodo di calcolo di una generica funzione implicito nel dato approccio in una serie di istruzioni (in linguaggio macchina) eseguibili direttamente dal computer (compil = aritmtizz) Introduzione ai Diagrammi di Flusso 53 Introduzione ai Diagrammi di Flusso 54 9

10 Problema della Fermata Altro problema impossibile da risolvere: Decidere se un computer si ferma (e ottiene dunque un valore) quando calcola seguendo le istruzioni di un dato programma per un dato argomento. (Decidere se una funzione ricorsiva parziale è definita per un dato argomento) Se un programma che fornisce risposte a domande riguardanti la fermata di dati programmi per dati argomenti non mente mai, esso non può fornire tutte le risposte. Un sistema di assiomi e regole che sia definibile mediante un programma e che non menta mai non può fornire risposte a ogni domanda riguardo i numeri (teorema di Gödel) Introduzione ai Diagrammi di Flusso 55 10

Introduzione ai Diagrammi di Flusso

Introduzione ai Diagrammi di Flusso Master Web Careers Matteo Baldoni Dipartimento di Informatica -Università degli Studi di Torino C.so Svizzera, 185 I-10149 Torino E-mail: baldoni@di.unito.it URL: http://www.di.unito.it/~baldoni Introduzione

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

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

CAPITOLO 3 - ALGORITMI E CODIFICA

CAPITOLO 3 - ALGORITMI E CODIFICA FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)

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. Andrea Passerini Informatica. Algoritmi

Algoritmi. Andrea Passerini Informatica. Algoritmi Andrea Passerini passerini@disi.unitn.it Informatica Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale

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

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

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

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Analisi e Programmazione

Analisi e Programmazione Algoritmi 1 Analisi e Programmazione I Calcolatori Elettronici si differenziano da altri tipi di macchine per il fatto che possono essere predisposti alla risoluzione di problemi di diversa natura. A tale

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,

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

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

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

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

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

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

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

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 ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

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

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

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica. Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Algoritmi Michele Tomaiuolo Algoritmo Il termine algoritmo deriva

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

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

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica I dati strutturati: gli array I vettori (o Array) Fino a ora abbiamo memorizzato le informazioni (valori)

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

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe

Dettagli

Cicli. S i a i = a 1 + a 2 + a a n

Cicli. S i a i = a 1 + a 2 + a a n Cicli Esprimono in modo compatto e generali l'esecuzione di uno stesso blocco di codice per più volte Anche in matematica sono presenti operatori che eseguono di fatto un ciclo (ad es. sommatoria e produttoria)

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

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p. Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale

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

Pseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3

Pseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3 Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2007/08 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

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

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

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

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

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

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

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

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Introduzione alla Programmazione Prof. Stefano Mariani Dott. Alket Cecaj Indice Il concetto di algoritmo Algoritmo vs. programma

Dettagli

Problema: calcolare il massimo tra K numeri

Problema: calcolare il massimo tra K numeri Problema: calcolare il massimo tra K numeri Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L algoritmo deve restituire il valore massimo tra quelli introdotti

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

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

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

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

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma

Corso di PHP. Prerequisiti. 3 - Le strutture di controllo. Istruzioni semplici Controllo del flusso di programma Corso di PHP 3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Controllo del flusso di programma 2 1 Introduzione In molti casi le sole istruzioni viste finora non sono sufficienti a risolvere

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

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& & Programmazione+1+ + Mario&Pavone& & Dipar/mento+di+Matema/ca+ed+Informa/ca+ Università+degli+Studi+di+Catania+ mpavone@dmi.unict.it+ hap://www.dmi.unict.it/mpavone/+ Definizioni Algoritmo: una sequenza

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

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

APPUNTI DI INFORMATICA

APPUNTI DI INFORMATICA Definizione Informatica APPUNTI DI INFORMATICA Si definisce l informatica come la scienza della rappresentazione e dell elaborazione dell informazione. Questa impostazione consente di mettere in evidenza

Dettagli

Strutture di controllo (v.anche cap. 8 del testo MATLAB per l ingegneria )

Strutture di controllo (v.anche cap. 8 del testo MATLAB per l ingegneria ) (v.anche cap. 8 del testo MATLAB per l ingegneria ) Selezione if 1 2 If, while, for, do until Se la condizione è vera, esegui 1, altrimenti esegui 2 MATLAB - ontrollo 2 Selezione if if ( condizione ) blocco

Dettagli

IL TEOREMA DI BOEHM-JACOPINI

IL TEOREMA DI BOEHM-JACOPINI IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr. Programmazione A.A. 2002-03 I Fondamenti di programmazione ( Lezione IX ) Notazione Lineare Strutturata Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di

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

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

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 Algebra di Boole Stefano Cagnoni Algebra di Boole L'algebra

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi Diagrammi di flusso - Flowcharts E un formalismo che consente di rappresentare graficamente gli algoritmi Un diagramma di flusso descrive le azioni da eseguire ed il loro ordine di esecuzione Ogni azione

Dettagli

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi,

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi, Corso di Automi e Linguaggi Formali Gennaio- Marzo 2004 Docente: Francesca Rossi, frossi@math.unipd.it Corso di Automi e Linguaggi Formali Gennaio-Marzo 2004 p.1/30 Dati del corso Orario: Lunedi 15:50-17:30,

Dettagli

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso

Dettagli

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1 Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013

Dettagli

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. ! Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 24 26 maggio 2015!

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

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini Blocchi di base Schemi: Sequenza Selezione Iterazione Flow chart strutturati Sequenza Selezione Iterazione Teorema di Bohm e Jacopini I più comuni linguaggi di descrizione degli algoritmi sono: Diagrammi

Dettagli

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Programmazione strutturata

Programmazione strutturata Programmazione Strutturata Programmazione strutturata La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) biettivo: rendere

Dettagli

Esercitazioni di Elementi di Informatica

Esercitazioni di Elementi di Informatica Esercitazioni di Elementi di Informatica Docente: Prof. Angelo Chianese angelo.chianese@unina.it Tutor: Ing. Antonio Picariello antonio.picariello@unina.it Interpreti e Compilatori Interprete Es. Qbasic

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

Un algoritmo ben fatto deve terminare dopo un numero finito

Un algoritmo ben fatto deve terminare dopo un numero finito Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani, e Programmi 1 Esempi di dal

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):

Dettagli

Javascript: il browser

Javascript: il browser Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di

Dettagli