WorksheetsC++ Procedurale Best of
Total questions: 18
Worksheet time: 18mins
int n = 3;
int x[n];
Compila
Errore di compilazione
Si tratta di allocazione di memoria dinamica
Si tratta di allocazione di memoria statica
Quali sono i vantaggi dell'allocazione di memoria dinamica piuttosto che statica?
Semplifica lo sviluppo del codice in team
Permette di allocare dati con dimensione/struttura non nota a compile time
È più facile da gestire
Permette l'uso dei puntatori
Quali sono gli svantaggi dell'allocazione di memoria dinamica piuttosto che statica?
Rischio di spreco di memoria se dati sono allocati più volte
Rischio di spreco di memoria se dati non sono deallocati opportunamente
Rischio di errore run time (segmentation fault) se accedo a memoria prima della sua allocazione
Rischio di errore run time (segmentation fault) se dealloco la stessa memoria più volte
int x = 1;
int *px = &x;
(*px)++;
cout << x;
Stampa 1
Stampa 2
Stampa l'indirizzo di x
Errore di compilazione
int i=1, j=10;
int *p = &i;
int *q = &j;
*q = *p;
i++;
cout << *q;
1
2
10
11
Errore di compilazione
y = {1, 2, 3}
y = {2, 3, 4}
Errore di compilazione
Imprevedibile
Nella definizione di un array
la dimensione deve essere valutabile alla compilazione
deve essere specificare una lista di inizializzazione dei valori
la dimensione deve essere esplicitamente specificata
la dimensione può essere implicitamente specificata tramite una lista di inizializzazione
L'utilizzo dell'operatore [] su un array di N elementi permette di accedere a
qualsiasi elemento, anche con indice < 0 oppure > N-1
solo gli elementi da 0 a N-1
qualsiasi elemento con indice >= 0
qualsiasi elemento con indice < N
int a[] = {1, 2, 3};
cout << a;
1 2 3
1, 2, 3
1
Errore di compilazione
Imprevedibile
int a[] = {1, 2, 3};
a[3] = 5;
a = {1, 2, 5}
a = {1, 2, 3}
Errore di compilazione
Errore durante esecuzione
x = {1, 2, 3}
s = 6
x = {1, 3, 6}
s = 6
x = {3, 5, 6}
s = 6
Errore di compilazione
Imprevedibile
Una libreria è formata da
File di intestazione (header)
File sorgenti (cpp)
File oggetto
File eseguibili
Vantaggi derivanti dall'utilizzo delle funzioni
Riutilizzo del codice
Scrittura di algoritmi che non sarebbero realizzabili senza funzioni
Semplificazione dello sviluppo in parallelo tra più programmatori
Leggibilità del codice
L'istruzione return
deve sempre essere seguita da un'espressione
deve sempre essere seguita da un'espressione se si trova in una funzione void (procedura)
non deve essere seguita da un'espressione se si trova in una funzione void (procedura)
deve sempre essere seguita da un'espressione se si trova in una funzione non void
termina l'esecuzione della funzione
Il passaggio di parametri per riferimento costante
comporta un possibile spreco di CPU e memoria poichè il dato viene duplicato
permette il passaggio di informazioni anche dalla chiamata al chiamante
assicura che il valore delle variabili passate alla funzione non sarà alterato
3
9
Errore di compilazione
Quanto vale ore_lavoro?
0
4
8
12
Cosa stampa questo programma?
02468
246810
0246810
0
2
