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

Significato variabile in ciclo

  1. #1
    Post
    9
    Like Inviati  
    0
    Like Ricevuti  
    0
    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)

    // 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 21: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
    Post
    17,365
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    Per affrontare problemi del genere devi prima di tutto capire cosa fa il programma.

    Ce lo sai spiegare? Cosa calcola?
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    Post
    9
    Like Inviati  
    0
    Like Ricevuti  
    0
    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
    Post
    17,365
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    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?
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    Post
    9
    Like Inviati  
    0
    Like Ricevuti  
    0
    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
    Post
    17,365
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    No ... però devi rispondere alle mie domande ...

    Come faresti a calcolare 2 elevato a 3 sulla carta?
    ℹ️ Leggi di più su AntonioG ...

  7. #7
    Post
    9
    Like Inviati  
    0
    Like Ricevuti  
    0
    2 x 2 x 2 = 8

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,365
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    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
    ℹ️ Leggi di più su AntonioG ...

  9. #9
    Post
    9
    Like Inviati  
    0
    Like Ricevuti  
    0
    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
    Post
    17,365
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    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

    result = 1;
    e = 3;       
    while(e > 0)
    {
       result *= 2; 
       e--;       
    }
    
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. variabile con corrispondenza dinamica nel ciclo for/next
    Da indigo5 nel forum Visual Basic .Net
    Risposte: 7
    Ultimo Post: 15-01-2020, 21:08
  2. Risposte: 1
    Ultimo Post: 28-03-2017, 11:46
  3. Risposte: 12
    Ultimo Post: 19-09-2014, 16:21
  4. Significato espressione
    Da Kestrel nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 21-12-2011, 12:41
  5. [MS-DOS] Com'è possibile incrementare una variabile durante un ciclo?
    Da binarydigit0101 nel forum Altri linguaggi e strumenti
    Risposte: 2
    Ultimo Post: 09-11-2010, 20:14