Esercizi sulle funzioni Calcolo di π con la formula di Leibnitz. Si implementi la funzione: double Pi_greco (int n) // pre: 0 ≤ n // post: ritorna un’approssimazione di pi-greco calcolata // come la somma dei primi n termini della formula // di Leibnitz, moltiplicata per 4 che calcoli π usando i primi n termini nella somma infinita nota come formula di Leibnitz: 1 1 1 1 π 1− + − + −L = 3 5 7 9 4 (Nota: il metodo converge molto lentamente, come si potrà vedere eseguendo il programma). Coefficienti binomiali. Si scriva il codice della funzione: long CoeffBin (int n, int k) // pre: 0 ≤ k ≤ n // post: ritorna C(n; k) (n su k) A questo scopo, in luogo della definizione n n! C (n; k ) = = k k!(n − k )! si impieghi la formula: n n n − k = ⋅ . k + 1 k k + 1 Radice quadrata col metodo di Newton. Il metodo di Newton per il calcolo della radice quadrata di un numero a si basa sull’osservazione che, se x è un’approssimazione di a allora y= 1 x + 2 a x è un’approssimazione migliore. Si scriva una funzione che calcoli la radice quadrata b di a tale che b 2 − a < 0.0001 . (Suggerimento: come valore iniziale di x si prenda a ). Numeri triangolari. Un numero intero è triangolare se appartiene alla sequenza infinita generata dalla legge: t1 = 1, t i +1 = t i + (i + 1) Si implementi la funzione: bool Triangolare (int n) // pre: 0 < n // post: ritorna true se n = t_i per qualche i, false altr. Test di primalità. Si implementi una funzione che decide se un intero positivo è primo: bool Primo (int n) // pre: 0 ≤ n // post: ritorna true se n è primo, false altrimenti A questo scopo si utilizzi un algoritmo elementare che controlli la divisibilità di n, sfruttando per migliorarlo soltanto i seguenti fatti: 1. se n è pari e > 2 non è primo; 2. se n è composto allora esiste un divisore proprio di n che sia ≤ n . Sviluppo in serie di ex. esponenziale sia: Ricordiamo come lo sviluppo in serie di Taylor della funzione ∞ 1 k 1 1 x = 1 + x + x2 + x3 + L 2 3! k = 0 k! ex = ∑ Si implementi la funzione Exp() con un’approssimazione assegnata, in due modi: 1. si implementi una funzione Fact() per il fattoriale e la si usi con pow() (per le potenze intere di x) in una implementazione diretta della formula di Taylor; 1 1 x x k +1 = x k ⋅ 2. si sfrutti il fatto che evitando sia Fact() che pow(). k! (k + 1)! k +1
© Copyright 2024 ExpyDoc