Vettori e matrici. Lab.Calc. AA2005/062 Vettori Dichiarazione di un vettore di oggetti del tipo Tipo: Tipo identificatore[dimensione]; Uso di un elemento.

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

Introduzione al linguaggio C++
I tipi Strutturati.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Puntatori in C e C++.
String c++.
Stringhe di caratteri In linguaggio C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Array multidimensionali
Dati strutturati C++.
Selezione - approfondimento
3TC – Aprile 07 RIPASSOArray Procedure e Funzioni.
Introduzione ad Array e Funzioni 2IC/2ID – a. s.2012/13.
Anno accademico Array e puntatori in C.
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Gruppo di Lavoro Nazionale Open Group TANDEM EMAS e Ag21 delle PA Dott. Daniele Tartari UO Sistemi Gestione Ambientale Provincia di Bologna I risultati.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
Laboratorio di Linguaggi P R I M O C O M P I T I N O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione IV Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
LdL - LP1 - ver. 6 - lez aa Linguaggi di programmazione I La ricorsione Prof. Luigi Di Lascio Lezione 10.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
INFORMATICA Esercizi.
Laboratorio di Calcolo I 1) Introduzione Università Roma Tre Corso di Studi in Fisica AA 2002/03.
Funzioni. Lab.Calc. AA 2005/062 Astrazione Consiste nell'ignorare i dettagli e concentrarsi sull'essenziale: in particolare ci consente di utilizzare.
Iterazioni (for, do, while). Lab.Calc. AA2005/062 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while 3. for con.
Creazione di un programma eseguibile. Laboratorio di Calcolo AA2005/062 Livelli di programmazione Si può programmare a diversi livelli utilizzando linguaggi.
Lab. Calc. AA 2005/061 Classi. Lab. Calc. AA 2005/062 C e C++ Fino a questo punto abbiamo introdotto gli elementi base di qualsiasi linguaggio di programmazione,
Istruzioni di selezione (If/else/switch)
Primi Elementi di Programmazione in C++
Lab. Calc. AA 2005/061 puntatori. Lab. Calc. AA 2005/062 Attributi di un oggetto nome o identificatore; tipo o classe; valore o valori; indirizzo;
1 laboratorio di calcolo II AA 2003/04 seconda settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Dichiarazioni e tipi predefiniti nel linguaggio C
Il Linguaggio C.
Vettori e Funzioni 3 Maggio Esercizio 1 Si scriva un programma in linguaggio C che, dopo aver acquisito il contenuto di un vettore di interi da.
Java base III: Array e Stringhe
2000 Prentice Hall, Inc. All rights reserved. Capitolo 6 (Deitel) I vettori Sommario Introduzione Vettori Dichiarazione di vettori 6.4.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Isabella Fortunato - Rimini Sostegno allo sviluppo dellistruzione degli adulti EDALAB.
Unità Didattica 3 Linguaggio C
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
LdL - LP1 - lez 11 - ver 6 - aa Linguaggi di programmazione I Stringhe (II) Prof. Luigi Di Lascio Lezione 11.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Il linguaggio C Puntatori e dintorni.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Stringhe Una stringa è un vettore di char con un carattere costante \0 che indica la fine della stringa il terminatore rende differenti gli array di char.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
המים בגוף האדם. מגישות:קרישטל אירית אנגיל עירית.
Transcript della presentazione:

Vettori e matrici

Lab.Calc. AA2005/062 Vettori Dichiarazione di un vettore di oggetti del tipo Tipo: Tipo identificatore[dimensione]; Uso di un elemento del vettore: identificatore[elemento] Dove dimensione e elemento sono degli oggetti di tipo int

Lab.Calc. AA2005/063 NB Diversamente da altri linguaggi in C e C++ il primo elemento di un vettore ha indice 0 e l'ultimo, se n è la dimensione del vettore, ha indice n-1. Come in tutti i linguaggi la dichiarazione del vettore ed il suo dimensionamento comportano lallocazione della memoria necessaria per la dimensione dichiarata: se si prova ad usare un elemento con indice superiore a n-1 si ha uno sfondamento della memoria, errore che comporta problemi in punti imprevedibili del programma!

Lab.Calc. AA2005/064 Esempi di dichiarazioni int V[25]; //dichiarazione di un vettore V //con 25 elementi integer //V[0],V[1]…V[24]. double vector[3]; //dichiarazione di un vettore //vector con 3 elementi double //vector[0],vector[1],vector[2]. char word[50]; //dichiarazione di un vettore word //con 50 elementi character //word[0],…,word[49].

Lab.Calc. AA2005/065 Una stringa è un vettore di caratteri #include //definizione degli oggetti // stringa di caratteri string studenti[54]; // dichiarazione del vettore //studenti con 54 elementi // di tipo stringa di //caratteri // studenti[0]…studenti[53]. Stringhe

Lab.Calc. AA2005/066 NB una stringa contenente n caratteri visibili e un vettore di caratteri di dimensione n+1, infatti lultimo carattere, \0, indica la fine della stringa.

Lab.Calc. AA2005/067 Inizializzazione int V[25] = {3, 5, 6, 1} ; double vector[3] = {-1.2, 4.7, 5.9} ; char word[50] = {'s', 'p', 'o', 't'}; string student[54] = {"Chris Berkley", "Kevin Chao", "Missy Mesfin","Joel Triemstra"}; int M[ ] = {1, 4, 15, 2}; char Name[ ] = "Michael Bird";

Lab.Calc. AA2005/068 Inizializzazione Queste tre dichiarazioni sono equivalenti: char Name[ ] = "Michael Bird"; char Name[ ] = {'M','i','c','h','a','e','l',' ', 'B','i','r','d','\0'}; char Name[13] = {'M','i','c','h','a','e', 'l',' ', 'B','i','r','d','\0'}; Ovvero Name[0] = 'M', Name[1] = 'i' … Name[11] = 'd', Name[12] ='\0'

Lab.Calc. AA2005/069 Esempi di inizializzazione e uso double A[20] ={4.1,5.3,10.6,100.9,23,-12}; double sum = 0; for(int j =0; j<20; j = j + 1) sum = sum + A[j]; cout << "la somma vale "<<sum<<"."<<endl;

Lab.Calc. AA2005/0610 Esempi: uso di ++ int A[ ] ={0,10,20,30,40,50,60,70,80,90}; int j = 5; cout<< "j vale "<<j<<endl; cout<< "A[j++] vale " << A[j++]<<endl; cout << "j ora vale "<<j <<endl;

Lab.Calc. AA2005/0611 Esempi: uso di -- int A[ ] ={0,10,20,30,40,50,60,70,80,90}; int j = 5; cout<< "j vale "<<j<<endl; cout<< "A[j--] vale " << A[j--]<<endl; cout << "j ora vale "<< j <<endl;

Lab.Calc. AA2005/0612 Esempi: uso di ++ int A[ ] ={0,10,20,30,40,50,60,70,80,90}; int j = 5; cout<< "j vale "<<j<<endl; cout<< "A[++j] vale "<< A[++j]<<endl; cout << "j ora vale "<<j <<endl;

Lab.Calc. AA2005/0613 Esempi: uso di -- int A[ ] ={0,10,20,30,40,50,60,70,80,90}; int j = 5; cout<< "j vale "<<j<<endl; cout<< "A[--j] vale "<< A[--j]<<endl; cout << "j ora vale "<<j <<endl;

Lab.Calc. AA2005/0614 Vettori multidimensionali (matrici) Dichiarazione di una matrice con –rDim righe –cDim colonne Tipo identificatore[rDim][cDim]; Esempio: double tabella[3] [4];

Lab.Calc. AA2005/0615 Dichiarazione ed inizializzazione Per l'inizializzazione si elencano gli elementi della prima riga, poi della seconda etc… int M[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; oppure int M[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

Lab.Calc. AA2005/0616 Esempio: prodotto scalare #include int main( ) { double A[3],B[3]; double pScal=0.; cout <<"inserisci gli elementi del vettore A"<< endl; cin >> A[0]>> A[1]>>A[2]; cout <<"inserisci gli elementi del vettore B"<< endl; cin >> B[0]>> B[1]>>B[2]; for(int j=0; j<3; j++) { pScal += A[j]*B[j]; } cout <<" A scalare B vale "<< pScal<<endl; return 1;}

Lab.Calc. AA2005/0617 Esempio: prodotto vettoriale #include int main( ) { double A[3]= {1.,0.,0. }; double B[3]= {0.,1.,0. }; double C[3]; int permutazioni[3][2]={ {1,2}, {2,0}, {0,1}}; for(int j=0; j<3; j++) { //loop sulle 3 componenti di C int k=permutazioni[j][0]; int m=permutazioni[j][1]; C[j]=A[k]*B[m]-A[m]*B[k]; cout<<"C["<<j<<"]="<<C[j]<<endl; } return 1;}

Lab.Calc. AA2005/0618 Esempio: modulo di un vettore #include #include // funzioni matematiche (libreria C) int main( ) { double A[3]; double mod=0.; cout <<"inserisci gli elementi del vettore A"<< endl; cin >> A[0]>> A[1]>>A[2]; for(int j=0; j<3; j++) { mod += A[j]*A[j]; } cout <<" il modulo quadro di A vale "<< mod<<endl; if( mod > 0 ) { mod = sqrt(mod); cout <<" il modulo di A vale "<< mod<<endl; } return 1;}

Lab.Calc. AA2005/0619 Esempio: prodotto di matrici #include // calcolo di M3=M1*M2 //////////////////////// // | 1 0 | // | 2 1 | * | | // | 0 2 | | | //////////////////////// int main( ) { int M1[3][2]= { {1,0}, {2,1}, {0,2}}; int M2[2][3]= { {0,1,2}, {1,2,1}}; int M3[3][3]; for(int j=0; j<3; j++) { //loop sulle righe di M1 for(int k=0; k<3; k++) { //loop sulle colonne di M2 M3[j][k]=0; for(int l=0; l<2; l++ ) {//loop sulle colonne di M1 M3[j][k]+= M1[j][l]*M2[l][k]; }}} return 1;}

Lab.Calc. AA2005/0620 Dimensionamento dinamico int * punt_int = new int[50]; è equivalente a int punt_int[50]; ma ci sono dei casi, qualora la dimensione di un vettore non sia nota a priori, in cui si può usare solo la prima forma. Possiamo infatti scrivere int n; int * punt_int; cin << n; punt_int = new int[n]; ma non cin << n; int punt_int[n]; // errore!

Lab.Calc. AA2005/0621 Allocazione dinamica della memoria L'operatore new alloca la quantità di memoria richiesta per un oggetto di tipo o classe tipo e restituisce l'indirizzo dell'area di memoria riservata (puntatore). Forma generale: new tipo

Lab.Calc. AA2005/0622 Delete Per liberare memoria allocata dinamicamente si usa la keyword delete, ovvero int * punt_int; punt_int = new int[50]; : delete[ ] punt_int;