Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: controlli in c++

  1. #1

    controlli in c++

    Stavo leggendo un esempio in c++, ma non ho capito bene una cosa:
    codice:
    #include <iostream.h>
    void main()
    {
     double somma, media;
     int numero, contatore;
     somma=0.;
     contatore=0;
     do{
        cout<<"Immettere un intero:\t";
        cin>>numero;
        somma += numero;
        contatore++;
       }
     while(numero);
     contatore--;
     media=somma/contatore;
     cout<<"La media dei numeri e\': "<<media<<endl;
    }
    Il programma è una stupidaggine, una cosa non riesco però a capirla:

    ...
    while(numero);
    ...

    Questa istruzione dovrebbe far fermare il ciclo quando il numero diventa 0, ma non capisco perchè.Non avrei dovuto mettere
    ...
    while(numero!=0);
    ...

    o almeno in java facevo così!

  2. #2
    In C:
    true = un numero diverso da zero.
    false = zero.

    codice:
    while (numero);
    Mentre "numero" è diverso da zero..quindi true..

    Cmq funzionerebbe lostesso anche:

    while (numero != 0);

    Ciao!

  3. #3
    in c false e definito =0 mentre true(ma puo' dipendere dal compilatore..)
    e' un qualsiasi valore non 0
    quindi si ferma quando while(0) viene incontrato!!
    in java esistono true e false..
    e il while e' definito
    come while(boolean);
    quindi non puo' funzionare in java..

    questo perche' il c non e' fortemente tipizzato.

  4. #4
    se nel controllo ci avessi messo una variabile char?

  5. #5
    Originariamente inviato da matrics21
    se nel controllo ci avessi messo una variabile char?
    sarebbe stato uguale poiche', non essendo fortemente tipizzato,
    non esistono i tipi in quanto tali ma solo delle
    aree di memoria Ram che contengono il valore!

  6. #6
    quindi è all'incirca la stessa cosa di assembler con il il registro dei flag?

  7. #7
    Originariamente inviato da kentaromiura
    sarebbe stato uguale poiche', non essendo fortemente tipizzato,
    non esistono i tipi in quanto tali ma solo delle
    aree di memoria Ram che contengono il valore!
    tu adesso potresti domandare:
    a cosa serve dunque in c dichiarare una variabile?
    serve a indicare la dimensione da allocare per una variabile:
    questa dimensione e definita dal tipo;
    che dipende dal compilatore usato e dal sistema operativo:
    in sistemi 32 bit(rispetto ai 16 bit)
    il tipo integer raddoppia.

  8. #8
    Originariamente inviato da kentaromiura
    tu adesso potresti domandare:
    a cosa serve dunque in c dichiarare una variabile?
    serve a indicare la dimensione da allocare per una variabile:
    questa dimensione e definita dal tipo;
    che dipende dal compilatore usato e dal sistema operativo:
    in sistemi 32 bit(rispetto ai 16 bit)
    il tipo integer raddoppia.
    L'argomento variabili in c++ è più complicato di quanto credessi

  9. #9
    Originariamente inviato da matrics21
    quindi è all'incirca la stessa cosa di assembler con il il registro dei flag?
    non proprio..
    in assembler e ' diverso..
    il registo Flag ha uno scopo preciso, e per questo si differenzia dagli altri..
    ma forse ..chiudendo un occhio..il paragone potrebbe anche non
    essere campato in aria..

  10. #10
    Originariamente inviato da kentaromiura
    tu adesso potresti domandare:
    a cosa serve dunque in c dichiarare una variabile?
    serve a indicare la dimensione da allocare per una variabile:
    questa dimensione e definita dal tipo;
    che dipende dal compilatore usato e dal sistema operativo:
    in sistemi 32 bit(rispetto ai 16 bit)
    il tipo integer raddoppia.
    no, al contrario, e' piu' semplice rispetto a java, dove per forza
    ,in un metodo, devi passare il tipo indicato..
    qui passi un valore..
    che non dipende dal tipo..
    certo, la cosa complicata e usare sizeof(int) quando salvi su un file..
    invece che la dimensione esatta..
    ma questo e' un altro discorso.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.