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

Discussione: Procedure [C++]

  1. #1
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    Procedure [C++]

    In classe oggi abbiamo studiato le procedure, i richiami a sottoprogrammi con void, svolto l'esercizio a casa con quel benedetto di un dev e come sempre mi da degli errori di sintassi, credo, a meno che il mio prof nn stava sballato stamattina.
    Questo è il prog che ho scritto:

    codice:
    #include <stdio.h>
    #include <iostream.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <conio.c>
    
    const int n=4;
    int mata[n][n], matb[n][n], matsomma[n][n], i, j;
    
    int main(){
         aquisizione_matrice_a();
         aquisizione_matrice_b();
         somma_matrici();
         visualizzazione_matrice_a();
         visualizzazione_matrice_b();
         visualizzazione_matrice_somma();
         getch();
         return 0;
    }
    
    void aquisizione_matrice_a(void){
           for(i=0;i<=n-1;i++)
              for(j=0;j<=n-1;j++){
                  cout<<"\nDammi il valore della matrice a di posizione ["<<i<<"] ["<<j<<"]   ";
                  cin>>mata[i][j];
              }
              clrscr();
    }
    
    void aquisizione_matrice_b(void){
           for(i=0;i<=n-1;i++)
              for(j=0;j<=n-1;j++){
                  cout<<"\nDammi il valore della matrice a di posizione ["<<i<<"] ["<<j<<"]   ";
                  cin>>matb[i][j];
              }
              clrscr();
    }
    
    void somma_matrici(void){
           for(i=0;i<=n-1;i++)
              for(j=0;j<=n-1;j++)
                   matsomma[i][j]=mata[i][j]+matb[i][j];
           clrscr();
    }
    
    void visualizzazione_matrice_a(void){
           for(i=0;i<=n-1;i++){
               cout<<"\n";
              for(j=0;j<=n-1;j++)
                         cout<<mata[i][j] <<" ";
           }
           cout<<"\n\n";
    }
    
    void visualizzazione_matrice_b(void){
           for(i=0;i<=n-1;i++){
               cout<<"\n";
              for(j=0;j<=n-1;j++)
                         cout<<matb[i][j] <<" ";
           }
           cout<<"\n\n";
    }
    
    void visualizzazione_matrice_somma(void){
           for(i=0;i<=n-1;i++){
               cout<<"\n";
              for(j=0;j<=n-1;j++)
                         cout<<matsomma[i][j] <<" ";
           }
           cout<<"\n\n";
    }
    Dove stanno gli errori??? Grazie mille

  2. #2

    Re: Procedure [C++]

    Originariamente inviato da Iena87
    In classe oggi abbiamo studiato le procedure, i richiami a sottoprogrammi con void, svolto l'esercizio a casa con quel benedetto di un dev e come sempre mi da degli errori di sintassi, credo, a meno che il mio prof nn stava sballato stamattina.
    Questo è il prog che ho scritto:

    .........

    Dove stanno gli errori??? Grazie mille
    il codice sembra corretto ma mancano i prototipi delle funzioni
    Per poter usare funzioni dichiarate "sotto" il main() devi specificare "sopra" al main i loro prototipi.
    Provalo cosi'...demmi se và :
    codice:
    #include <stdio.h>
    #include <iostream.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <conio.c>
    
    /* prototipi funzioni */
    void aquisizione_matrice_a(void);
    void aquisizione_matrice_b(void);
    void somma_matrici(void);
    void visualizzazione_matrice_a(void);
    void visualizzazione_matrice_b(vodi);
    void visualizzazione_matrice_somma(void);
    
    
    
    const int n=4;
    int mata[n][n], matb[n][n], matsomma[n][n], i, j;
    
    int main(){
         aquisizione_matrice_a();
         aquisizione_matrice_b();
         somma_matrici();
         visualizzazione_matrice_a();
         visualizzazione_matrice_b();
         visualizzazione_matrice_somma();
         getch();
         return 0;
    }
    
    void aquisizione_matrice_a(void){
           for(i=0;i<=n-1;i++)
              for(j=0;j<=n-1;j++){
                  cout<<"\nDammi il valore della matrice a di posizione ["<<i<<"] ["<<j<<"]   ";
                  cin>>mata[i][j];
              }
              clrscr();
    }
    
    void aquisizione_matrice_b(void){
           for(i=0;i<=n-1;i++)
              for(j=0;j<=n-1;j++){
                  cout<<"\nDammi il valore della matrice a di posizione ["<<i<<"] ["<<j<<"]   ";
                  cin>>matb[i][j];
              }
              clrscr();
    }
    
    void somma_matrici(void){
           for(i=0;i<=n-1;i++)
              for(j=0;j<=n-1;j++)
                   matsomma[i][j]=mata[i][j]+matb[i][j];
           clrscr();
    }
    
    void visualizzazione_matrice_a(void){
           for(i=0;i<=n-1;i++){
               cout<<"\n";
              for(j=0;j<=n-1;j++)
                         cout<<mata[i][j] <<" ";
           }
           cout<<"\n\n";
    }
    
    void visualizzazione_matrice_b(void){
           for(i=0;i<=n-1;i++){
               cout<<"\n";
              for(j=0;j<=n-1;j++)
                         cout<<matb[i][j] <<" ";
           }
           cout<<"\n\n";
    }
    
    void visualizzazione_matrice_somma(void){
           for(i=0;i<=n-1;i++){
               cout<<"\n";
              for(j=0;j<=n-1;j++)
                         cout<<matsomma[i][j] <<" ";
           }
           cout<<"\n\n";
    }
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Comunque è sempre meglio oltre al codice postare pure l'errore che ti dà il compilatore!!
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Originariamente inviato da Xadoom
    Comunque è sempre meglio oltre al codice postare pure l'errore che ti dà il compilatore!!
    certo il codice mi sembra corretto(oltre x il fatto della dichiarazione dei prototipi) ma se postavA pure il log di errori/warning del compilatore potevamo vedere ancora meglio

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #5
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429
    si scusate....nn ho postato la segnalazione d'errore :quipy:


    cmq grazie mille , perchè dovevo proprio mettere la dichiarazione dei prtotipi.....devo dirlo domani al prof....o sarà ubriaco....perchè oggi ha detto che nn si trattava di funzioni vere e proprie quindi avevo escluso l'uso dei prototipi....grazie ancora

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Forse avrà detto che non si trattava di funzioni vere e proprie in quanto, in altri linguaggi, esse vengono definite procedure, dato che "non hanno un valore di ritorno". In gergo si usa distinguere tra procedure e funzioni proprio per la presenza/assenza di ritorno valori. In analisi matematica, infatti, una funzione è qualcosa che, preso un input (dominio), restituisce un output (codominio).

    PS: ho messo tra virgolette l'affermazione non hanno un valore di ritorno perchè, in realtà, anche il void può essere inteso come un valore di ritorno (siamo informatici, infatti, non matematici :gren: )


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Originariamente inviato da LeleFT


    PS: ho messo tra virgolette l'affermazione non hanno un valore di ritorno perchè, in realtà, anche il void può essere inteso come un valore di ritorno (siamo informatici, infatti, non matematici :gren: )


    Ciao.
    infatti restituiscono un VOID,ossia un qualcosa di nullo



    :gren:

    ps in ogni caso i prototipi ci vanno cmq
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  8. #8
    Originariamente inviato da Iena87
    si scusate....nn ho postato la segnalazione d'errore :quipy:


    cmq grazie mille , perchè dovevo proprio mettere la dichiarazione dei prtotipi.....devo dirlo domani al prof....o sarà ubriaco....perchè oggi ha detto che nn si trattava di funzioni vere e proprie quindi avevo escluso l'uso dei prototipi....grazie ancora
    certo anche essendo "procedure"(in c/c++ non c'è differenza perchè sono cmq funzioni che non restituiscono nulla o meglio un VOID) necessitano dei prototipi "sopra" al main per essere richiamate

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da andrea_NET-_DSL
    infatti restituiscono un VOID,ossia un qualcosa di nullo



    :gren:

    ps in ogni caso i prototipi ci vanno cmq
    La mia affermazione, infatti, era volutamente ironica volta a sottolineare una differenza sottilissima fra informatico e matematico... (che come ben sappiamo non sono così distanti). :gren: :gren:


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Originariamente inviato da LeleFT
    La mia affermazione, infatti, era volutamente ironica volta a sottolineare una differenza sottilissima fra informatico e matematico... (che come ben sappiamo non sono così distanti). :gren: :gren:


    Ciao.
    sisi :gren:

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.