1. BENVENUTO SU CONSOLE TRIBE

    Benvenuto, stai navigando nella nostra community come ospite

    Avere un account su Console Tribe ti permetterà di creare e partecipare alle discussioni e al mercatino, organizzare tornei e partite online, iniziare conversazioni personali con gli altri giocatori del forum e di utilizzare tutte le funzioni di questo sito.

    Registra il tuo account in meno di 5 secondi, se vuoi puoi sfruttare i login social via Facebook, Google Plus o Twitter.

programma operazioni base in C

Discussion in 'Computer & Technology' started by napulenhio, Mar 15, 2011.

  1. napulenhio

    napulenhio Tribe Newbie

    Joined:
    Dec 12, 2009
    Messages:
    755
    Likes Received:
    9
    Trophy Points:
    0
    Location:
    Whiterun
    ciao ragazzi, sono un paio cimentanto nella programmazione in C;
    ieri sera ho scritto un piccolo programma che esegue le operazioni base più una piccola espressione. tutto bene, fino a quando ho deciso di far scegliere all'utente i numeri da usare nelle operazioni tramite scanf.
    vi posto il codice, cosi magari potete dirmi dove ho sbagliato più uno screen della shell :D

    Code:
    #include <stdio.h>
    int main(void){
    	int uno;
    	int due;
    	printf("scrivi il primo termine ");
    	scanf("%d",uno);
    	printf("scrivi il secondo termine ");
    	scanf("%d",due);
    	printf("addizione %d+%d=%d \n",uno,due,uno+due);
    	printf("sottrazione %d-%d=%d \n",uno,due,uno-due);
        printf("moltiplicazione %d*%d=%d \n",uno,due,uno*due);
        printf("divisione %d/%d=%d \n",uno,due,uno/due);
        printf("espressione %d*(%d+%d)=%d",due,due,uno,due*(due+uno));
    }
    screen
    [​IMG]

    ps.l'errore me lo da dopo l'inserimento del primo termine
    Last edited by a moderator: Mar 15, 2011
  2. rewrew

    rewrew Administrator

    Joined:
    Feb 10, 2007
    Messages:
    22,957
    Likes Received:
    8,448
    Trophy Points:
    4,642
    Location:
    Milano
    PSN Tag:
    rewrew
    Xbox Live Tag:
    DoubleREW
    scanf, a differenza di printf, vuole un indirizzo o un puntatore:

    Puoi risolvere così:
    PHP:
    #include <stdio.h>
    int main(void){
        
    int uno;
        
    int due;
        
    printf("scrivi il primo termine ");
        
    scanf("%d",&uno); //Aggiunta una e commerciale
        
    printf("scrivi il secondo termine ");
        
    scanf("%d",&due); //Aggiunta una e commerciale
        
    printf("addizione %d+%d=%d \n",uno,due,uno+due);
        
    printf("sottrazione %d-%d=%d \n",uno,due,uno-due);
        
    printf("moltiplicazione %d*%d=%d \n",uno,due,uno*due);
        
    printf("divisione %d/%d=%d \n",uno,due,uno/due);
        
    printf("espressione %d*(%d+%d)=%d",due,due,uno,due*(due+uno));
    }
  3. napulenhio

    napulenhio Tribe Newbie

    Joined:
    Dec 12, 2009
    Messages:
    755
    Likes Received:
    9
    Trophy Points:
    0
    Location:
    Whiterun
    grazie mille :D, quindi quando inserisco una variabile int con scanf devo mettere la &, ho capito bene?
  4. rewrew

    rewrew Administrator

    Joined:
    Feb 10, 2007
    Messages:
    22,957
    Likes Received:
    8,448
    Trophy Points:
    4,642
    Location:
    Milano
    PSN Tag:
    rewrew
    Xbox Live Tag:
    DoubleREW
    Si così passi al metodo l'indirizzo della variabile e non il suo valore. Vale anche per gli altri tipi di dato primitivi
  5. lycenhol

    lycenhol Tribe Active Member

    Joined:
    May 31, 2006
    Messages:
    30,199
    Likes Received:
    257
    Trophy Points:
    4,957
    Location:
    Nella tonnara come Rais
    Infatti. Devi guardare nelle reference della funzione e quando ti chiede un puntatore, vuol dire che vuole l'indirizzo ad una variabile. Altrimenti non sa dove scrivere.

    PS Per curiosità, che IDE stai usando e sotto che SO?
  6. napulenhio

    napulenhio Tribe Newbie

    Joined:
    Dec 12, 2009
    Messages:
    755
    Likes Received:
    9
    Trophy Points:
    0
    Location:
    Whiterun
    sto usando geany sotto ubuntu.
    andrebbe benissimo anche gedit (l'editor di testo di default), solo che dovrei compilare e "testare" da terminale, mentre geany ha integrato sia compilatore che una shell per testare i programmi

    se ti interessa ti linko il sito ufficiale
    Last edited: Mar 15, 2011
  7. kinn

    kinn Tribe Member

    Joined:
    Jan 2, 2008
    Messages:
    4,311
    Likes Received:
    17
    Trophy Points:
    36
    Location:
    Salerno
    un consiglio, studia bene la teoria dei puntatori, cosa sono e a che servono. Non è un argomento immediato ma ti fa capire il perchè ci vuole l'operatore &... cosi vedrai che non dimentichi più di metterla :)
  8. gallo92

    gallo92 Tribe Member

    Joined:
    Jul 31, 2008
    Messages:
    8,888
    Likes Received:
    850
    Trophy Points:
    478
    Location:
    where the streets have no name
    scusate per l'OT:
    per imparare a programmare è consigliabile iniziare dal linguaggio in C? oppure è meglio puntare prima su qualcos'altro?
  9. kinn

    kinn Tribe Member

    Joined:
    Jan 2, 2008
    Messages:
    4,311
    Likes Received:
    17
    Trophy Points:
    36
    Location:
    Salerno
    io finora non ho provato altro... ma C# mi sembra piuttosto "base". Di sicuro un buon linguaggio per iniziare.
  10. gallo92

    gallo92 Tribe Member

    Joined:
    Jul 31, 2008
    Messages:
    8,888
    Likes Received:
    850
    Trophy Points:
    478
    Location:
    where the streets have no name
    ok, che compilatore dovrei usare?
  11. rewrew

    rewrew Administrator

    Joined:
    Feb 10, 2007
    Messages:
    22,957
    Likes Received:
    8,448
    Trophy Points:
    4,642
    Location:
    Milano
    PSN Tag:
    rewrew
    Xbox Live Tag:
    DoubleREW
    Se inizi con java ti levi il problema dei puntatori e del dislocamento delle risorse, il garbage collector pensa a tutto.
    Inoltre la documentazione online è veramente ben fatta(ufficiale e non) e la virtual machine ti permette di spostarti da un os all'altro senza problemi.

    Quindi se sei proprio a zero con la programmazione io inizierei con questo. Ovviamente dopo un bel periodo di introduzione con Java devi passare ad un linguaggio C (ma almeno saprai già cos'è un tipo di dato non primitivo e cosa ne consegue).
    Se sei già a buon punto, Java rimane carino :asd:
  12. pinsicchio

    pinsicchio Sedicente Mente Superiore

    Joined:
    Jan 27, 2008
    Messages:
    9,029
    Likes Received:
    1,565
    Trophy Points:
    606
    Io sto imparando il python e (se non lo devi utilizzare per trovare pigreco :lalala:) non è molto difficile
  13. audace

    audace Tribe Member

    Joined:
    Jan 18, 2007
    Messages:
    4,828
    Likes Received:
    45
    Trophy Points:
    192
    Location:
    Milano
    dev c++
  14. Jhyrachy

    Jhyrachy Tribe Member

    Joined:
    Sep 17, 2007
    Messages:
    624
    Likes Received:
    60
    Trophy Points:
    109
    Xbox Live Tag:
    Jhyrachy
    Nintendo Network ID:
    Jhyrachy
    io uso il dev c++ per scuola;
    devi usare la versione 4.9.9.2, è la più stabile in assoluto.
    La libreria specifica del compilatore è iostream

    Comunque, visto che mi annoiavo, ecco lo stesso programma fatto in c++, in una versione un pelo più ordinata:
    PHP:
    #include 

    using namespace std

    void add(double n1double n2double &a);
    void sot(double n1double n2double &s);
    void mol(double n1double n2double &m);
    void div(double n1double n2double &d);
    void esp(double n1double n2double &e);

    int main(int argcchar *argv[]){
        
        
    double num1num2asmde;
        
               
    cout << "Inserisci primo numero: ";
               
    cin >> num1;
               
    cout << endl;
               
    cout << "Inserisci secondo numero: ";
               
    cin >>num2;
               
    cout << endl << endl;
               
               
    add(num1num2a);
               
    sot(num1num2s);
               
    mol(num1num2m);
               
    div(num1num2d);
               
    esp(num1num2e);
               
               
    cout << "Addizione: " << num1 << " + " << num2 << " = " << << endl;
               
    cout << "Sottrazione: " << num1 << " - " << num2 << " = " << << endl;
               
    cout << "Moltiplicazione: " << num1 << " * " << num2 << " = " << << endl;
               
    cout << "Divisione: " << num1 << " / " << num2 << " = " << << endl;
               
    cout << "Espressione: " << num2 << " * " << "( " << num2 << " + " << num1 << " )" << " = " << << endl;
               
    cout << endl << endl;
                   
    system("PAUSE");
                   return 
    EXIT_SUCCESS;
                   }
               
               
    void add(double n1double n2double &a){
                    
    =  n1 n2;
                    }
               
    void sot(double n1double n2double &s){
                    
    n1 n2;
                    }
               
    void mol(double n1double n2double &m){
                    
    n1 n2;
                    }
               
    void div(double n1double n2double &d){
                    
    n1 n2;
                    }
               
    void esp(double n1double n2double &e){
                    
    n2 * ( n2 n1);
                    }
    Last edited: Mar 15, 2011
  15. lycenhol

    lycenhol Tribe Active Member

    Joined:
    May 31, 2006
    Messages:
    30,199
    Likes Received:
    257
    Trophy Points:
    4,957
    Location:
    Nella tonnara come Rais
    Anche un pelo più pesante rispetto alla versione iniziale però :asd:
  16. Jhyrachy

    Jhyrachy Tribe Member

    Joined:
    Sep 17, 2007
    Messages:
    624
    Likes Received:
    60
    Trophy Points:
    109
    Xbox Live Tag:
    Jhyrachy
    Nintendo Network ID:
    Jhyrachy
    decisamente più pesante :asd:
    però su operazioni così ce lo possiamo anche concedere :asd:
  17. gallo92

    gallo92 Tribe Member

    Joined:
    Jul 31, 2008
    Messages:
    8,888
    Likes Received:
    850
    Trophy Points:
    478
    Location:
    where the streets have no name
    siccome sto a zero e sono autodidatta, inizierò con java