Fondamenti di Programmazione
|
|
|
- Graziana Viviani
- 8 anni fa
- Visualizzazioni
Transcript
1 A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri Esercitatore: Dott. Roberto Petroccia Pagina del corso: Esercitazione del 19/11/08
2 Avviso Gli studenti degli anni successivi al primo possono sostenere la prova di esonero su un solo canale Lo stesso studente non può provare a sostenere due prove di esonero anche se poi ne consegna solo una
3 Indice 1. Soluzioni esercizi proposti mercoledì 12/11/08 2. Esercizi su ricorsione 3. Esercizi su matrici
4 Vettori bidimensionali int v [5][7]; Chiediamo che venga allocata memoria per contenere 5*7 interi v punta alla prima locazione di memoria allocata ci muoviamo in memoria scorrendo gli indici di riga (primo indice) e di colonna (secondo indice)
5 Vettori bidimensionali int v [5][5] v[0][0] v[0][1] v[0][2] v[0][3] v[0][4] v[1][0] v[1][1] v[1][2] v[1][3] v[1][4] v[2][0] v[2][1] v[3][0] v[3][1] v[4][0] v[4][1] v[2][2] v[2][3] v[2][4] v[3][2] v[3][3] v[3][4] v[4][2] v[4][3] v[4][4] indice di colonna indice di riga nome vettore
6 Vettori bidimensionali int v [5][5] v[0][0] v[0][1] v[0][2] v[0][3] v[0][4] v[1][0] v[1][1] v[1][2] v[1][3] v[1][4] v[2][0] v[2][1] v[3][0] v[3][1] v[4][0] v[4][1] v[2][2] v[2][3] v[2][4] v[3][2] v[3][3] v[3][4] v[4][2] v[4][3] v[4][4] La memoria viene allocata in maniera sequenziale v[0][0] v[0][1] v[0][2] v[0][3] v[0][4] v[1][0] v[1][1] v[1][2] v[1][3] v[1][4]
7 Vettori bidimensionali int v [5][5] v[0][0] v[0][1] v[0][2] v[0][3] v[0][4] v[1][0] v[1][1] v[1][2] v[1][3] v[1][4] v[2][0] v[2][1] v[3][0] v[3][1] v[4][0] v[4][1] v[2][2] v[2][3] v[2][4] v[3][2] v[3][3] v[3][4] v[4][2] v[4][3] v[4][4] Qual è il secondo elemento della quarta riga?
8 Vettori bidimensionali int v [5][5] v[0][0] v[0][1] v[0][2] v[0][3] v[0][4] v[1][0] v[1][1] v[1][2] v[1][3] v[1][4] v[2][0] v[2][1] v[3][0] v[3][1] v[4][0] v[4][1] v[2][2] v[2][3] v[2][4] v[3][2] v[3][3] v[3][4] v[4][2] v[4][3] v[4][4] Qual è il secondo elemento della quarta riga? v[3][1]
9 Vettori bidimensionali int v [5][5] v[0][0] v[0][1] v[0][2] v[0][3] v[0][4] v[1][0] v[1][1] v[1][2] v[1][3] v[1][4] v[2][0] v[2][1] v[3][0] v[3][1] v[4][0] v[4][1] v[2][2] v[2][3] v[2][4] v[3][2] v[3][3] v[3][4] v[4][2] v[4][3] v[4][4] Qual è il secondo elemento della quarta riga? v[3][1] Fate attenzione v[3][1] è diverso da v[1][3]
10 Vettori bidimensionali Vettori bidimensionale come parametri di funzioni int v [5][8];
11 Vettori bidimensionali Vettori bidimensionale come parametri di funzioni int v [5][8]; int funzione(int v[ ][ ]) {... non va bene, non so come muovermi in memoria
12 Vettori bidimensionali Vettori bidimensionale come parametri di funzioni int v [5][8]; int funzione(int v[ ][ ]) {... non va bene, non so come muovermi in memoria La dimensione delle colonne deve sempre essere specificata
13 Vettori bidimensionali Vettori bidimensionale come parametri di funzioni int v [5][8]; int funzione(int v[ ][ ]) {... non va bene, non so come muovermi in memoria La dimensione delle colonne deve sempre essere specificata #define COL 10 int funzione(int v[ ][COL ]) {...
14 Vettori bidimensionali Vettori bidimensionale come parametri di funzioni int v [5][8]; int funzione(int v[ ][ ]) {... non va bene, non so come muovermi in memoria La dimensione delle colonne deve sempre essere specificata #define COL 10 int funzione(int v[ ][COL ]) {... int funzione(int col, int v[ ][col ]) {...
15 Vettori bidimensionali Vettori bidimensionale come parametri di funzioni int v [5][8]; int funzione(int v[ ][ ]) {... non va bene, non so come muovermi in memoria La dimensione delle colonne deve sempre essere specificata int funzione(int row, int col, int v[ ][col ]) {... int funzione(int row, int col, int v[row ][col ]) {...
16 Esercizi 1. Scrivere una funzione che preso un array ed una dimensione (letta da input) riempia l array usando la funzione rand(). 2. Scrivere una funzione che stampi un array di interi. 3. Scrivere una funzione che presa una matrice ed una dimensione per riga e colonna (lette da input) riempia la matrice usando la funzione rand(). 4. Scrivere una funzione che stampi una matrice di interi. 5. Scrivere una funzione che stampi la somma degli elementi di una matrice di interi. 6. Scrivere una funzione che stampi solo gli elementi che si trovano in una riga e colonna pari di una matrice. 7. Implementare il selection sort. 8. Implementare la ricerca binaria.
17 1. Scrivere una funzione che preso un array ed una dimensione (letta da input) riempia l array usando la funzione rand(). #include <stdlib.h> #define MAX_VALUE 100 void riempiarray (int V[], int n) { int i; for (i = 0; i < n; i++) { V[i] = rand() % MAX_VALUE; int a; scanf ( %d, &a); int b[a]; riempiarray(b, a);
18 1. Scrivere una funzione che preso un array ed una dimensione (letta da input) riempia l array usando la funzione rand(). #include <stdlib.h> #define MAX_VALUE 100 void riempiarray (int V[], int n) { int i; for (i = 0; i < n; i++) { V[i] = rand() % MAX_VALUE; int a; scanf ( %d, &a); int b[a]; riempiarray(b, a); #include <stdlib.h> #define MAX_VALUE 100 void riempiarray2 (int V[], int n, int i) { if (i >= n) { return; V[i] = rand() % MAX_VALUE; riempiarray2(v, n, i+1); int a; scanf ( %d, &a); int b[a]; riempiarray2(b, a, 0);
19 2. Scrivere una funzione che stampi un array di interi. void stampaarray (int V[], int n) { int i; for (i = 0; i < n; i++) { printf( %d, V[i]); printf( \n ); int a; scanf ( %d, &a); int b[a]; stampaarray(b, a);
20 2. Scrivere una funzione che stampi un array di interi. void stampaarray (int V[], int n) { int i; for (i = 0; i < n; i++) { printf( %d, V[i]); printf( \n ); int a; scanf ( %d, &a); int b[a]; stampaarray(b, a); void stampaarray2(int V[], int n, int i) { if (i >= n) { printf( \n ); return; printf( %d, V[i]); stampaarray2(v, n, i+1); int a; scanf ( %d, &a); int b[a]; stampaarray2(b, a, 0);
21 3. Scrivere una funzione che presa una matrice ed una dimensione per riga e colonna (lette da input) riempia la matrice usando la funzione rand(). #include <stdlib.h> #define MAX_VALUE 100 void riempimatrice (int r, int c, int M[][c]) { int i, j; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { M[i][j] = rand() % MAX_VALUE; int x, y; scanf ( %d%d, &x,&y); int M[x][y]; riempimatrice(x, y, M);
22 3. Scrivere una funzione che presa una matrice ed una dimensione per riga e colonna (lette da input) riempia la matrice usando la funzione rand(). #include <stdlib.h> #define MAX_VALUE 100 #include <stdlib.h> void riempimatrice2 (int r, int c, #define MAX_VALUE 100 int M[][c], int i, int j) { void riempimatrice (int r, int c, int M[][c]) { if (i >= r) { int i, j; return; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { if (j >= c) { M[i][j] = rand() % MAX_VALUE; riempimatrice2(r, c, M, i+1, 0); return; M[i][j] = rand() % MAX_VALUE; riempimatrice2(r, c, M, i, j+1); int x, y; scanf ( %d%d, &x,&y); int x, y; int M[x][y]; scanf ( %d%d, &x,&y); riempimatrice(x, y, M); int M[x][y]; riempimatrice2(x, y,m, 0, 0);
23 4. Scrivere una funzione che stampi un matrice di interi. void stampamatrice (int r, int c, int M[][c]) { int i, j; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { printf( %3.d, M[i][j]); printf( \n ); printf( \n ); int x, y; scanf ( %d%d, &x,&y); int M[x][y]; riempimatrice(x, y, M); stampamatrice(x, y, M);
24 4. Scrivere una funzione che stampi un matrice di interi. void stampamatrice2 (int r, int c, int M[][c], int i, int j) { void stampamatrice (int r, int c, int M[][c]) { if (i >= r) { int i, j; printf( \n ); for (i = 0; i < r; i++) { return; for (j = 0; j < c; j++) { printf( %3.d, M[i][j]); if (j >= c) { printf( \n ); printf( \n ); stampamatrice2(r, c, M, i+1, 0); return; printf( \n ); printf( %3.d, M[i][j]); stampamatrice2(r, c, M, i, j+1); int x, y; scanf ( %d%d, &x,&y); int x, y; int M[x][y]; scanf ( %d%d, &x,&y); riempimatrice(x, y, M); int M[x][y]; stampamatrice(x, y, M); riempimatrice2(x, y,m, 0, 0); stampamatrice2(x, y,m, 0, 0);
25 5. Scrivere una funzione che stampi la somma degli elementi di una matrice di interi. int sommamatrice (int r, int c, int M[][c]) { int i, j; int somma = 0; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { somma += M[i][j]); return somma; int x, y; scanf ( %d%d, &x,&y); int M[x][y]; riempimatrice(x, y, M); stampamatrice(x, y, M); printf( %d\n, sommamatrice(x,y,m));
26 int sommamatrice (int r, int c, int M[][c]) { int i, j; int somma = 0; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { somma += M[i][j]); return somma; int x, y; scanf ( %d%d, &x,&y); int M[x][y]; riempimatrice(x, y, M); stampamatrice(x, y, M); printf( %d\n, sommamatrice(x,y,m)); 5. Scrivere una funzione che stampi la somma degli elementi di una matrice di interi. int sommamatrice2 (int r, int c, int M[][c], int i, int j) { if (i >= r) { if (j >= c) { return sommamatrice2(r, c, M, i+1, 0); return M[i][j] + sommamatrice2(r, c, M, i, j+1); int x, y; scanf ( %d%d, &x,&y); int M[x][y]; riempimatrice2(x, y,m, 0, 0); stampamatrice2(x, y,m, 0, 0); printf( %d\n, sommamatrice(x,y,m, 0, 0));
27 7.Implementare il selection sort. PSEUDOCODICE Selection(Vett, dim) per ogni i da 0 a n-2: trova il minimo nel sottovettore [i, n-1] scambia il minimo trovato con Vett[i]
28 7.Implementare il selection sort. void selectionsort (int A[], int n) { int i, j; int aux; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { if (A[i] > A[j]) { aux = A[i]; A[i] = A[j]; A[j] = aux; int x; scanf ( %d, &x); int V[x]; riempivettore(v, x); selectionsort(v, x);
29 7.Implementare il selection sort. void selectionsort (int A[], int n) { int i, j; int aux; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { if (A[i] > A[j]) { aux = A[i]; A[i] = A[j]; A[j] = aux; int x; scanf ( %d, &x); int V[x]; riempivettore(v, x); selectionsort(v, x); void selectionsort2 (int A[], int n, int i) { int j; int aux; if (i >= n) { return; for (j = i + 1; j < n; j++) { if (A[i] > A[j]) { aux = A[i]; A[i] = A[j]; A[j] = aux; selectionsort2(a, n, i+1); int x; scanf ( %d, &x); int V[x]; riempivettore(v, x); selectionsort2(v, x, 0);
30 8.Implementare la ricerca binaria. int binarysearch (int A[], int dim, int k) { int min_index = 0; int max_index = dim - 1; while (min_index <= max_index) { int middle = (max_index + min_index)/2; if (k < A[middle]) max_index = middle - 1; else if (k > A[middle]) min_index = middle + 1; else return 1; int x, k; scanf ( %d%d, &x, &k); int V[x]; riempivettore(v, x); selectionsort(v, x); binarysearch(v, x, k)
31 8.Implementare la ricerca binaria. int binarysearch2 (int A[], int dim, int k, int min_index, int max_index) { if (min_index >= max_index) { int middle = (max_index + min_index)/2; if (k < A[middle]) { return binarysearch2(a, dim, k, min_index, middle - 1); else if (k > A[middle]) { return binarysearch2(a, dim, k, middle + 1, max_index); else return 1; int x, k; scanf ( %d%d, &x, &k); int V[x]; riempivettore(v, x); selectionsort(v, x); binarysearch2(v, x, k, 0, x-1)
32 DOMANDE???
33 Esercizi ricorsione 1. Scrivere una funzione che calcoli la somma degli elementi di un array in maniera ricorsiva. 2. Scrivere una funzione che conti il numero delle occorrenze di un valore k in un vettore in maniera ricorsiva. 3. Scrivere una funzioni che preso un vettore di interi lo inverta. Implementare la versione iterativa e quella ricorsiva. 4. Scrivere una funzione merge che presi in input due array ordinati li fonda in un unico array ordinato. Tale funzione avrà tra i parametri tre array, due sono quelli da fondere ed il terzo conterrà il risultato. Implementare la versione iterativa e ricorsiva. 5. Scrivere una funzione che controlli se un vettore è palindromo oppure no. Un vettore si dice palindromo se leggendolo da sinistra a destra o da destra a sinistra si ha la stessa cosa. Ad esempio oppure sono palindromi, non è palindromo. Scrivere la versione iterativa e ricorsiva
34 Esercizi matrici 1. Scrivere una funzione che presa in input una matrice ed un valore k restituisca il numero di volte che k compare nella matrice. 2. Scrivere una funzione che presa in input una matrice quandrata dica se tale matrice rappresenta un quadrato magico o meno. Un quadrato magico di dimensione N è una matrice in cui sono presenti tutti e soli i numeri tra 1 e N*N, disposti in modo tale che la somma dei valori su tutte le righe è costante, ed è pari alla somma dei valori su tutte le colonne. 3. Scrivere una funzione che presa in input una matrice, le sue dimensioni e due puntatori a intero memorizzi in tali puntatori il valore dell indice di riga e colonna dell elemento più grande della matrice.
35 1. Scrivere una funzione che calcoli la somma degli elementi di un array in maniera ricorsiva. int sommaarray (int V[], int n) { int i; int somma = 0; for (i = 0; i < n; i++) { somma += V[i]; return somma; int a; scanf ( %d, &a); int b[a]; int p = sommaarray(b, a); int sommaarray2 (int V[], int n, int i) { if ( i >= n) return V[i] + sommaarray2(v, n, i+1); int a; scanf ( %d, &a); int b[a]; int p = sommaarray2(b, a, 0);
36 2. Scrivere una funzione che conti il numero delle occorrenze di un valore k in un vettore in maniera ricorsiva. int countarray (int V[], int n, int k) { int i; int count = 0; for (i = 0; i < n; i++) { if (V[i] == k) count ++; return count; int a; scanf ( %d, &a); int b[a]; int p = countarray(b, a, 3); int countarray2 (int V[], int n, int i, int k) { if ( i >= n) if (V[i] == k) return 1 + countarray2(v, n, i+1, k); return countarray2(v, n, i+1, k); int a; scanf ( %d, &a); int b[a]; int p = countarray2(b, a, 0, 3);
37 3. Scrivere una funzioni che preso un vettore di interi lo inverta. Implementare la versione iterativa e quella ricorsiva. void invertiarray (int V[], int n) { int i, aux; for (i = 0; i < n/2; i++) { aux = V[i]; V[i] = V[n i]; V[n - 1 -i] = aux; int a; scanf ( %d, &a); int b[a]; invertiarray(b, a); void invertiarray2 (int V[], int n) { if (n <= 0){ return; int aux; aux = V[0]; V[0] = V[n - 1]; V[n - 1] = aux; invertyarray2(++v, n-2); int a; scanf ( %d, &a); int b[a]; invertiarray2(b, a);
38 4. Funzione merge (iterativa) void mergearray2(int A[], int dim_a, int B[], int dim_b, int C[]){ if (dim_a <= 0 && dim_b <= 0) { return; if (dim_a <= 0) { *C = *B; mergearray2(a, dim_a, ++B, dim_b - 1, ++C); return; if (dim_b <= 0) { *C = *A; mergearray2(++a, dim_a - 1, B, dim_b, ++C); return; if (*A <= *B) { *C = *A; mergearray2(++a, dim_a - 1, B, dim_b, ++C); else { *C = *B; mergearray2(a, dim_a, ++B, dim_b - 1, ++C); int x, y; scanf ( %d%d, &x,&y); int A[x]; int B[y]; int C[x + y]; mergearray2(a,x,b,y,c);
39 4. Funzione merge (ricorsiva) void mergearray(int A[], int dim_a, int B[], int dim_b, int C[]){ int i = 0; int j = 0; int k = 0; while (i < dim_a && j < dim_b) { if (A[i] <= B[j]) { C[k] = A[i]; i++; else { C[k] = B[j]; j++; k++; while (i < dim_a) { C[k] = A[i]; i++; k++; while (j < dim_b) { C[k] = B[j]; j++; k++; int x, y; scanf ( %d%d, &x,&y); int A[x]; int B[y]; int C[x + y]; mergearray(a,x,b,y,c);
40 5. Scrivere una funzione che controlli se un vettore è palindromo oppure no. int palindromo (int V[], int n) { int i; for (i = 0; i < n/2; i++) { if (V[i]!= V[n i]) return 1; int a; scanf ( %d, &a); int b[a]; int p = palindromo(b, a); int palindromo2 (int V[], int n) { if (n <= 0){ return 1; if (V[0] == V[n - 1]) { return palindromo2(++v, n-2); else int a; scanf ( %d, &a); int b[a]; int p = palindromo2(b, a);
41 1. Scrivere una funzione che presa in input una matrice ed un valore k restituisca il numero di volte che k compare nella matrice. int countmatrice (int r, int c, int M[][c], int k) { int i, j; int count = 0; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { if (M[i][j] == k) count ++; return count; int x, y, k; scanf ( %d%d%d, &x, &y, &k); int M[x][y]; riempimatrice(x, y, M); int p = countmatrice(x, y, M, k); return 0
42 2. Quadrato magico int magicmatrix (int n, int M[][n]) { int i, j; int somma = 0; int somma_aux; int A[n*n]; for (i = 0; i < n*n; i++) { A[i] = 0; for (i = 0; i < r; i++) { somma_aux = 0; for (j = 0; j < c; j++) { if (i == 0) { somma += M[i][j]; somma_aux += M[i][j]; if (A[(i*j)+j]!= 0) { A[(i*j)+j] = 1; if (somma!= somma_aux) { for (j = 0; j < c; j++) { somma_aux = 0; for (i = 0; i < r; i++) { somma_aux += M[i][j]; if (somma!= somma_aux) { return 1;
43 3. Scrivere una funzione che presa in input una matrice, le sue dimensioni e due puntatori a intero memorizzi in tali puntatori il valore dell indice di riga e colonna dell elemento più grande della matrice. void minmatrice (int r, int c, int M[][c], int* min_r, int* min_c) { int i, j, min; min = M[0][0]; *min_r = 0; *min_c = 0; for (i = 0; i < r; i++) { for (j = 0; j < c; j++) { if (M[i][j] < min) min = M[i][j]; *min_r = i; *min_c = j; int x, y, min_r, min_c; scanf ( %d%d, &x, &y); int M[x][y]; riempimatrice(x, y, M); minmatrice(x, y, M, &min_r, &min_c);
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
Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
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
Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
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
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
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
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]
ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 6 - Liste 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
una matrice quadrata, determini se è un Un quadrato magico è una matrice NxN
Esercizio 1: Quadrato magico Realizzare una funzione che, presa in input una matrice quadrata, determini se è un quadrato magico Un quadrato magico è una matrice NxN I cui elementi sono TUTTI i numeri
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
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
Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
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
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
Consideriamo un vettore allocato dinamicamente
Libreria per per la la gestione/manipolazione dei dei vettori Consideriamo un vettore allocato dinamicamente int * v; v = (int *) malloc (n * sizeof (int) ); Conversione di tipo da void * a int * Numero
Gli algoritmi ricorsivi di ordinamento. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino
ordinamento Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Merge Sort Ricorsivo, divide et impera Stabile Divisione: due sottovettori SX e DX rispetto al centro del vettore. p r A.A.
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:
Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 11 Esercitazione: 27 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo del numero di
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg [email protected] Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
Esercizi. Stringhe. Stringhe Ricerca binaria
Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)
Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
