Algoritmi elementari
Somma di numeri con risultato s
• pongo s uguale a zero;
• ciclo: aggiungo a s ciascun termine della somma
• posso riordinare i termini della somma per ottenere un risultato pi`u accurato
Scambio di due numeri
• NON funziona a ←− b
b ←− a
a e b contengono entrambi il valore iniziale di b
• funziona c ←− a a ←− b b ←− c
Calcolo del fattoriale di n
• pongo il risultato r uguale a 1
• ciclo: per ogni intero compreso tra 2 ed n moltiplico r per questo intero
• potrei utilizzare un vettore per memorizzare tutti i fattoriali tra zero ed n
Calcolo di frazioni calcolo p/q per p e q compresi tra 1 e 5 e stampo il risultato
• se p e q sono interi ho un risultato
• se sono double ho un risultato diverso
• il trucco `e il modo in cui viene fatta la divisione tra interi
Crivello di Eratostene
• `E un metodo per trovare i numeri primi;
• parto da 2 ed elimino tutti i suoi multipli;
• il primo dei numeri rimasti `e primo;
• elimino tutti i multipli di questo numero;
• ripeto il procedimento precedente;
Overload (sovraccarico) di funzioni
Se definisco una nuova classe posso voler definire le operazioni fondamentali tra gli oggetti di quella classe
• Una nuova classe necessita di un costruttore e di un costruttore di copia; questi sono facoltativi ma possono rendersi necessari se la classe ha un
comportamento non standard (per esempio con array);
• gli operatori +-*/ possono avere un significato oparticolare che deve essere definito.