Skip to content

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).

  1. Nell’Iteratore, la logica di calcolo matematico successiva avviene comunemente per convenzione nell’operator++() prefisso. Implementalo. Dovrà testare e incrementare in loop l’attributo current finché non scova e aggancia il successivo numero primo disponibile, salvandolo e ritornando *this.
  2. Implementa gli operatori * (deferenziazione) e != (controllo blocco) nell’Iteratore (Ricorda che il != viene interrogato dal Ranged Loop passandogli l’intero limite!).
  3. Lancia il tutto sul main e controlla che l’array generi la serie pulita!