Precisazione sulla visibilità delle variabili durante l esecuzione delle funzioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Precisazione sulla visibilità delle variabili durante l esecuzione delle funzioni"

Transcript

1 Precisazione sulla visibilità delle variabili durante l esecuzione delle funzioni var a = new Array (4); var y= 7; function foo(vet,x) { var i=0;... } //fine foo foo(a,y); print(y); Stato {(a, ),(y,7) (foo, function (vet,x) {...}), (vet, ), (x,7) (i,0)} undefined a e vet sono 2 nomi diversi per lo stesso 2 undefined array, mentre y e x sono due variabili diverse 3 undefined che per un accidente hanno lo stesso valore E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 1

2 Precisazione sulla visibilità delle variabili durante l esecuzione delle funzioni var a = new Array (4); var y= 7 function foo(vet,x) { var i=0; x=34;... } //fine foo foo(a,y); print(y); Stato {(a, ),(y,7) (foo, function (vet,x) {...}), (vet, ), (x,34) (i,0)} undefined se modifico x, y rimane invariato. y è visibile 2 undefined e modificabile nella funzione ma è globale: da 3 undefined vietato usarle in questo corso E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 2

3 Non è necessario usare nomi diversi var a = new Array (4); var y= 7 function foo(a,y) { var i=0; y=34; } //fine foo foo(a,y); print(y); Stato {(a, ),(y,7) (foo, function (a,y) {...}), (a, ), (y,7) (i,0)} undefined le variabili locali alla funzione hanno gli stessi 2 undefined 3 undefined nomi delle variabili globali ma sono variabili diverse E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 3

4 Non è necessario usare nomi diversi var a = new Array (4); var y= 7 function foo(a,y) { var i=0; y=34; } //fine foo foo(a,y); print(y); Stato {(a, ),(y,7) (foo, function (a,y) {...}), (a, ), (y,34) (i,0)} undefined le variabili globali non sono in questo caso 2 undefined 3 undefined accessibili perchè sono coperte dalle variabili locali. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 4

5 Non è necessario usare nomi diversi var a = new Array (4); var y= 7 function foo(a,y) { var i=0; y=34; } //fine foo foo(a,y); print(y); Stato {(a, ),(y,7) (foo, function (a,y) {...}), (a, ), (y,34) (i,0)} undefined 2 undefined 3 undefined Quando l esecuzione della funzione termina, il controllo torna al programma chiamante e le variabili ritornano accessibili. print(y) stampa 7. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 5

6 Funzioni che restituiscono array In JavaScript le funzioni possono anche restituire array come risultato della computazione: Esempio: La funzione leggivet può essere scritta anche cosi : var k = asknum(), a; function leggivet(n) { var vet=new Array(n), i; for (i = 0; i < vet.length; i++) vet[i]=asknum(); return vet; //fine leggivet } a=leggivet(k);... Il chiamante passa alla funzione solo la dimensione (k) dell array da creare e inizializzare e dichiara la variabile a senza inizializzarla. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 6

7 Evoluzione dello stato var k=asknum(), a; function leggivet(n) { var i, vet=new Array(n), i;; for (i=0; i<vet.length; i++) vet[i]=asknum(); return vet;//fine leggivet } a=leggivet(k); Stato {(k,4), (a,undefined ), (leggivet, function (n) {...})} Stato in cui viene invocata leggivet nel caso in cui il valore in input sia 4. L esecuzione del programma principale viene sospesa e passa ad eseguire la funzione. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 7

8 Evoluzione dello stato var k=asknum(), a; function leggivet(n) { var vet=new Array(n), i; for (i=0; i<vet.length; i++) vet[i]=asknum(); return vet;//fine leggivet } a=leggivet(k); Stato {(k,4), (a,undefined ), (leggivet, function (n) {...}),(n,4), (vet, ), (i,undefined),} 0 undefined 1 undefined 2 undefined 3 undefined Stato durante l invocazione di leggivet, dopo la dichiarazione delle variabili E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 8

9 Evoluzione dello stato var k=asknum(), a; function leggivet(n) { var vet=new Array(n), i; for (i=0; i<vet.length; i++) vet[i]=asknum(); return vet;//fine leggivet } a=leggivet(k); Stato {(k,4), (a,undefined ), (leggivet, function (n) {...}),(n,4), (vet, ), (i,4),} Stato durante l invocazione di leggivet, dopo l esecuzione del for nel caso in input siano stati immessi i valori 8,-2,0, E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 9

10 Evoluzione dello stato var k=asknum(), a; function leggivet(n) { var vet=new Array(n), i; for (i=0; i<vet.length; i++) vet[i]=asknum(); return vet;//fine leggivet } a=leggivet(k); Stato {(k,4), (a, ), (leggivet, function (n) {...})} Stato dopo la terminazione dell asecuzione di 0 8 leggivet e dell assegnamento del reference, 1-2 risultato della invocazione alla variabile a del chiamante. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 10

11 Ordinamento Data una sequenza di elementi in ordine qualsiasi, ordinarla. Questo è un problema fondamentale, che si presenta in moltissimi contesti, ed in diverse forme. Nel nostro caso formuliamo il problema in termini di ordinamento di vettori: Dato un array A di n elementi, ordinarlo in modo crescente Per semplicità faremo sempre riferimento a vettori di interi. = E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 11

12 Ordinamento per selezione del minimo (selection sort) Esempio: Ordinamento di un mazzo di carte Ho 2 gruppi di carte: N carte non ordinate, O carte ordinate si seleziona la carta più piccola di N e la si inserisce in prima posizione in O delle rimanenti di N si seleziona la più piccola e la si inserisce in seconda posizione in O ecc. rimane una sola carta in N e la si inserisce in ultima posizione in O si termina quando non ci sono più carte Ordinamento di un array, abbiamo 2 cicli : per inserire l elemento corretto in ogni posizione dell array (scansione di tutto l array) per ogni posizione è neccessario selezionare l elemento più piccolo tra i rimanenti. Per non perdere elementi e per lavorare sui rimanenti dobbiamo scambiare l elemento più piccolo selezionato con l elemento che si trova nella posizione corrente. In questo modo abbiamo una porzione di array non ordinata (N) e una porzione di array ordinata (O). E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 12

13 in nero la parte che rimane da analizzare (N) in blu l elemento minimo selezionato in verde lo scambio effettuato in rosso la parte ordinata (O) in marrone gli indici E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 13

14 Implementazione dell ordinamento per ricerca dei minimi in JavaScript Definiamo la funzione principale selsort function selsort(vet){ var i, temp,k; for (i=0; i<vet.length-1; i++) {k=minpos(vet,i,vet.length); temp=vet[i]; vet[i]=vet[k]; vet[k]=temp; } Resta da definire minpos E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 14

15 Implementazione della ricerca della posizione dell elemento minimo in una porzione di array Definizione della funzione minpos che calcola la posizione dell elemento dell array che contiene il valore minimo relativamente all porzione di array contenuta tra i valori dei 2 indici passati come parametri (i, vet.length-1) function minpos(vet,from, to){ var min=from; for (from++; from<=to; from++) if (vet[from]<vet[min]) min=from; return min; } Sono tutti necessari i 3 parametri di minpos? E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 15

16 Programma principale per testare la procedura di ordinamento definita Usiamo la procedura leggivet definita precedentemente e la print predefinita. var a=new Array(8); leggivet(a); //inizializzazione di a print(a); //stampa di a selsort(a); //ordinamento di a print(a); //nuova stampa di a E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 16

17 Ordinamento a bolle (bubble sort) Èsimilealprecedente,cambiailmododiportarel elementominimo della porzione di array ancora non ordinata nella posizione corretta. l idea è che si fanno galleggiare gli elementi più piccoli ( più leggeri ) verso l inizio dell array ( verso l alto ), scambiandoli con quelli adiacenti. L ordinamento è suddiviso in n-1 fasi: fase 0: 0 o elemento (il più piccolo) in posizione 0 fase 1: 1 o elemento in posizione 1 fase n-2: (n-2) o elemento in posizione n-2, equindi (n-1) o elemento in posizione n-1 Nella fase i: cominciamo a confrontare dal basso e portiamo l elemento più piccolo (più leggero) in posizione i E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 17

18 E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 18

19 Si usano due for annidati: il più esterno itera sulle i posizioni dell array. il più interno per portare l elemento più piccolo (della porzione non ordinata) in posizione i-esima function bubblesort(vet) { var temp,i,j; for (i = 0; i < vet.length-1; i++) for (j = vet.length-1; j > i; j--) if (vet[j] < vet[j-1]){ temp=vet[j]; vet[j]= vet[j-1]; vet[j-1]=temp;} } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 19

20 Operazioni che sfruttano la dinamicità degli array L operazione primitiva che permette di modificare il numero degli elementi di un array è l aggiunta di uno o più elementi in fondo all array: Esempio: vet[vet.length]=asknum(); Aggiunge un elemento all array vet di indice vet.length e valore letto dall input. Esempio: vet[vet.length+2]=asknum(); Aggiunge 3 elementi all array vet due di indice vet.length e vet.length+1 e valore undefined eunodiindicevet.length+2 e valore letto dall input. esistono alcune operazioni (metodi) predefinite che permettono anche di eliminare elementi da un array. Li vedremo più avanti. tutti gli esempi visti considerano array il cui numero di elementi resta costante durante tutta l esecuzione. Vediamo ora degli esempi di programmi che aggiungono elementi ad un array. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 20

21 Inserzione di un elemento in un array ordinato Se una struttura dati (array) è statica ovvero il numero dei suoi elementi non cambia, ha senso avviare una procedura di ordinamento al momento dell inizializzazione. Se viceversa una struttura dati (array) è dinamica la cosa più sensata è di mantenerla ordinata, inserendo i nuovi elementi in modo che rispettino l ordinamento. notare che un array vuoto, dimensione 0 è ordinato per definizione e lo stesso vale per un array di un unico elemento. per inserire un nuovo elemento al posto giusto dobbiamo scorrere gli elementi che lo precedono per decidere la posizione che gli compete spostare di un posto verso destra gli elementi maggiori per fargli spazio. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 21

22 Un esempio In nero l elemento da inserire, in rosso gli elementi già inseriti nell array [] in blu gli elementi già inseriti che è stato necessario spostare al passo precedente se l elemento da inserire andrà ad occupare una posizione già occupata, l elemento corrispondente è sottolineato. 5 [ ] [5] 2 [5] [2, 5] 4 [2, 5] [2, 4, 5] 1 [2, 4, 5] [1, 2, 4, 5] 3 [1, 2, 4, 5] [1, 2, 3, 4, 5] E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 22

23 Una volta individuata la posizione i in cui inserire il nuovo elemento dobbiamo farle spazio, ovvero spostare verso destra di una posizione tutti gli elementi da i in poi. Inserzione di 3, da inserire in posizione È necessario spostare 5 in posizione 4 e 4 in posizione 3 A questo punto la posizione 2 è libera e possiamo inserire l elemento in modo ordinato Se l elemento da inserire è maggiore di tutti gli elementi dell array non dobbiamo spostare nulla, ma inserire in fondo. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 23

24 Shift a destra per array dinamici Dobbiamo perciò definire una procedura che sposta tutti gli elementi di un array (vet verso destra di una posizione a partire da una data posizione from<vet.length). dobbiamo aggiungere un nuovo elemento all array che ha come valore il valore dell elemento che si trova in ultima posizione, che quindi non viene perso Bisogna procedere da destra verso sinistra per non perdere gli elementi function shiftrd(vet, from) { var j; for (j=vet.length; j>from; j--) vet[j]=vet[j-1]; } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 24

25 Possiamo ora definire la procedura di ordinamento per inserzione come segue function insord(vet, x){ var i=0, trovato=false; while (i<vet.length &&!trovato) { if (a[i]<x) i++; else trovato=true;} if (!trovato) a[vet.length]=x; else { shiftrd(vet, i); vet[i]=x; } } i è la posizione in cui dobbiamo inserire il nuovo elemento, è cioè in caso di ordinamento crescente la posizione del primo elemento che risulta > del valore che stiamo inserendo. se sono ammessi elementi ripetuti cambia qualcosa? E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 25

26 Un altra soluzione più compatta Questa soluzione utilizza una funzione insertinpos con 3 parametri: l array vet, la posizione p in cui inserire l elemento l elemento da inserire x La funzione si preoccupa di spostare a destra tutti gli elementi, aumentando la dimensione dell array per poter memorizzare un elemento in più. function insertinpos(vet,p,x) { var j; for (j=vet.length; j>p; j--) vet[j]=vet[j-1]; vet[i]=x; } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 26

27 La nuova definizione della funzione insord Notare la guardia del while (i<vet.length && a[i]<x). Questa condizione è corretta per la regola di valutazione stretta dell &&. Se la prima condizione i<vet.length è falsa, la seconda condizione a[i]<x non viene valutata. function insord(vet, x){ var i=0, while (i<vet.length && a[i]<x) i++; insertinpos(vet, i, x); } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 27

28 Ancora un altra soluzione per insord Questa soluzione usa un metodo predefinito su oggetti array, invece della funzione insertinpos definita sopra: il metodo splice viene invocato con nomearray.splice(p,0,x), quindi abbiamo: function insord(vet, x){ var i=0, while (i<vet.length && a[i]<x) i++; vet.splice(i,0, x); } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 28

29 Eliminazione di elementi da un array La rimozione di un elemento da un array non è un operazione primitiva e può essere effettuata solo attraverso i metodi: uno di questi è ancora il metodo splice, indicando la posizione del primo elemento da rimuovere e il numero di elementi da rimuovere, ad esempio con nomearray.splice(p,1), viene rimosso l elemento in posizione p : function EliminaElem(vet, x){ var i=0, while (i<vet.length && a[i]<=x) i++; if (i!=vet.length) vet.splice(i,1); } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 29

30 Merge di due array ordinati a b c 0 Si scandiscono a e b insieme finchè entrambi contengono elementi e si seleziona l elemento più piccolo tra i due esaminati, che viene aggiunto a c dinamicamente. Abbiamo 3 indici uno per ogni array. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 30

31 Merge di due array ordinati a b c Situazione finale E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 31

32 Merge di due array ordinati function merge (a,b){ var c=new Array(), i=0,j=0,k=0; while (i<a.length && j<b.length) {if (a[i] < b[j]) {c[k]=a[i]; i++;} else {c[k]=b[j]; j++;} k++;} while (i<a.length) {c[k]=a[i]; i++;k++;} while (j<b.length) {c[k]=b[j]; j++;k++;} return c; } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 32

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

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

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Algoritmi di ordinamento e ricerca. Classe SelSort.java

Algoritmi di ordinamento e ricerca. Classe SelSort.java Classe SelSort.java public class SelSort Trova l elemento più piccolo nella porzione finale di un array. @param a l array da esplorare @param from la posizione iniziale dell intervallo @return la posizione

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

Le funzioni in JavaScript. Modularizzazione

Le funzioni in JavaScript. Modularizzazione Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 15 Algoritmi su array: selection sort, insertion sort, fusione

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

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

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi:

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: switch (espressione) { case espressione-1: istruzioni-1... case espressione-n:

Dettagli

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

Dettagli

Finestre di dialogo. Corso di Laboratorio di Programmazione Web. Controllo dell input e window.alert. prompt di stringhe!

Finestre di dialogo. Corso di Laboratorio di Programmazione Web. Controllo dell input e window.alert. prompt di stringhe! Corso di Funzioni ed Oggetti Finestre di dialogo prompt( Inserisci il valore, 1000 ); restituisce la stringa inserita nel campo alarm( Stai per uscire! ); Dipartimento di Informatica Università degli Studi

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Operazioni sulle liste Definiamo una serie di procedure e funzioni per operare sulle liste. Usiamo liste di interi per semplicità, ma tutte le operazioni sono realizzabili in modo del tutto analogo su

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min

Dettagli

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008 Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 7 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Problema: conteggio occorrenze

Problema: conteggio occorrenze Problema: conteggio occorrenze start read N,X i := 0 occorrenze := 0 vero vero i < N vettore[i]=x falso write occorrenze end occorrenze := occorrenze + 1 falso i := i + 1 Codice Javascript: prima parte

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

Università di Roma Tor Vergata L12-1

Università di Roma Tor Vergata L12-1 Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

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

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

Le strutture di controllo

Le strutture di controllo INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Un esempio di calcolo di complessità: insertion sort

Un esempio di calcolo di complessità: insertion sort Un esempio di calcolo di complessità: insertion sort Vediamo su un esempio come si può calcolare la complessità di un algoritmo... L esempio è un metodo semplice per ordinare arrays: insertion sort, o

Dettagli

Programmazione, 5 a lezione

Programmazione, 5 a lezione Programmazione, 5 a lezione Eugenio Omodeo Dipartimento di Matematica e Informatica, Università degli Studi di Trieste. Trieste, 12.10.2010 Esecuzione sequenziale I All avvio di un programma, il processo

Dettagli

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Dettagli

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

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

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 07/02/07 Nota Questi lucidi sono tratti

Dettagli

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

Dettagli

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale

Dettagli

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

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

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze

Dettagli

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort Ordinamento Sommario Ordinamento Selection Sort Bubble Sort/ Shaker Sort Shell Sort Cosa e' l'ordinamento Il problema consiste nell elaborare insiemi di dati costituiti da record I record hanno sono costituiti

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Prova Intermedia Marzo 2011 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia La Prova Intermedia

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3) Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di

Dettagli

I Tipi di Dato Astratto

I Tipi di Dato Astratto I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati

Dettagli

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Richiami di Fondamenti di Informatica - 1

Richiami di Fondamenti di Informatica - 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Richiami di Fondamenti di Informatica - 1 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Richiami di FdI-1

Dettagli

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzione condizionale switch Istruzioni di salto break e continue Uso di variabili di tipo boolean Variabili di tipo array (monodimensionali)

Dettagli

Strategie di programmazione

Strategie di programmazione Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie

Dettagli

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro

Dettagli

Array ( vettore/matrice Un dato strutturato. indice Accesso diretto

Array ( vettore/matrice Un dato strutturato. indice Accesso diretto Array (vettore/matrice) Un dato strutturato. Un insieme di variabili tutte dello stesso tipo identificate con un nome comune. Uno specifico elemento è referenziato tramite un indice (funzione di accesso)

Dettagli

Esercizi d esame. Elena Tundo

Esercizi d esame. Elena Tundo Esercizi d esame Elena Tundo Esercizi su Linux Tenendo presente di partire dalla home directory, la sequenza di comandi Linux per creare una sottocartella dir2 ed una dir3 e spostare dentro dir2 il file

Dettagli

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin Javascript - Corso Web Design - Media Dream Academy Stefano Gaborin stefano.gaborin@above.company www.above.company Cos è Javascript? JavaScript è un linguaggio di programmazione interpretato. Utilizzato

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

Valutazione di espressioni

Valutazione di espressioni Valutazione di espressioni Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Blocco Blocco è un insieme di istruzioni consecutive, con un

Dettagli

Informatica 3. LEZIONE 2: Sintassi e semantica

Informatica 3. LEZIONE 2: Sintassi e semantica Informatica 3 LEZIONE 2: Sintassi e semantica Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4: Routine Convenzioni dei nomi Informatica

Dettagli

Array multidimensionali e stringhe

Array multidimensionali e stringhe Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa

Dettagli

Informatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione

Informatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione Informatica 3 Informatica 3 LEZIONE 2: Sintassi e semantica Lezione 2- Modulo 1 Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4:

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY) VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

Dettagli

Esercizi Strutture dati di tipo astratto

Esercizi Strutture dati di tipo astratto Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

La ricorsione. Ver Claudio Fornaro - Corso di programmazione in C

La ricorsione. Ver Claudio Fornaro - Corso di programmazione in C La ricorsione Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Gli algoritmi di base sul tipo array: ordinamento e ricerca Claudio De Stefano - Corso di Fondamenti di Informatica 1 Algoritmi di ordinamento gli algoritmi si differenziano

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli