Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto function e procedure in C
Forum - C/C++ - Aiuto function e procedure in C

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 20:54
Martedý, 06/07/2010
Raga io avrei questo codice che ho realizzato e dovrei "sistemarlo" con procedure o function.. per˛ nn riesco a farlo mi escono sempre molti errori.. ora posto il codice tt fatto nel main qualcuno pu˛ aiutarmi a renderlo + guardabile usando function e procedure? grazie =)
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #define COLONNE    5  
  6. #define RIGHE      4
  7. void visualizza_mat(char b[RIGHE][COLONNE],int n,int m);
  8. struct giocatore {
  9.        char nome[10];
  10.        char cognome[10];
  11.                 };
  12.     typedef struct giocatore gt;
  13.        void main()
  14.        {
  15.      
  16.            int totT=0,totS=0,j,r,i,c,simulatore=0,tennista=0,palla,n_lanci=50000,vittorie=0,sconfitte=0,perc_respinte=0,perc_respinte2=0;
  17.  
  18.            gt gioc ;
  19. char campo2[RIGHE][COLONNE]={
  20.     {'B','B','B','B','B'},
  21.     {'B','G',' ','G','B'},
  22.     {'B','A',' ','A','B'},
  23.     {'B','G',' ','G','B'}};
  24.            printf("Benvenuto nel programma di simulazione del gioco del tennis vuoi giocare?\n");
  25.            visualizza_mat(campo2,RIGHE,COLONNE);
  26.            printf("\n-- Inserisci il tuo nome -- \n");
  27.            scanf("%s",gioc.nome);
  28.            printf("-- Inserisci il tuo cognome -- \n");
  29.            scanf("%s",gioc.cognome);                    
  30.                                          srand(time(NULL));
  31.                perc_respinte=(n_lanci*80)/100;
  32.                 perc_respinte2=(500*80)/100;
  33. printf(">> IL GIOCO PUO' INIZIARE <<\n\n");
  34.  
  35.  
  36. for(i=0;i<100;i++){
  37.     totT=totT+tennista;
  38.     totS=totS+simulatore;
  39.     tennista=0;
  40.     simulatore=0;
  41. for(j=0;j<500;j++)    {                            //INIZIO for
  42.      char  campo2[RIGHE][COLONNE]={
  43.     {'B','B','B','B','B'},
  44.     {'B','G',' ','G','B'},
  45.     {'B','A',' ','A','B'},
  46.     {'B','G',' ','G','B'}};
  47.      palla=1+rand()%10;
  48.      do{                                    //INIZIO REPEAT UNTIL
  49.         r=rand()%4;
  50.         c=rand()%5;
  51.      }                                        //FINE REPEAT UNTIL
  52.      while ((c == 2) && (r == 1 || r == 2 || r == 3));
  53.    
  54.                  fflush(stdin);
  55.           campo2[r][c]='X';
  56.        
  57.  
  58.           if((r==2 && c ==1) || (r==2 && c==3))
  59.               tennista++;
  60.           else if((r==1 && c==1) || (r==1 && c==3) || (r==3 && c==1) || (r==3 && c==3)){
  61.          
  62.               if(palla<3)
  63.                   tennista++;
  64.               else
  65.                   simulatore++;
  66.                  }
  67.                        
  68.              if(((r==0) && (c==0 || c==1 || c==2 || c==3 || c==4)) || (r==1 && c==0) || (r==1 && c==4) || (r==2 && c==0) || (r==2 && c==4) || (r==3 && c==0) || (r==3 && c==4))            
  69.                      tennista++;
  70.                    }
  71.                   printf("%dTennista:%d\n",i,tennista);
  72.                   if(tennista>perc_respinte2)
  73.                       vittorie++;
  74.                   else
  75.                       sconfitte++;
  76.                                        }        //FINE for
  77. printf("\n-- Il giocatore ha totalizzato %d punti --\n",totT);
  78. printf("\n-- Il simulatore ha totalizzato %d punti --\n",totS);
  79. printf("\n-- Le partite vinte sono: %d quelle perse invece sono: %d --\n",vittorie,sconfitte);
  80.  
  81. printf("\nPer vincere il giocatore deve totalizzare un numero di punti maggiore della \npercentuale di lanci respinti che risulta essere: %d, di conseguenza :\n",perc_respinte);
  82. if(totT>perc_respinte)
  83.      printf("\n-- Hai vinto tu giocatore!! --\n");
  84. else
  85.      printf("\n-- Mi dispiace hai perso, ha vinto il simulatore --\n");
  86.  
  87. }
  88.  
  89.  
  90. void visualizza_mat(char b[RIGHE][COLONNE],int n,int m)
  91. {
  92.     int i,j;
  93.     printf("\n");
  94.     printf("ECCO IL CAMPO DI TENNIS: \n");
  95.     for(i=0;i<RIGHE;i++)
  96.     {    
  97.         for(j=0;j<COLONNE;j++)
  98.             printf("  %c",b[i][j]);
  99.         printf("\n");
  100.     }
  101. }



grazie!

PM Quote
Avatar
qualcuno (Ex-Member)
Rookie


Messaggi: 37
Iscritto: 30/06/2010

Segnala al moderatore
Postato alle 21:03
Martedý, 06/07/2010
Prova a sistemarlo tu tramite l'uso di funzione e procedure. Se ti da degli errori di compilazione o di altra natura posti il codice insieme agli errori/warning del compilatore oppure se non si comporta come ti aspetti, dici cosa fa, quale valore ti da in uscita (l'output del programma) e l'output che ti aspetti tu in corrispondenza dei medesimi dati di  input.
Inoltre il titolo del thread Ŕ troppo generico...

Ultima modifica effettuata da qualcuno il 06/07/2010 alle 21:06


Nothing is impossible; impossible itself says "I' m possible"...
Qualunque sia la risposta tu non ce l'hai. (Gregory House)
PM Quote
Avatar
ShellC91 (Normal User)
Newbie


Messaggi: 15
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 21:03
Martedý, 06/07/2010
Per quanto riguarda il ciclo che genera casualmente gli eventi della partita ti consiglio di mettere tutto dentro a una funzione separata che ritorna quei valori in modo da rendere pi¨ leggibile il programma.


DUAL-BOOT: Windows - Debian

http://counter.li.org
Linux user #515661.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:12
Martedý, 06/07/2010
Testo quotato

per˛ nn riesco a farlo mi escono sempre molti errori.



Cominciamo da qui ... cosa avevi scritto e quali errori avevi ?


Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:28
Martedý, 06/07/2010

Ŕ bello sentire "molti errori", da un che di mistico alla programmazione :D


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 21:30
Martedý, 06/07/2010
il prbl principale era il passaggio dei parametri soprattutto qnd lavoro con gli struct :\ ad es nel 2 ciclo for vorrei togliere di mezzo tt quel casino, che parametri dovrei passare alla procedura secondo voi?
p.s. nn posso riportare gli errori perchŔ sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD

PM Quote
Avatar
ShellC91 (Normal User)
Newbie


Messaggi: 15
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 21:33
Martedý, 06/07/2010
Testo quotato

Postato originariamente da Leonhearth:

il prbl principale era il passaggio dei parametri soprattutto qnd lavoro con gli struct :\ ad es nel 2 ciclo for vorrei togliere di mezzo tt quel casino, che parametri dovrei passare alla procedura secondo voi?
p.s. nn posso riportare gli errori perchŔ sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD  


Devi passare il puntatore della struttura.
Cerca di scrivere in un italiano comprensibile e senza abbraviazioni...


DUAL-BOOT: Windows - Debian

http://counter.li.org
Linux user #515661.
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:38
Martedý, 06/07/2010
Testo quotato

Postato originariamente da Leonhearth:
p.s. nn posso riportare gli errori perchŔ sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD  



torna a giocare che Ŕ meglio, quando vuoi venir qui a lavorare fai un fischio, la gente qui non accetta scuse di questo tipo XD


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:38
Martedý, 06/07/2010
Testo quotato

Postato originariamente da Leonhearth:

il prbl principale era il passaggio dei parametri soprattutto qnd lavoro con gli struct :\ ad es nel 2 ciclo for vorrei togliere di mezzo tt quel casino, che parametri dovrei passare alla procedura secondo voi?
p.s. nn posso riportare gli errori perchŔ sn collegato tramite ps3 e scrivere un msg mi ruba tipo 10 minuti XD  



Si partecipa ad un forum scrivendo in italiano. Quando non lo si pu˛ fare, si evita. E' una questione di rispetto per chi legge.


Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo