Esercizi per la lezione 1

Esercizio 1.1

Scrivere un programma che assegni il valore di una variabile ad un’altra utilizzando un puntatore. Stampare inoltre a terminale i valori e gli indirizzi di ogni variabile prima e dopo l’assegnazione.

linea

Esercizio 1.2

Dichiarare un puntatore e poi cercare di assegnargli direttamente un valore numerico. Cosa succede? Perché?

linea

Esercizio 1.3

Utilizzare new e delete per creare e distruggere una variabile double ed un array di double.

linea

Esercizio 1.4

Realizzare una funzione che risolva un’equazione di secondo grado: ax2 + bx + c = 0. La funzione deve rendere disponibile il risultato al programma che la chiama.

  • Il prototipo della funzione deve essere:

    bool solve2ndDegree (double * par, double * x) ;
    
  • La funzione deve restituire una variabile bool (true/false) a seconda che esistano o meno soluzioni reali dell’equazione

  • La funzione riceve in input due puntatori a double:

    • double * par serve per passare l’array dei coefficienti

    • double * x è l’indirizzo di un array in cui salvare le soluzioni dell’equazione

linea

Esercizio 1.5

Rifare l’esercizio su media/varianza della lezione di ripasso realizzando un’unica funzione che le calcoli entrambe, facendo opportuno uso puntatori o referenze.

linea

Esercizio 1.6

Scrivere una funzione che, dato un array di N interi, lo ordini dal più piccolo al più grande (suggerimento: creare un array inserendo alcuni numeri a caso per testare che l’ordinamento funzioni).

  • Il prototipo della funzione deve essere:

    void SortArray (double * myArray, int dim) ;
    

linea

Esercizio 1.7

Scrivere una funzione creaArray (...) che prenda in input un numero intero, crei un array di tipo float lungo quando il numero intero di input e restituisca il puntatore al primo elemento dell’array.