Il 0% ha trovato utile questo documento (0 voti)
52 visualizzazioni4 pagine

Elaborato 2

Il documento fornisce le specifiche per un elaborato di programmazione relativo a una funzione di secondo grado. Gli studenti devono implementare macro per calcolare il numero di radici, le radici stesse, il punto estremo e la natura di questo punto per l'equazione quadratica. La scadenza per la sottomissione è il 6 Ottobre 2024 e il file deve essere inviato in un formato specifico.
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
52 visualizzazioni4 pagine

Elaborato 2

Il documento fornisce le specifiche per un elaborato di programmazione relativo a una funzione di secondo grado. Gli studenti devono implementare macro per calcolare il numero di radici, le radici stesse, il punto estremo e la natura di questo punto per l'equazione quadratica. La scadenza per la sottomissione è il 6 Ottobre 2024 e il file deve essere inviato in un formato specifico.
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

30 Settembre 2024

Programmazione B
Ingegneria e Scienze Informatiche - Cesena
A.A. 2024-2025

Elaborato 2
Data di sottomissione: entro le 23:59 del 6 Ottobre 2024.
Formato di sottomissione: un file compresso con nome elaborato2.zip
contenente un unico file sorgente con nome quadratic_eq.h.
Codeboard: https://codeboard.io/projects/130695
Specifiche:

• Implementare le seguenti macro per calcolare alcune proprietà di una


funzione di secondo grado nel campo reale:

f (x) = ax2 + bx + c

1. NUM_OF_ROOTS(a,b,c). Implementa un’espressione che può valere


0, 1 o 2, a seconda che l’equazione ax2 + bx + c = 0 ammetta
0, 1 o 2 radici nel campo reale (i.e. gli zeri della funzione).
2. ROOT1(a,b,c). Implementa un’espressione che calcola la radice
più grande dell’equazione ax2 + bx + c = 0. Non è necessario che
la macro verifichi che l’equazione abbia effettivamente almeno una
soluzione. Nel caso in cui non ci siano soluzioni, l’espressione può
essere non definita.
3. ROOT2(a,b,c). Espressione che calcola la radice più piccola del-
l’equazione ax2 + bx + c = 0. Se l’equazione ha una sola soluzione,
il valore dell’espressione coinciderà con quello di ROOT1(a,b,c).
Come sopra, non è necessario che la macro verifichi che l’equazione
abbia effettivamente soluzioni.
4. EXTREME_POINT(a,b,c). Implementa un’espressione che calcola
il punto estremo (massimo o minimo) della funzione di secondo
grado f (x) = ax2 + bx + c.
5. MAXIMUM_POINT(a,b,c). Implementa un’espressione (booleana)
che vale 1 oppure 0 a seconda che il punto estremo della funzione
f (x) = ax2 + bx + c sia un punto di massimo oppure di minimo,
rispettivamente.

• Si assume che il coefficiente a sia sempre diverso da 0. Le macro non


sono tenute a gestire il caso in cui vengano richiamate con parametro
a uguale a 0.

• Le macro devono essere definite in un file con nome quadratic_eq.h.

• Deve essere sottomesso unicamente il file quadratic_eq.h.

• E’ possibile sviluppare altre macro oltre a quelle richieste.

Esempi:

1. Numero di soluzioni dell’equazione f (x) = 0.

• NUM_OF_ROOTS(0.5,-2.0,1.5) = 2
• NUM_OF_ROOTS(0.5,-2.0,2.0) = 1
• NUM_OF_ROOTS(-0.5,-2.0,-3.0) = 0

2. Radici dell’equazione f (x) = 0.

• ROOT1(0.5,-2.0,1.5) = 3.0
ROOT2(0.5,-2.0,1.5) = 1.0
• ROOT1(0.5,-2.0,2.0) = 2.0
ROOT2(0.5,-2.0,2.0) = 2.0
• ROOT1(-0.5,-2.0,-3.0) = N.D.
ROOT2(-0.5,-2.0,-3.0) = N.D.,

3. Punto di massimo o minimo della funzione.

• EXTREME_POINT(0.5,-2.0,1.5) = 2.0
MAXIMUM_POINT(0.5,-2.0,1.5) = 0
• EXTREME_POINT(0.5,-2.0,2) = 2.0
MAXIMUM_POINT(0.5,-2.0,2) = 0
• EXTREME_POINT(-0.5,-2.0,-3) = -2.0
MAXIMUM_POINT(-0.5,-2.0,-3) = 1
APPENDICE

Sia data una funzione di secondo grado

f (x) = ax2 + bx + c.

Assumiamo che a ̸= 0.

• Zeri della funzione. Per calcolare i punti di intersezione di f (x) con


l’asse delle ascisse, risolviamo l’equazione di secondo grado:

ax2 + bx + c = 0. (1)

Consideriamo il discriminante dell’equazione.

∆ = b2 − 4ac

L’equazione (1) ha:

1. nessuna soluzione nel campo dei reali se ∆ < 0, i.e la funzione


f (x) non interseca l’asse delle ascisse;
2. una soluzione se ∆ = 0, i.e. la funzione f (x) interseca l’asse
delle ascisse in un unico punto;
3. due soluzioni se ∆ > 0, i.e. la funzione f (x) interseca l’asse delle
ascisse in due punti distinti.

Se ∆ ≥ 0 i punti di intersezione x1 , x2 , sono calcolati nel seguente


modo:
√ √
1. se ∆ > 0, x1 = −b+ ∆
2a
, x2 = −b− ∆
2a
;
2. Se ∆ = 0, x1 = x2 = 2a .
−b

• Punto di massimo/minimo della funzione. Una funzione di se-


condo grado ha un unico punto estremante, che può essere un punto di
massimo o di minimo. Per individuare l’unico punto estremante è suffi-
ciente individuare dove si annulla la derivata prima di f (x). Dobbiamo
quindi risolvere l’equazione:

f ′ (x) = 0

Stiamo assumendo a ̸= 0, quindi


−b
f ′ (x) = 2ax + b = 0 =⇒ x = 2a

Per determinare se il punto x = −b


2a
è un punto di massimo o di minimo,
valutiamo il segno della derivata seconda:

f ′′ (x) = 2a

– Se f ′′ (x) > 0 allora, x = −b


2a
è un punto di minimo (la concavità
della parabola f (x) è rivolta verso l’alto).
– Se f ′′ (x) < 0 allora, x = −b
2a
è un punto di massimo (la concavità
della parabola f (x) è rivolta verso il basso).

Potrebbero piacerti anche