Gli ARRAY. Corso di Programmazione Cefi Informatica

Documenti analoghi
Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Elementi di Informatica A. A. 2016/2017

Linguaggio Macchina. Numeri binari. E il linguaggio che il microprocessore comprende. In Esadecimale

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Gli Array. Dichiarazione di un array

Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;

VARIABILI E COSTANTI

PREPARAZIONE DI UN PROGRAMMA

Tipi derivati: Array

Esempio su strutture dati dinamiche: ArrayList

Corso di PHP. Prerequisiti. 2.1 Variabili. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

Informatica 7. appunti dalle lezioni del 20 e 22/10/2010

ALGORITMI E STRUTTURE DATI

PROCEDURE E FUNZIONI

Corso di Fondamenti di Informatica

Dati due punti sul piano calcolare la loro distanza

CORSO DI PROGRAMMAZIONE

Dispensa di Informatica II.6

Corso di PHP. Prerequisiti. 4.1 Array sequenziali. Variabili semplici Operazioni su variabili Strutture di controllo

L AMBIENTE CODE BLOCKS E L IO

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

I tipi strutturati e i record in C++

Corso di Informatica

Vettori e Matrici (array)

Vettori e Matrici (array)

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

L AMBIENTE CODE BLOCKS E L IO

Puntatori. Fondamenti di Programmazione

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

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

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Verso i puntatori: Cosa è una variabile?

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Elementi di Base. Introduzione a Python.

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Programma... Autoboxing / unboxing Array Classe Rettangolo / classe Quadrato / Gerarchia e ereditarietà. Laboratorio di Programmazione - Esercitazio 1

Caratteristiche di un linguaggio ad alto livello

Tipi di dato semplici

Associazione Variabile-Indirizzo

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

Vettori e Matrici (array)

Corso di Informatica A.A

Variabili dinamiche. Obiettivi: Presentare le variabili dinamiche, allocate e deallocate nell area HEAP, e le funzioni malloc e free

Array. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Introduzione al C++ (continua)

Gerarchia di classi Java 1

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

Riprendiamo l esercizio calcolatrice

Excel & VBA. Excel e Visual Basic for Application

Allocazione dinamica della memoria

Strategie di programmazione

Introduzione Generalitá sull uso degli array Array allocabili Funzioni intrinseche. Array. Fondamenti di Informatica T (A-K) AA

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

TIPI PRIMITIVI E CLASSI WRAPPER

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Programmazione in Java (I modulo) Lezione 4

! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Corso di Programmazione I

Il linguaggio C. Puntatori e dintorni

Array. Definizione e utilizzo di vettori

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Java Classi wrapper e classi di servizio. Classi di servizio

CORSO DI PROGRAMMAZIONE

4 GLI ARRAY E LE STRINGHE

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Variabili e tipi di. Alessandra Giordani Lunedì 11 aprile

ArrayList. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)

Le strutture /2. Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare?

Programmazione in Java (I modulo)

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Introduzione alla programmazione. Alice Pavarani

Le strutture /1. struct temp {char titolo[200]; char autore[100]; int pagine; } ; typedef struct temp libro;

Esempio su strutture dati dinamiche: ArrayList

Parametri by reference. Funzioni. Passaggio dei parametri. Parametri by reference. Soluzione. Problemi

&v restituisce l indirizzo della zona di memoria allocata per v.

Introduzione al linguaggio C

Introduzione al linguaggio C Primi programmi

Modulo 2: Strutture fondamentali della programmazione Java

Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Indovina la lettera...

Impariamo a programmare in. Lezione 7

Primi programmi in C

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione

Java Classi wrapper e classi di servizio. Classi di servizio

Transcript:

VB.NET Gli ARRAY Gli array a una dimensione Gli array, o vettori, sono spazi di memoria in cui vengono immagazzianti in massa più variabili dello stesso tipo, accessibili tramite un indice. Prendiamo un problema semplice che capita spesso: la struttura del programma richiede che siano utilizzate moltissime variabili dello stesso tipo. Quello che verrebbe spontaneo scrivere a una persona che non conosce gli array è: Il programmatore navigato, invece, dichiara un array, molto più semplice, molto più sicuro, molto più maneggevole. La sintassi con cui si dichiara in generale un array è questa: 1

Il tipo Array Si può dichiarare e inizializzare un array usando questo costrutto: Dim frase() as String={ Buongiorno, a, tutti } Il Visual basic.net consente di definire gli array in diversi modi. È possibile dichiarare un array come variabile di tipo Array: Dim arr as Array Questa potrebbe essere definita come un array non tipizzato: ogni elemento d questo array può contenere dati di qualsiasi tipo,e in effetti è possibile assegnare a questo array un array di qualsiasi tipo.per esempio, il codice che segue assegna all array un array di valore di tipo Integer: Dim arr as Array Dim a() as Integer={12,16,20} arr=ctype(a,array) Gli array È possibile invece definire un array che contiene solo dati di un tipo definito. Per esempio: Dim nome() as String={ pino, mario, giovanni } Dim valore(3) as Integer Dim miscdata() as Object={ this,12d, a c} Dim objarray() as Object miscdata e objarray sono array di tipo Object;i singoli membri possono essere di qualsiasi tipo di dati, ma si possono assegnare loro solo array di tipo riferimento. Per esempio, l assegnazione: objarray=valore mi genera un errore perché l array valore è di tipo intero e un integer non è un tipo riferimento. Invece l assegnazione objarray=nome è esatta perchè il tipo String è di riferimento 2

La classe System.Array (1/2) La classe System.Array (2/2) Nota: alcuni metodi comprendono argomenti molto avanzati come i Generics e i Delegate che studieremo nelle prossime dispense 3

Le matrici Le matrici in VB.net vengono rappresentate in questo modo: Dim A( 3,4) dove 3 e 4 sono le dimensioni dell array. Esempio: Dim a(, ) as Object Matrice non inizializzata a due dimensioni Dim b(200,2) as Object Matrice non inizializzata a due dimensioni con 201 e 3 elementi Tutte le matrici di Vb.net sono derivate dal tipo System.Array nella libreria del framework.net. Esempio: Dim mioarr as Array mioarr=array.createistance(gettype(integer),10) Il Redim In Vb.net gli array sono già dinamiche, ossia è possibile modificarne il numero di elementi in una determinata dimensione, senza dover specificare in anticipo che l array è di tipo dinamico. Per esempio in V6 per creare un array dinamico si doveva dichiarare un array non inizializzato, con un codice come questo: Dim arr() as Integer Index=10 Redim preserve arr(index) Invece con Vb.net, non occorre dichiarare un array non inizializzata;per cui il codice semplificato è: Dim index as Integer=10 Dim arr(index) as Integer index=20 Redim preserve arr(index) 4

La struttura For Each Il For Each è una struttura iterativa studiata per iterare attraverso array e collection di elementi in modo semplice. Sintassi: Gli array come campi struttura Gli array dichiarati come campi di strutture non possono avere un indice specificiato, ma devono rimanere del tutto indeterminati. L'unico modo in cui è possibile determinare le dimensioni dell'array è ridimensionarlo successivamente alla dichiarazione di una variabile struttura: 5

La classe arraylist (1/2) L'arraylist è una classe, pertanto si istanzia come tale con la consueta sintassi: Come l'array, possiamo accedere a ogni suo elemento tramite un indice: La classe arraylist (2/2) 6

Esempio HashTable L'Hashtable lavora quasi allo stesso modo, ma, invece di avere ogni elemento contraddistinto da un indice (numerico), ha ogni elemento contraddistinto da una chiave (stringa) che bisogna specificare come secondo parametro nella procedura Add e come unico parametro in Remove. Tuttavia ci sono alcuni metodi non presenti in un ArrayList, tra i quali troviamo: ContainsKey(x) / ContainsValue(x) : restituisce vero se la chiave o il valori specificati sono presenti nell'hashtable Keys / Values : restituisce un collezione di tutte le chiavi o di tutti i valore presenti nell'hashtable. Quindi non è possibile modificare nè inserire alcun valore da queste collezioni, ma solo leggerne 7

SortedList La potenza delle SortedList sta nel fatto che possono mantenere la lista degli elementi ordinata secondo la chiave: come l'hashtable, anche sortedlist supporta due array di chiavi e valori associati. Usa gli stessi metodi di hashtable e ne implementa altri: GetByIndex(I) / GetKey(I) : restituisce il valore o la chiave posizionati all'indice I IndexOfKey(O) / IndexOfValue(O) : restituisce l'indice della chiave O o del valore O La SortedList ordina gli elementi confrontando le chiavi in modo Case-Sensitive, quindi le maiuscole e le minuscole vengono considerate lettere differenti. Conversione di dati Il Framework.Net è in grado di eseguire conversioni automatiche a runtime verso tipi di ampiezza maggiore, per esempio è in grado di convertire Int16 in Int32, Char in String, Boolean in Byte e via dicendo. Queste operazioni di conversione vengono dette widening (dall'inglese wide = largo), ossia che depongo un valore contenuto in una variabile che occupa dello spazio in una che ne occupa di più. Fin qui nessun problema. Gli operatori di conversione servono per eseguire conversioni che vanno nella direzione opposta, e che sono quindi, narrowing (dall'inglese narrow = stretto). Queste ultime possono comportare la perdita di dati e perciò generano un errore se implicite. 8

L operatore Ctype (1/2) CType è l'operatore di conversione universale e permette la conversione di qualsiasi tipo in qualsiasi altro tipo, almeno quando questa è possibile. La sintassi è molto semplice: L operatore Ctype (2/2) Questa lista riporta alcuni casi in cui è bene usare esplicitamente l'operatore di conversione CType: Per convertire un valore intero o decimale in un valore booleano Per convertire un valore Single o Double in Decimal Per convertire un valore intero con segno in uno senza segno Per convertire un valore intero senza segno in uno con segno della stessa ampiezza (ad esempio da UInt32 a Int32). Oltre a CType, esistono moltissime versioni più corte di quest'ultimo che convertono in un solo tipo: CInt converte sempre in Int32, CBool sempre in booleano, CByte in byte, Cshort in Int16, etc..è inopportuno utilizzare CStr poichè ci si può sevire della funzione ToString ereditata da ogni classe da System.Object; allo stesso modo, è meglio evitare CDate, a favore di Date.Parse, come si vedrà nella lezione relativa alle date. 9

Type of TypeOf serve per controllare se una variabile è di un certo tipo, deriva da un certo tipo o implementa una certa interfaccia, ad esempio: 10