Dubbio codice c++

di il
12 risposte

Dubbio codice c++

Ho dei dubbi su questo codice:
#include <iostream>

int main()
{
int NUM1=-2, NUM2=-3, NUM3=-5, NEGATIVI=0;
if (NUM1<0) NEGATIVI=NEGATIVI+1;
if (NUM2<0) NEGATIVI=NEGATIVI+1;
if (NUM3<0) NEGATIVI=NEGATIVI+1;
printf("%d\n",NEGATIVI);
system("pause");
}


Quanto vale NEGATIVI e cosa calcola questo codice, e come posso raffigurarlo in diagramma a blocchi?

Scusatemi ma non sono molto esperto

12 Risposte

  • Re: Dubbio codice c++

    Scusa, ma è di una semplicità sconcertante, quindi: cosa è che non riesci a capire????....
  • Re: Dubbio codice c++

    Scusami non sono molto esperto, sto iniziando ora a vedere questo linguaggio, e ho trovato una vecchia fotocopia con questo esercizio.
  • Re: Dubbio codice c++

    Prova a descrivere riga per riga cosa comprendi tu che faccia ... e vediamo se sei sulla buona strada.
  • Re: Dubbio codice c++

    Ricordo che sono ancora alle basi xD.
    Allora il secondo int è seguito dalle variabili, che vanno dichiarate come prima cosa.
    Poi c'è una serie di if che, se soddisfatte, eseguono la funzione successiva.
    Poi viene mostrato su schermo il valore di NEGATIVI.
    e poi il programma si ferma
  • Re: Dubbio codice c++

    Comunque credo che il valore di negativi sia 3, ma cosa calcola, e il diagramma a blocchi non saprei proprio.
  • Re: Dubbio codice c++

    Ho capito che sei alle basi ma quel codice è la base della base ...

    Cosa significa secondo te questa

    if (NUM1<0)

    ?
  • Re: Dubbio codice c++

    Se NUM1 è minore di 0, esegui.....
  • Re: Dubbio codice c++

    Quindi sai cosa "calcola" la variabile NEGATIVI
  • Re: Dubbio codice c++

    Ho provato a correggere sintatticamente il codice sorgente come segue:
    
    #include <stdio.h>
    int main( void )
    {
        int NUM1 = -2; 
        int NUM2 = -3; 
        int NUM3 = -5; 
        int NEGATIVI = 0;
        
        if ( NUM1 < 0 ) {
            NEGATIVI = NEGATIVI + 1;
        }
        if ( NUM2 < 0 ) {
            NEGATIVI = NEGATIVI + 1;
        }
        if ( NUM3 < 0 ) {
            NEGATIVI = NEGATIVI + 1;
        }
        printf( "%d\n", NEGATIVI );
        puts( "pause" );
    }
    
    L'OUTPUT è nel link di printscreen sotto:

    http://prntscr.com/fb674

    Ovviamente stampa il numero 3 e la stringa di testo "pause". Questo perchè se NUM1 < 0 incrementa NEGATIVI di 1 e così NEGATIVI nella seconda selezione di if diventa 0 + 1 = 1. Dunque se il NUM2 < 0 la variabile NEGATIVI diventerà 1 + 1 = 2 il quale valore sarà utilizzato nella terza selezione if dove se NUM3 <0 la variabile NEGATIVI diventerà 2 + 1 = 3 e verrà stampato il 3 e l stringa pause perchè sono finite le istruzioni. Questo avviene perchè la variabile NEGATIVI è distruttiva cioè viene sostituito il suo valore ogni volta che ne viene posto uno nuovo nello spazio di memoria dedicato alla variabile NEGATIVI.

    Spero di essere stato corretto. Ciao.
  • Re: Dubbio codice c++

    JackieJack1207 ha scritto:


    Ho provato a correggere sintatticamente il codice sorgente come segue:
    
    #include <stdio.h>
    int main( void )
    {
        int NUM1 = -2; 
        int NUM2 = -3; 
        int NUM3 = -5; 
        int NEGATIVI = 0;
        
        if ( NUM1 < 0 ) {
            NEGATIVI = NEGATIVI + 1;
        }
        if ( NUM2 < 0 ) {
            NEGATIVI = NEGATIVI + 1;
        }
        if ( NUM3 < 0 ) {
            NEGATIVI = NEGATIVI + 1;
        }
        printf( "%d\n", NEGATIVI );
        puts( "pause" );
    }
    
    L'OUTPUT è nel link di printscreen sotto:

    http://prntscr.com/fb674

    Ovviamente stampa il numero 3 e la stringa di testo "pause". Questo perchè se NUM1 < 0 incrementa NEGATIVI di 1 e così NEGATIVI nella seconda selezione di if diventa 0 + 1 = 1. Dunque se il NUM2 < 0 la variabile NEGATIVI diventerà 1 + 1 = 2 il quale valore sarà utilizzato nella terza selezione if dove se NUM3 <0 la variabile NEGATIVI diventerà 2 + 1 = 3 e verrà stampato il 3 e l stringa pause perchè sono finite le istruzioni. Questo avviene perchè la variabile NEGATIVI è distruttiva cioè viene sostituito il suo valore ogni volta che ne viene posto uno nuovo nello spazio di memoria dedicato alla variabile NEGATIVI.

    Spero di essere stato corretto. Ciao.

    Grazie davvero, ecco cosa cercavo.
    Un'ultima domanda quindi cosa calcola questo programma in definitiva?
  • Re: Dubbio codice c++

    ErDater ha scritto:


    Grazie davvero, ecco cosa cercavo.
    Un'ultima domanda quindi cosa calcola questo programma in definitiva?
    No, non cercavi questo perché, se non l'hai ancora capito dopo questa spiegazione, non c'è altro modo di spiegarlo.
  • Re: Dubbio codice c++

    Un'ultima domanda quindi cosa calcola questo programma in definitiva?
    
    printf( "Le variabili dichiarate inizializzate con numeri negativi sono: %d\n", NEGATIVI );
    
Devi accedere o registrarti per scrivere nel forum
12 risposte