Fondamenti Teorici e Programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti Teorici e Programmazione"

Transcript

1 Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D.

2 Array 2

3 Dati Strutturati I tipi di dati visti finora sono numeri (interi o razionali) booleani (valori di verita') stringhe (sequenze di caratteri) Spesso e' necessario manipolare dati piu' complessi, che presentano una struttura Dati Strutturati 3

4 Array Gli array rappresentano un tipo di dato composto, formato da una sequenza di valori Ogni valore e' detto elemento dell'array Ad ogni valore e' associato un indice (numero d'ordine) Il numero di elementi in un array e' detto lunghezza (o dimensione) dell'array In JS gli array sono dinamici, cioe' possono avere lunghezza variabile Nota: In JS i valori che compongono un array possono essere omogenei (stesso tipo) o disomogenei (tipi diversi). Noi ci limitiamo al caso di array omogenei 4

5 Dichiarazione e inizializzazione La sintassi della dichiarazione di un array prevede alcune alternative Dichiarazione di un array vuoto alternativa 1 var nome_array = []; alternativa 2 var nome_array = new Array(); 5

6 Dichiarazione e Inizializzazione Dichiarazione di un array + inizializzazione degli elementi ad undefined var nome_array = new Array(lunghezza); Ad esempio var lunghezza = 7; var nome_array = new Array(lunghezza); writeln(nome_array); dichiara un array di lunghezza 7 inizializza ad undefined tutti i suoi elementi 6

7 Dichiarazione e Inizializzazione Dichiarazione di un array + inizializzazione degli elementi var nome_array = [espressione1, espressione2,..., espressionek]; Ad esempio var vettore = [1, -2, 3, 45]; writeln(vettore); dichiara un array di lunghezza 4 inizializza i suoi elementi a specifici valori indicati tra [ ] e separati da, 7

8 Dichiarazione e Inizializzazione Dichiarazione di un array + inizializzazione degli elementi (ver. 2) var nome_array = new Array(espressione1, espressione2,..., espressionek); Ad esempio var vettore = new Array(1, -2, 3, 45); writeln(vettore); dichiara un array di lunghezza 4 inizializza i suoi elementi a specifici valori indicati tra ( ) e separati da, 8

9 Accesso agli elementi di un array Ogni elemento di un array e' accessibile usando l'identificatore dell'array e l'indice dell'elemento es. nome_array[indice] L'indice puo' essere anche il risultato di un'espressione es. nome_array[espressione] L'indice deve essere un valore numerico intero, non negativo Gli array sono indicizzati a partire da 0 es.: gli indici di un array di 6 elementi variano da 0 (primo elemento) a 5 (ultimo elemento) Ricordare: vet[i] indica l'elemento dell'array vet di indice i 9

10 Rappresentazione grafica Supponiamo di aver dichiarato var vettore = new Array(7); possiamo rappresentare il vettore in forma tabellare Indice Elemento Variabile 0 undefined vettore[0] 1 undefined vettore[1] 2 undefined vettore[2] 3 undefined vettore[3] 4 undefined vettore[4] 5 undefined vettore[5] 6 undefined vettore[6] 10

11 Modifica di un array Gli elementi di un array possono essere modificati usando il comando di assegnamento ( = ) A sinistra dell'uguale si specifica l'espressione che denota l'elemento dell'array, a destra il suo nuovo valore var vettore = new Array(7); vettore[0] = 1; L'indice puo' essere una qualsiasi espressione che abbia un valore intero non negativo var i = Math.round(4.1); vettore[i] = Math.log(1); 11

12 Esempi di istruzioni che coinvolgono array Supponiamo di aver dichiarato il seguente array var vet = new Array(6); Indice Elemento Variabile ora eseguiamo le seguenti istruzioni e vediamo come cambia il contenuto dell'array vet[0] = 15; vet[1] = vet[0] + 4; write(vet[0]+vet[1]); 0 undefined vet[0] 1 undefined vet[1] 2 undefined vet[2] 3 undefined vet[3] 4 undefined vet [4] 5 undefined vet [5] 12

13 Esempi di istruzioni che coinvolgono array Dopo l'esecuzione di vet[0] = 15; Indice Elemento Variabile 0 15 vet[0] 1 undefined vet[1] 2 undefined vet[2] 3 undefined vet[3] 4 undefined vet [4] 5 undefined vet [5] 13

14 Esempi di istruzioni che coinvolgono array Dopo l'esecuzione di vet[1] = vet[0] + 4; Indice Elemento Variabile 0 15 vet[0] 1 19 vet[1] 2 undefined vet[2] 3 undefined vet[3] 4 undefined vet [4] 5 undefined vet [5] 14

15 Lo stato con gli array Quando si usano array, lo stato viene esteso. E' necessario considerare: l'ambiente che rappresenta le variabili come insieme di coppie lo heap in cui sono memorizzati gli array Le variabili che hanno come valore un array assumono nell'ambiente un valore speciale detto reference il reference e' un indirizzo di memoria che individua l'area dello heap in cui e' memorizzato l'array 15

16 Lo stato con gli array: reference e heap Lo heap in cui e' memorizzato l'array e' costituito da piu' locazioni di memoria (illustrato come nelle precedenti tabelle) Il reference e' indicato graficamente come una freccia (che punta allo heap), oppure con refi dal momento che l'indirizzo effettivo di memoria e' un dettaglio che dipende dal gestore della memoria (non ci interessa) 16

17 Esempio di stato var vet1 = new Array(6); Stato risultante: {(vet1, )} 0 undefined 1 undefined 2 undefined 3 undefined 4 undefined 5 undefined 17

18 Esempio di stato var vet1 = new Array(6); var vet2 = new Array(6); Stato risultante: {(vet1, ), (vet2, )} 0 undefined 1 undefined 2 undefined 3 undefined 4 undefined 5 undefined 0 undefined 1 undefined 2 undefined 3 undefined 4 undefined 5 undefined 18

19 Esempio di stato var vet1 = new Array(6); var vet2 = new Array(6); var a = 0; Stato risultante: {(vet1, ), (vet2, ), (a, 0)} 0 undefined 1 undefined 2 undefined 3 undefined 4 undefined 5 undefined 0 undefined 1 undefined 2 undefined 3 undefined 4 undefined 5 undefined 19

20 Esempio di stato var vet1 = new Array(6); var vet2 = new Array(6); var a = 0; vet1[0] = 4; Stato risultante: {(vet1, ), (vet2, ), (a, 0)} undefined 2 undefined 3 undefined 4 undefined 5 undefined 0 undefined 1 undefined 2 undefined 3 undefined 4 undefined 5 undefined 20

21 Esempio di stato Stato risultante: {(vet1, ), (vet2, ), (a, 0)} var vet1 = new Array(6); var vet2 = new Array(6); var a = 0; vet1[0] = 4; vet1[1] = a; vet2[1]=vet1[1]+2; undefined 3 undefined 4 undefined 5 undefined 0 undefined undefined 3 undefined 4 undefined 5 undefined 21

22 Esempio di stato - Attenzione Stato risultante: {(vet1, ), (vet2, ), (a, 0)} var vet1 = new Array(6); var vet2 = new Array(6); var a = 0; vet1[0] = 4; vet1[1] = a; vet2[1]=vet1[1]+2; vet2 = vet1; undefined 3 undefined 4 undefined 5 undefined 0 undefined undefined 3 undefined 4 undefined 5 undefined vet1 e vet2 condividono lo stesso array cioe' hanno lo stesso reference nell ambiente l'area di memoria puntata dal vecchio reference di vet2 non e' piu' accessibile 22

23 Esempio di stato - Attenzione Stato risultante: {(vet1, ), (vet2, ), (a, 0)} var vet1 = new Array(6); var vet2 = new Array(6); var a = 0; vet1[0] = 4; vet1[1] = a; vet2[1]=vet1[1]+2; vet2 = vet1; vet1[2]=vet2[1]; undefined 4 undefined 5 undefined 0 undefined undefined 3 undefined 4 undefined 5 undefined la modifica a vet2 modifica anche vet2, dal momento che hanno lo stesso reference nell'ambiente 23

24 Osservazioni sugli array Anche l'operatore di uguaglianza opera sugli array: due variabili array se condividono la stessa struttura esercizio: valutare (vet1==vet2) prima e dopo l'istruzione vet2 = vet1; Gli operatori di confronto (<, >) non sono definiti su array attenzione: non viene generato errore, ma sempre false! Nell'ambiente EasyJS le funzioni write e writeln funzionano anche su array stampano gli elementi dell'array separati da virgole 24

25 Manipolazione di array La manipolazione di array avviene spesso tramite cicli, e in particolare (di solito) con l'istruzione iterativa for L'indice del ciclo varia da 0 a lunghezza-1 viene usato per scandire tutto l'array e per accedere a ciascun elemento dell'array Esempio: lettura e stampa di un vettore var lunghezza = readnum(); var i; var vet = new Array(lunghezza); for (i = 0; i < lunghezza; i++) vet[i] = readnum(); for (i = 0; i < lunghezza; i++) writeln("elemento di indice " + i + " " + vet[i]); 25

26 Array dinamici In JS gli array sono strutture dinamiche: il numero degli elementi puo' variare durante l'esecuzione del programma Per aggiungere un elemento ad array e' possibile assegnare un valore ad un elemento di indice successivo all'ultimo attualmente esistente Esempio: var L = 5, i = 0; var vet = new Array(L); //vet ha lunghezza 5 //gli elementi del vettore vengono riempiti con //le potenze di 2 for (i = 0;i < L; i++) vet[i] = Math.pow(2,i); vet[l] = Math.pow(2,L); //<--- vet ora ha lunghezza 6 26

27 Array dinamici Esempio var L = 5, i = 0; var vet = new Array(L); //vet ha lunghezza 5 //gli elementi del vettore vengono riempiti con //le potenze di 2 for (i = 0;i < L; i++) vet[i] = Math.pow(2,i); vet[l] = Math.pow(2,L); //<--- vet ora ha lunghezza 6 vet[l+2] = -1; //aggiunge due elementi undefined

28 Lunghezza di un array In JS la lunghezza di un array e' una proprieta' dell'array Per conoscere la lunghezza di un array di nome occorre accedere alla sua proprieta' length Sintassi: nome_array.length Attenzione: la lunghezza dell'array e' uguale al massimo indice + 1 var L = 5, i = 0; var vet = new Array(L); writeln(vet.length); //stampa: 5 for (i = 0;i < vet.length; i++) //usa vet.length vet[i] = Math.pow(2,i); vet[vet.length] = Math.pow(2,L); //<--- vet ora ha lunghezza 6 writeln(vet.length); //stampa: 6 vet[vet.length+1] = -1; //aggiunge due elementi writeln(vet.length); //stampa: 8 28

29 Esempio Calcolo della somma degli elementi in un vettore var a = new Array(10); var i, somma = 0; // qui le istruzioni per riempire l'array //... //... // somma degli elementi nell'array: for (i = 0; i < a.length; i++) somma += a[i]; //stampiamo la somma: writeln(somma); 29

30 Esempio Calcolo del massimo tra gli elmenti (numerici) di un vettore var a = new Array(10); var i, max; // qui le istruzioni per riempire l'array //... //... // calcolo il massimo max = -Infinity; for (i = 0; i < a.length; i++) if (a[i]>max) max = a[i]; //stampiamo il massimo writeln(max); 30

31 Esempio Ricerca di un elemento con valore v in un array di lunghezza L Supponiamo che l'array non sia ordinato Calcolare true se l'elemento viene trovato, false altrimenti var a = new Array(10); var i, trovato = false; var v = readnum(); // elemento da cercare // qui le istruzioni per riempire l'array //... for(i = 0;i<a.length;i++) if (a[i] == v) trovato = true; //stampiamo il risultato if (trovato) writeln('trovato!'); else writeln('non trovato!'); 31

32 Esempio alternativa piu' efficiente Ricerca di un elemento con valore v in un array di lunghezza L, supponiamo che l'array non sia ordinato Se l'elemento viene trovato, stampare anche l'indice corrispondente nell'array Usiamo un' iterazione indeterminata var a = new Array(10); var i = 0, trovato = false; var v = readnum(); // elemento da cercare // qui le istruzioni per riempire l'array //... while (i<a.length &&!trovato) if (a[i] == v) trovato = true; else i++; //stampiamo il risultato if (trovato) writeln('trovato! indice = ' + i); else writeln('non trovato!'); 32

33 Esempio Shift a sinistra degli elementi di un vettore Occorre spostare di una posizione a sinistra tutti gli elementi del vettore. Es. con array di lunghezza vet[0] = vet[1] var vet = new Array(5); //... for(i = 0; i<vet.length-1; i++) vet[i] = vet[i+1]; vet[1] = vet[2] vet[2] = vet[3] vet[3] = vet[4] 33

34 Esempio Shift circolare a sinistra degli elementi di un vettore E' come uno shift a sinistra, ma l'elemento che esce dalla prima posizione rientra nell'ultima posizione var vet = new Array(5); //... var c = vet[0]; for(i = 0; i<vet.length-1; i++) vet[i] = vet[i+1]; vet[vet.length-1] = c; 34

35 Esercizio Scrivere il codice JS per implementare lo shift e lo shift circolare a destra 35

36 Esempio Scrivere un programma per leggere N interi. Successivamente, leggere un intero y e stampare i valori maggiori di y precedentemente letti var N = readnum(); var vet = new Array(N); var y; var i; // leggo gli N valori for (i=0;i<n;i++) vet[i] = readnum(); // leggo y y = readnum(); // stampo i numeri > y for (i = 0; i<n; i++) if (vet[i]>y) writeln(vet[i]); 36

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 Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Array Multidimensionali 2 Array a piu' dimensioni In JavaScript non esistono costrutti specifici per definire

Dettagli

La programmazione nel linguaggio JavaScript. Il programma

La programmazione nel linguaggio JavaScript. Il programma Il programma Nei linguaggi di programmazione il programma è una funzione che ha come argomento i dati digitati in input e opportunamente convertiti. la descrizione della funzione (ovvero il programma)

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 14: ALGORITMI di ordinamento di array RICERCA sequenziale e binaria Array bidimensionali (matrici) Passaggio di argomenti al main Operazioni su array Un array

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Lettura di Stringhe e Numeri Interazione con l utente 2 Lettura di Stringhe e Numeri Le funzioni write

Dettagli

Introduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Introduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 7 Array S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Sommario Unità

Dettagli

Array. Walter Didimo

Array. Walter Didimo Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente

Dettagli

Linguaggio C: Array Valeria Cardellini

Linguaggio C: Array Valeria Cardellini Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione

Dettagli

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Variabili e Assegnamento Seconda Parte 2 Variabili Una variabile è un identificatore a cui è associato

Dettagli

Gli Array. Dichiarazione di un array

Gli Array. Dichiarazione di un array Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Istruzioni Iterative Istruzioni do-while e break 2 Istruzione While - Repetita Sintassi guardia del ciclo

Dettagli

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza. Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, )

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza. Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, ) Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Il tipo ARRAY Problemi (calcolo della frequenza, trasposta, ) Editazione a cura di Bombini T., De Candia P. e Galantino

Dettagli

Array. Definizione e utilizzo di vettori

Array. Definizione e utilizzo di vettori Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

Tipi derivati: Array

Tipi derivati: Array Tipi derivati: Array Array Gli array (o vettori) sono composti da elementi omogenei (cioè hanno tutti lo stesso tipo base) ogni elemento è identificato all'interno dell'array da un numero d ordine detto

Dettagli

Precisazione sulla visibilità delle variabili durante l esecuzione delle funzioni

Precisazione sulla visibilità delle variabili durante l esecuzione delle funzioni 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)

Dettagli

Esercizi su array di array

Esercizi su array di array Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 C. Limongelli Gennaio 2010 1 Contenuti Fusione di due array ordinati, con eliminazione di duplicati Verifica array bidimensionale

Dettagli

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

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

Problema: ricerca di un elemento

Problema: ricerca di un elemento Problema: ricerca di un elemento Ricerca di un numero all'interno di un vettore. Assumere che la dimensione del vettore sia uguale ad N e che la prima posizione del vettore sia uguale a 0. Esempio: Se

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 4 23/10/2018

Esercitazioni di Fondamenti di Informatica - Lez. 4 23/10/2018 Esercitazioni di Fondamenti di Informatica - Lez. 4 2/0/20 Esercizi sui tipi in C I codici e le soluzioni degli esercizi sono nella cartella parte. Dato il seguente codice, trovare gli errori, correggerli

Dettagli

Programmazione strutturata IV e Gli array. Dove siamo. Un esercizio. Oggi. Schema 1. Prima idea. 7. Programmazione strutturata 4 & Array

Programmazione strutturata IV e Gli array. Dove siamo. Un esercizio. Oggi. Schema 1. Prima idea. 7. Programmazione strutturata 4 & Array Programmazione strutturata IV e Gli array Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 7 18/10/2013

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

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata, Esempio: fai un giro del parco di

Dettagli

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.

Dettagli

5.4 Istruzione di input L istruzione di input ha la forma:

5.4 Istruzione di input L istruzione di input ha la forma: 5.2 Istruzione di output L istruzione di output ha la forma: cout

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

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

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

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

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

Dettagli

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

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

Dettagli

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E08 Esercizi su Array C. Limongelli Gennaio 2012 1 Contenuti q Esercizi: Lettura e stampa di un array Massimo elemento di un array

Dettagli

7. Programmazione strutturata 4 & Array. ! No lezione il marzo. ! Lab.? ! Esempio. ! Introduzione agli array

7. Programmazione strutturata 4 & Array. ! No lezione il marzo. ! Lab.? ! Esempio. ! Introduzione agli array Programmazione strutturata IV e Gli array Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 7 16/03/2015

Dettagli

Prof. G. Ascia. I puntatori. Fondamenti di Informatica

Prof. G. Ascia. I puntatori. Fondamenti di Informatica I puntatori 1 Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

Dettagli

INFORMATICA. Vettori e matrici in C++ A cura dell Ing. Claudio Traini

INFORMATICA. Vettori e matrici in C++ A cura dell Ing. Claudio Traini INFORMATICA Vettori e matrici in C++ A cura dell Ing. Claudio Traini Vettori Il vettore è una collezione di variabili tutte dello stesso tipo (detto appunto tipo) di lunghezza prefissata. Questa collezione

Dettagli

array in Java come disporre di un numero arbitrariamente alto di variabili omogenee

array in Java come disporre di un numero arbitrariamente alto di variabili omogenee array in Java come disporre di un numero arbitrariamente alto di variabili omogenee variabili con pedice? per memorizzare i coefficienti di polinomio di grado N occorrono N+1 variabili polinomio di grado

Dettagli

Tipi derivati. Strutture Matrici typedef enum

Tipi derivati. Strutture Matrici typedef enum Tipi derivati Strutture Matrici typedef enum Le strutture Una struttura, o struct, è un tipo di dato derivato che permette di aggregare un insieme di elementi, detti campi, all'interno di un unica entità

Dettagli

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Variabili e input/ Alessandra Giordani Lunedì 18 marzo Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono

Dettagli

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E09 Esercizi su Array C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esercizi su array 1 Contenuti Esercizi:

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

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono uno dei

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

Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto Il Pascal (continua) Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Selezione multipla! Nel

Dettagli

Array. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array

Array. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array Array Una matrice (array) è un insieme ordinato e omogeneo di dati: è una variabile che contiene uno o più valori in sequenza ordinata. Questi valori si chiamano "elementi" e devono avere lo stesso tipo

Dettagli

Puntatori e array. Tipo puntatore Vettori

Puntatori e array. Tipo puntatore Vettori Puntatori e array Tipo puntatore Vettori I puntatori un puntatore si definisce scrivendo il tipo cui si punta, l'asterisco e il nome della variabile esempi di dichiarazione: int *ptr1, *ptr2; un puntatore

Dettagli

I Dati Strutturati ed il Linguaggio C

I Dati Strutturati ed il Linguaggio C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Dati Strutturati Esigenze Vettori

Dettagli

Dichiarazione di variabili

Dichiarazione di variabili Dichiarazione di variabili ESEMPIO: somma di due numeri

Dettagli

Associazione Variabile-Indirizzo

Associazione Variabile-Indirizzo I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

Dettagli

Esercitazione di Reti degli elaboratori

Esercitazione di Reti degli elaboratori Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione

Dettagli

Programmare. Compilatori e interpreti. Editor :: vi. Hello1.c. #include <stdio.h> >> cc Hello1.c. main() { printf( \n Hello World!

Programmare. Compilatori e interpreti. Editor :: vi. Hello1.c. #include <stdio.h> >> cc Hello1.c. main() { printf( \n Hello World! Programmare Hello1.c #include printf( \n Hello World! \n ); >> cc Hello1.c >> a.out Hello World! >> Hello1.c = file sorgente per scriverlo occorre un editor cc = compilatore per altri linguaggi

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Ricerca di un valore nell array (già vista) Inserimento di un valore nell array Eliminazione di un elemento dall array

Ricerca di un valore nell array (già vista) Inserimento di un valore nell array Eliminazione di un elemento dall array Algoritmi su array Per utilizzare gli array come insiemi dinamici di dati (la cui composizione, cioè, può variare dinamicamente) è necessario realizzare operazioni quali: Ricerca di un valore nell array

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

Dettagli

Ricerca di un valore nell array (già vista) Inserimento di un valore nell array Eliminazione di un elemento dall array

Ricerca di un valore nell array (già vista) Inserimento di un valore nell array Eliminazione di un elemento dall array Algoritmi su array Per utilizzare gli array come insiemi dinamici di dati (la cui composizione, cioè, può variare dinamicamente) è necessario realizzare operazioni quali: Ricerca di un valore nell array

Dettagli

Strutture Dati per Inserimento Ordinato. Luca Abeni

Strutture Dati per Inserimento Ordinato. Luca Abeni Strutture Dati per Inserimento Ordinato Luca Abeni Esempio: Ordinamento di Numeri A cosa servono i tipi di dato strutturati? Non bastano i tipi scalari? Capiamolo con un esempio... Problema: dato un insieme

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

Dettagli

PUNTATORI. Ivan Lanese

PUNTATORI. Ivan Lanese PUNTATORI Ivan Lanese Argomenti Puntatori Liste Puntatori Un puntatore è un tipo di dato che contiene l'indirizzo di memoria di un altro tipo di dato In c+o i puntatori sono tipati: avremo puntatori a

Dettagli

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il

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

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Riepilogo della puntata precedente

Riepilogo della puntata precedente Riepilogo della puntata precedente Da quanto detto la volta scorsa, la scelta di passare un array mediante un puntatore è giustificata solo dal risparmio, in termini di memoria, che tale scelta comporta.

Dettagli

I tipi strutturati e i record in C++

I tipi strutturati e i record in C++ I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi

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

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI Esercitazioni del corso di: ALGORITMI E STRUTTURE DATI Tutor: Francesca Piersigilli email: francesca.piersigilli@unicam.it Strutture dati elementari Tecniche di organizzazione dei dati: scelta della struttura

Dettagli

Istruzioni di controllo

Istruzioni di controllo Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende

Dettagli

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class

Dettagli

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova Casi di prova Casi di prova Quando si vuole testare un algoritmo si devono costruire vari casi di prova. Invece di eseguire il programma più volte si può costruire un file di dati contenente tutti i casi

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2

Dettagli

Capitolo 16 Iterazione

Capitolo 16 Iterazione Capitolo 16 Accesso a sequenze I problemi esaminati in questo capitolo hanno lo scopo di accedere ed elaborare delle sequenze sequenze immesse dall utente lette dalla tastiera di lunghezza nota con un

Dettagli

Laboratorio di Python

Laboratorio di Python per casa 17 marzo 2015 Sommario per casa 1 2 3 4 per casa a casa per casa Scrivere una funzione che presi due numeri come parametri della funzione mi stampi il MCD tra i due numeri. Usare ciclo for. Scrivere

Dettagli

Fondamenti di Informatica

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

Dettagli

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

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 7 Iterazioni nei programmi:definite e indefinite Tre costrutti: While Do...While For Esempi Istruzioni di iterazione Le istruzioni iterative permettono di ripetere

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Gestione dei compiti

Gestione dei compiti 1 of 18 23/10/2006 103 Gestione dei compiti Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Domanda n. 1 Argomento: Logica booleana Domanda: Qual e' il risultato

Dettagli

Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java

Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int

Dettagli

Laboratorio - Programmazione

Laboratorio - Programmazione Laboratorio - Programmazione Angelo Di Iorio angelo.diiorio@unibo.it Progetto L obiettivo del progetto è realizzare un applicazione PHP da linea di comando che raccoglie dati sui terremoti avvenuti in

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