+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Significato variabile in ciclo

  1. #1
    Post
    8

    Significato variabile in ciclo

    Perché quell' e-- nel ciclo while e perché senza non funziona ?
    Il codice e' scopiazzato da un libro per principianti ( A java beginner guide pubblicato per Oracle)

    codice:
    // Compute integer powers of 2.
     class Ripower {   public static void main(String args[]) {     
    int e;    
     int result;  
        for(int i=0; i < 10; i++) {       
    		result = 1;       
    		e = i;       
    		while(e > 0) {         result *= 2; 
                                                 e--;       
    			 }  
          System.out.println("2 to the " + i +                          " power is " + result);     }   } }
    Ultima modifica di AntonioG; 02-03-2017 20:26  Motivo: Tag CODE e titolo del thread

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,024
    Blogs
    5
    Per affrontare problemi del genere devi prima di tutto capire cosa fa il programma.

    Ce lo sai spiegare? Cosa calcola?
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    Post
    8
    Calcola le potenze di due fino alla nona
    2 x 1 = 2
    2x 2 = 4
    4 x 2 = 8
    8 x 2 = 16
    etc...
    senza l' e-- si ferma al primo ciclo
    E anch'io

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,024
    Blogs
    5
    Quel programma comincia a calcolare da 2 elevato a 0 fino a 2 elevato a 9

    Ok ... ora, tu sai come si calcola - a prescindere dai computer - la potenza di 2 elevato a un esponente? Come lo faresti a mano?
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  5. #5
    Post
    8
    Lo farei un passo alla volta, ma fino a li....
    e-- diminuisce il valore di e, perché lo diminuisce ?

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,024
    Blogs
    5
    No ... però devi rispondere alle mie domande ...

    Come faresti a calcolare 2 elevato a 3 sulla carta?
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  7. #7
    Post
    8
    2 x 2 x 2 = 8

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,024
    Blogs
    5
    Quindi moltiplichi il 2

    3 volte

    Dunque devi avere un "contatore" di moltiplicazioni.

    Quella variabile e è proprio il contatore delle moltiplicazioni.
    Quando deve calcolare 2 elevato a 3, la variabile e assume il valore 3 e cominciano le moltiplicazioni. La variabile diminuisce fino a 0 (con e--) e quel punto finiscono le moltiplicazioni e hai il risultato.

    e è l' "esponente" dell'elevamento a potenza
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  9. #9
    Post
    8
    Dunque ne ciclo for pongo e = i e con tale assegnamento pero' dovrei andare avanti nel conteggio e non indietro, poi all'interno del for metto un while che capisco solo per la parte che pone result *= 2 ( partendo result da 1 ci arrivo che fa 1 x 2 e poi 2 x 2 e poi 4 x 2 all'interno del while, ma perché e-- se a 9 non ci sono ancora arrivato o se c'e' gia' arrivato devo ancora capire come

  10. #10
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,024
    Blogs
    5
    Quote Originariamente inviato da GRAZIANO_Principiante Visualizza il messaggio
    Dunque ne ciclo for pongo e = i e con tale assegnamento pero' dovrei andare avanti nel conteggio e non indietro
    Perché non indietro? Se conti in avanti o all'indietro fai lo stesso numero di moltiplicazioni.

    ma perché e-- se a 9 non ci sono ancora arrivato o se c'e' gia' arrivato devo ancora capire come
    Ma che c'entra quello che dici?

    Ti ho già spiegato perchè e-- (lo hai letto)?

    Se calcoli 2 elevato a 3,

    e=3

    e poi le moltiplicazioni seguono con

    e-- 2
    e-- 1
    e-- 0

    per fare le 3 moltiplicazioni.

    E' molto semplice, prova ad esaminare questo codice

    codice:
    result = 1;
    e = 3;       
    while(e > 0)
    {
       result *= 2; 
       e--;       
    }
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi