Esercizi Pratici: Statements
Chiudiamo questo capitolo testando la nostra competenza nelle Iteration Statements, implementando da zero le fondamenta per far funzionare correttamente un Range-Based For Loop di nuova concezione, come fatto con Fibonacci.
Costruzione di una Serie di Numeri Primi (PrimeNumberRange)
Section titled “Costruzione di una Serie di Numeri Primi (PrimeNumberRange)”L’Obiettivo:
Implementare la classe PrimeNumberRange accompagnata dal suo PrimeIterator. Questo ci permetterà di iterare ed estrarre senza limiti i Numeri Primi (numeri divisibili solo per 1 o se stessi, es. 2, 3, 5, 7, 11…) in un ciclo for-range, bloccandoci però in automatico quando l’iteratore varca il massimale fornito (es. 5000).
(Ti sono fornite pre-compilate la funzione algoritmica di rilevamento del primo is_prime(int) per risparmiare tempo e la classe per l’interfaccia. Fai riferimento alla lezione 05).
- Nell’Iteratore, la logica di calcolo matematico successiva avviene comunemente per convenzione nell’
operator++()prefisso. Implementalo. Dovrà testare e incrementare in loop l’attributocurrentfinché non scova e aggancia il successivo numero primo disponibile, salvandolo e ritornando*this. - Implementa gli operatori
*(deferenziazione) e!=(controllo blocco) nell’Iteratore (Ricorda che il!=viene interrogato dal Ranged Loop passandogli l’intero limite!). - Lancia il tutto sul
maine controlla che l’array generi la serie pulita!