monodimensionali: Vettori bidimensionali: Matrici

Slides:



Advertisements
Presentazioni simili
Array multidimensionali
Advertisements

Array (vettori) In linguaggio C / C++.
Introduzione ad Array e Funzioni 2IC/2ID – a. s.2012/13.
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)
APPUNTI SUL LINGUAGGIO C
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
Basi di OpenOffice Calc – 2009 A cura di: Di Cicco – Giannini - Periloso.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Parte 2 Programmare in Matlab – I Sommario: Introduzione: m-file Strutture condizionali e cicli –Istruzione “if” + Operatori logici in MatlabIstruzione.
Fondamenti di Informatica A - Massimo Bertozzi I PUNTATORI.
1 Simulazione Numerica dei Fenomeni di Trasporto Necessità di introduzione dei tensori  11  12  13  23  21  22 Vogliamo descrivere in un modo che.
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Unità A2 Java: le basi del linguaggio
Crea il tuo sistema aziendale sul web a partire dei fogli Excel che usi. ShareXLS
Java World Matrici.
Definizione di logaritmo
Esercizio fatture.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Gli array Moreno Marzolla
Pic16f84 Assembly I/O.
PRINCIPALI STRUTTURE DEI DATI
LE ARCHITETTURE NON VON NEUMANN
Array n-dimensionali e tipi di dati strutturati
MATRICI (ARRAY) IN MATLAB/OCTAVE
Excel 1 - Introduzione.
Process synchronization
Process synchronization
I FILES AD ACCESSO SEQUENZIALE
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Informatica per l’Ingegneria
Divide et Impera Quicksort Mergesort
Recap su: array e puntatori
HTML 4.01 Quinta lezione 22 Marzo 2004 di Ivano Stranieri.
Un editor intelligente!!!
© 2007 SEI-Società Editrice Internazionale, Apogeo
Secondo Programma in C.
I FILE di dati in C#.
Scrivere programmi corretti
Vari e semplici programmi.
Esercitazione su Instruction Level Parallelism
Process synchronization
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Bastoncini per moltiplicare
Unità A2 Java: le basi del linguaggio
La struttura dei primi programma in C
Lucidi della Pof.ssa Pazienza
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C Allocazione dinamica della memoria
Fogli di Calcolo Elettronici
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Target: classi terze Mercurio
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Passaggio di parametri per indirizzo
Array e Stringhe Linguaggio C.
Array (vettori) In linguaggio C / C++.
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Corso di Fondamenti di Informatica
Algoritmi di ordinamento
Corso di Fondamenti di Informatica
Transcript della presentazione:

monodimensionali: Vettori bidimensionali: Matrici Array Precisazioni monodimensionali: Vettori bidimensionali: Matrici

int [,] numeri = new int[n,m]; 1° step DICHIARAZIONE: dimensionamento e allocazione in memoria centrale int [,] numeri = new int[n,m];

int [,] numeri=new int[n,m]; Significato ed errori …. Se n e m esistono (supponiamo 3 e 5) allora … la matrice esiste ed è allocata cliccando sull’apposito simbolo l’editor di C# ci mostra il contenuto della matrice. Ovviamente nasce vuota (poi viene popolata). NOTARE gli indici!!! il valore massimo per le righe è 2 cioè n-1 il valore massimo per le colonne è 4 cioè m-1

POPOLAMENTO: la matrice viene popolata, caricata, riempita: int [,] numeri=new int[n,m]; Significato ed errori …. Se n e m esistono (supponiamo 3 e 5) allora … 2° step POPOLAMENTO: la matrice viene popolata, caricata, riempita: assegnamento input randomizzazione Ecco come l’editor di C#, in fase di debug, mostra la stessa matrice popolata.

int [,] numeri=new int[n,m]; ERRORE TIPICO (!) Se n e m NON esistono … per esempio PRIMA dichiaro e POI acquisisco n ed m ... ed il tentativo di toccare la matrice darebbe l’errore INDEX OUT OF RANGE la matrice verrebbe allocata così … … cioè? Non ha senso!!! OVVIAMENTE, dato che gli indici ammessi sono 0 e 0 non possiamo toccare NULLA.

idem con i vettori int [ ] colonne=new int[m]; supponiamo abbia m elementi , come le colonne della matrice (m era 5) … Utilizziamo il DEBUG: interruzioni (F9) esecuzione passo passo F11 prima dell’ F11 dopo l’esecuzione, l’array esiste, ha 5 elementi tutti = 0 NOTARE gli indici!!! il valore massimo l’indice è 4 m-1 Array durante il caricamento

accesso alle strutture dati 3° step Lavorare per colonna significa bloccare o muovere più lentamente la colonna stessa. Nell’es. la colonna resta a 0 e la riga passa da 0 a 5. Il ciclo sulle colonne scorre più lentamente: quindi è quello esterno (0,1,2 … verde, rosa, azzurro..) Il ciclo sulle righe è più veloce ed è all’interno di quello sulle colonne. esterno, più lento, arriva ad m (escluso) quindi è per le colonne … infatti! Es. caricamento per colonna (randomizzato)

accesso alle strutture dati Lavorare per riga significa bloccare o muovere più lentamente la riga stessa. Nell’es. la riga resta a 0 e la colonna passa da 0 a 5. Il ciclo sulle righe scorre più lentamente: quindi è quello esterno (0,1,2 … verde, rosa, azzurro..) Il ciclo sulle colonne è più veloce ed è all’interno di quello sulle colonne. esterno, più lento, arriva ad n(escluso) quindi è per le righe… infatti! Es. visualizzazione per riga

accesso alle strutture dati Se si conoscono le coordinate di una cella è possibile accedere (cioè prelevare, modificare, visualizza, memorizzare..) al valore di una cella direttamente, senza cicli, precisando riga e colonna di riferimento. In viola vediamo numeri[1,2]. Attenzione agli out of range !!

accesso alle strutture dati Es. visualizzazione diretta Per evitare errori, possiamo gestire la comunicazione o controllare gli indici Attenzione agli out of range !!

accesso alle strutture dati Se vogliamo sommare tutti gli elementi di una certa riga NON servono 2 cicli perché il numero di riga resta fisso. Lo stesso vale se la colonna è fissa. Es. somma dei valori dell’ultima riga … e non n se no provochiamo un out of range

usiamo gli strumenti del DEBUG!! Controllo i valori delle variabili … Contatori, indici, array e matrici … tutto!

usiamo gli strumenti del DEBUG!! Verifico immediatamente cos’è successo e intervengo. Qui …? n=3 e m=5 dove gli el. ammessi sono 3 : 0,1,2 e 5: 0,1,2,3,4 quindi ENTRAMBE sono out of range