Innanzitutto, grazie a tutti per l'aiuto e la disponibilità.
migliorabile ha scritto:
Affronta il problema al contrario:
1) NON GUARDARE il codice del professore
2) IMPLEMENTA PER CONTO TUO l'operazione: come faresti?
OVVIAMENTE bisogna sapere CHE COSA VUOL DIRE elevare un numbero 'base' alla potenza 'esp'!
Per esempio, se 'base' e' 2, e 'esp' e' 4, COSA VUOL DIRE elevare 2 alla potenza 4?
E questo per PRIMA COSA BISOGNA SAPERLO FARE letteralmente CON CARTA E MATITA!
Ciliegina sulla torta: CHE COSA VUOL DIRE elevare 2 alla ptenza ZERO?
Nota: sono concetti di ARTIMENTICA studiati alle scuole superiori, NON matematica avanzata!!!
Sìsì, certo, so cosa significa elevare un numero base alla potenza esponente. Nell'esempio che ha fatto, elevare 2 alla potenza 4, significa moltiplicare il 2 per se stesso quattro volte (2x2x2x2=2^4) mentre 2^0, come qualsiasi numero elevato alla zero tranne zero, fa uno.
migliorabile ha scritto:
Non complichiamogli la vita!
Un passo alla volta:
1) il while va bene tanto quanto il for e comunque e' anche piu' ""ESPLICITO""
2) la condizione e' sbagliata per UN CARATTERE
Da nessuna parte c'e' scritto che l'errore non sia stato introdotto VOLUTAMENTE per controllare se gli studenti RAGIONANO o FANNO FINTA.
Se il nostro autore non comprende un'espressione del tipo:
r = r*base;
vuol dire che non ha compreso concetti FONDAMENTALI quali:
- variabile,
- assegnamento,
- ordine di esecuzione,
- esecuzione sequenziale
L'esempio fa parte di una dispensa, quindi non credo che l'errore (e immagino vi stiate riferendo all'uguale nella condizione) sia voluto. In ogni caso, quei concetti penso di averli capiti. So che le variabili sono dati su cui opera un programma e che ogni variabile ha un tipo ed un identificatore, che l'assegnamento non è una relazione di uguaglianza ma in quel modo stiamo assegnando un valore (che può anche essere un'espressione, come in questo caso) ad una determinata variabile e che l'ordine con cui scrivo le operazioni nel codice sorgente è fondamentale per la corretta esecuzione del programma. Tutto questo non l'ho scritto per tediarla, ma per dimostrare che ho compreso questi concetti, o almeno credo di averli compresi, poi mi dirà lei se magari ho scritto qualcosa di sbagliato. Tuttavia, continuo a non capire quel passaggio.