Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo delle funzioni.
Gli esercizi, a complessità crescente, prevedono inizialmente la realizzazione di funzioni con passaggio dei parametri per valore ed in seguito per riferimento.
Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:
https://www.onlinegdb.com/online_c++_compilerFUNZIONI CON PASSAGGIO PARAMETRI PER VALORE
1) Implementare una funzione che ricevuto in ingresso il valore del lato di un quadrato restituisca il valore del perimetro. Realizzare un programma che utilizzi tale funzione.
2) Implementare una funzione che ricevuti in ingresso i valori della base e dell’altezza di un rettangolo restituisca il valore del perimetro. Realizzare un programma che utilizzi tale funzione.
3) Implementare una funzione che ricevuto un numero in ingresso restituisca il valore assoluto di tale numero. Realizzare un programma che utilizzi tale funzione.
4) Implementare una funzione che ricevuti due numeri in ingresso restituisca il numero maggiore. Realizzare un programma che utilizzi tale funzione.
5) Implementare una funzione che ricevuti tre numeri in ingresso restituisca il numero maggiore. Realizzare un programma che utilizzi tale funzione.
6) Utilizzare la funzione implementata nell’esercizio 4 (i.e., massimo di due numeri) per determinare il massimo tra quattro numeri. (Consiglio: utilizzare la funzione per determinare il massimo tra il primo ed il secondo numero ed in seguito il massimo tra il terzo ed il quarto numero. Infine utilizzare un’ultima volta la funzione per determinare il massimo dei massimi).
7) Implementare una funzione che ricevuti in ingresso i valori della base e dell’altezza di un rettangolo restituisca il valore dell’area. Realizzare un programma che utilizzi tale funzione.
8) Implementare una funzione che ricevuto in ingresso un carattere restituisca il valore 0 se il carattere ricevuto è una consonante mentre restituisca 1 se il carattere ricevuto è una vocale. Realizzare un programma che utilizzi tale funzione.
9) Implementare una funzione che ricevuto un numero in ingresso restituisca il valore del fattoriale del numero ricevuto. Realizzare un programma che utilizzi tale funzione. Nota bene, il fattoriale di un numero N è N*(N-1)*(N-2)…*1
10) Implementare una funzione che ricevuti in ingresso due interi, calcoli il Minimo Comune Multiplo e restituisca tale valore. Realizzare un programma che utilizzi tale funzione.
11) Implementare una funzione che ricevuti in ingresso due interi, calcoli il Massimo Comune Divisore e restituisca tale valore. Realizzare un programma che utilizzi tale funzione.
12) Implementare una funzione che ricevuto in ingresso un numero intero, restituisca true se è un numero primo, altrimenti restituisca false. Realizzare un programma che utilizzi tale funzione.
13) Implementare una funzione che ricevuto in ingresso il valore dei cateti di un triangolo rettangolo, restituisca il valore dell’ipotenusa (il calcolo della radice quadrata può essere eseguito sfruttando la libreria matematica: math.h). Realizzare un programma che utilizzi tale funzione.
14) Implementare una funzione che ricevuto in ingresso le coordinate x e y di due punti (x1, y1, x2, y2), restituisca la distanza tra due punti (l’elevamento a potenza ed il calcolo della radice quadrata possono essere eseguiti sfruttando la libreria matematica: math.h). Realizzare un programma che utilizzi tale funzione.
FUNZIONI CON PASSAGGIO PARAMETRI PER RIFERIMENTO
15) Implementare una funzione che ricevute due variabili in ingresso permetta di scambiare il valore di tale variabili. Realizzare un programma che utilizzi tale funzione.
16) Implementare una funzione che ricevuto in ingresso il valore della base e dell’altezza di un rettangolo permetta di calcolare area e perimetro. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.
17) Implementare una funzione che ricevuto in ingresso il valore dei parametri a, b, e c di una equazione di secondo grado ax2+bx+c=0 calcoli le soluzioni x1 e x2 della suddetta equazione . Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.
18) Implementare una funzione che ricevuto in ingresso il valore dei parametri a, b, e c di una equazione di secondo grado ax2+bx+c=0 calcoli le soluzioni x1 e x2 della suddetta equazione. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione. La funzione deve restituire 1 nel caso di valori del delta maggiori o uguali a zero (soluzioni reali), mentre deve restituire 0 per valori del delta minori di zero (soluzioni non reali).
19) Implementare una funzione che ricevuti in ingresso il valore del numeratore e denominatore di due differenti frazioni, calcoli numeratore e denominatore della frazione ottenuta moltiplicando le due precedenti frazioni. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.
20) Implementare una funzione che ricevuti in ingresso il valore del numeratore e denominatore di una frazione, riduce la frazione ai minimi termini. Realizzare un programma che utilizzi tale funzione.
21) Implementare una funzione che ricevuti in ingresso il valore del numeratore e denominatore di due differenti frazioni, calcoli numeratore e denominatore della frazione ottenuta sommando le due precedenti frazioni. Questi ultimi due valori devono essere passati sfruttando la tecnica del riferimento. Realizzare un programma che utilizzi tale funzione.
FUNZIONI CON PASSAGGIO DI ARRAY
22) Implementare una funzione che ricevuto in ingresso un array e la sua dimensione inserisca al suo interno tutti zero. Realizzare un programma che utilizzi tale funzione.
23) Implementare due differenti funzioni. Una prima funzione che ricevuti in ingresso un array e la sua dimensione, inserisca al suo interno valori scelti dall’utente. Una seconda funzione che ricevuti in ingresso un array e la sua dimensione riporti i valori contenuti nell’array. Realizzare un programma che utilizzi tali funzioni di input e output.
24) Implementare una funzione che ricevuti in ingresso un array e la sua dimensione calcoli il valore massimo presente all’interno dell’array e lo restituisca. Realizzare un programma che utilizzi tale funzione.
25) Implementare una funzione che ricevuti in ingresso un array, la sua dimensione, calcoli quante volte è presente all’interno dell’array il valore zero e lo restituisca. Realizzare un programma che utilizzi tale funzione.
26) Implementare una funzione che ricevuti in ingresso un array, la sua dimensione, ed un interno N, calcoli quante volte il valore N è presente all’interno dell’array e lo restituisca. Realizzare un programma che utilizzi tale funzione.
ANALISI DI CODICE
1) Esercizi di analisi di codice (passaggio per valore e per riferimento)
2) Esercizi di analisi di codice (passaggio per valore)
3) Esercizi di analisi di codice (passaggio per riferimento)
4) Esercizi di analisi di codice (passaggio di array a funzioni)
5) Esercizi di analisi di codice (variabili locali e globali)
ATTIVITA COOPERATIVA
1) Analisi di Codice difficoltà Easy
2) Analisi di Codice difficoltà Medium
3) Analisi di Codice difficoltà Hard
ESERCIZI DI PREPARAZIONE ALLA VERIFICA
1) Implementare una funziona che ricevuti in ingresso tre valori reali che rappresentano i lati di un triangolo restituisca 1 se i valori dei lati formano un triangolo (somma di due lati > il terzo) altrimenti restituisca 0. Realizzare un programma che utilizzi tale funzione. EASY
2) Implementare una funziona che ricevuti in ingresso due numeri interi: base ed esponente (entrambi ≥ 0) calcoli e restituisca il valore della potenza utilizzando un ciclo. Realizzare un programma che utilizzi tale funzione. MEDIUM
3) Scrivi una funzione che, ricevuto in ingresso (per valore) un numero di secondi, calcoli quante ore, minuti e secondi esso rappresenta. I tre risultati devono essere restituiti tramite parametri passati per riferimento. Realizza poi un programma completo che utilizzi questa funzione. EASY
4) Scrivi una funzione che, ricevuti in ingresso tre numeri interi per riferimento (a, b, c), li riordini in ordine crescente modificando direttamente le variabili originali (a deve contenere il valore più piccolo, b quello intermedio e c il più grande. La funzione non deve restituire valori tramite return, ma aggiornare i parametri passati. Realizza poi un programma completo che utilizzi questa funzione e stampi i numeri prima e dopo l’ordinamento. MEDIUM
5) Scrivi un programma che prenda in input due array di numeri interi della stessa dimensione. Il programma deve confrontare i valori maggiori presenti nei due array.
Se il numero maggiore del primo array è maggiore del numero maggiore del secondo array, il programma deve restituire 1. Altrimenti, deve restituire 2. Realizza poi un programma completo che utilizzi questa funzione e stampi i numeri prima e dopo l’ordinamento. EASY
