sabato 30 novembre 2013

Gioco del dado con lancio di 2 dadi (con Funzioni per menu e lancio)

Programma che simula il lancio di due dado, viene chiesto all'utente su quale numero voglia puntare dopo di che il programma genera un numero pseudo casuale da 1 a 6 per ogni dado, somma i due risultati e li confronta con quello inserito dall'utente verificando se l'utente ha vinto o perso. Alla fine di ogni partita un menu permette all'utente di rigiocare una partita o uscire dal programma; quando l'utente decide di uscire dal programma viene visualizzato quante partite sono state giocate dall'utente e quante ne ha vinte o perse.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado1;
int dado2;
int dadi;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;
int lancio();
int funzmenu();

using namespace std;

int main()
{
    printf("\tLANCIO DI DUE DADI");
    while(menu==1)   //mentre variabile menu ha valore 1 esegui il ciclo
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>1) && (scelta<13))   //se il numero inserito dall'utente è compreso tra 1 e 12 esegui
         {
              contatore++;   //variabile contatore
              dado1=lancio();   //chiamata funzione dado
              dado2=lancio();   //chiamata funzione dado
              dadi=dado1+dado2;   //somma il valore di dado1 e dado2 così da confrontarlo successivamente con la puntata del giocatore
              printf("\nAl lancio dei dadi e' uscito %d e %d la cui somma e': %d",dado1,dado2,dadi);
              if(scelta==dadi)   //se il numero scelto dall'utente è uguale alla somma dei dadi
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie   
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              menu=funzmenu();   //chiamata a funzione menu
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 2 a 12");
    }
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);
}

int funzmenu()
{
int scelta;
printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
scanf("%d",&scelta);
return scelta;
}

int lancio()
{
int dado;
srand(time(0));   //generazione del seme tramite orologio computer
    dado=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado1
    dado++;   //incremento la variabile dado1 così da avere un valore da 1 a 6
    return dado;   //restituisco valore pseudo casuale di dado
}

Numeri Primi

Verifica se il numero inserito dall'utente è un numero primo:

NOTE:
un numero primo (in breve anche primo) è un numero naturale maggiore di 1 che sia divisibile solamente per 1 e per sé stesso; al contrario, un numero maggiore di 1 che abbia più di due divisori è detto composto. Ad esempio, 2, 3 e 5 sono primi, mentre 4 e 6 non lo sono perché sono divisibili rispettivamente anche per 2 e per 2 e 3. L'unico numero pari primo è 2, in quanto tutti gli altri numeri pari sono divisibili per 2.

#include<stdio.h>   

int numero;
int x;
int contatore=0;

using namespace std;

int main()
{   
printf("\tVerifica numeri primi");
printf("\n\nInserire un valore: ");
scanf("%d",&numero);
x=numero;   //variabile di appoggio per eseguire verifica divisioni
while(x>0)   //mentre x>0 eegui
{
if((numero%x)==0)   //se numero diviso x da resto zero allora 
{
contatore++;   //incrementa contatore
}
x--;   //decrementa variabile di appoggio x
}
if(contatore==2)   //un numero primo e' divisibile solo per 1 e per se stesso quindi se contatore e' uguale a 2
printf("\nE' un numero primo");   
else   //se contatore diverso da 2
printf("NON e' un numero primo");

}

venerdì 29 novembre 2013

Gioco del dado con lancio di 2 dadi (con INPUT da utente) esempio in while e do/while

Programma che simula il lancio di due dado, viene chiesto all'utente su quale numero voglia puntare dopo di che il programma genera un numero pseudo casuale da 1 a 6 per ogni dado, somma i due risultati e li confronta con quello inserito dall'utente verificando se l'utente ha vinto o perso. Alla fine di ogni partita un menu permette all'utente di rigiocare una partita o uscire dal programma; quando l'utente decide di uscire dal programma viene visualizzato quante partite sono state giocate dall'utente e quante ne ha vinte o perse.

Esempio con menu in ciclo WHILE

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado1;
int dado2;
int dadi;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;

using namespace std;

int main()
{
    printf("\tLANCIO DI DUE DADI");
    while(menu==1)   //mentre variabile menu ha valore 1 esegui il ciclo
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>1) && (scelta<13))   //se il numero inserito dall'utente è compreso tra 1 e 12 esegui
         {
              contatore++;   //variabile contatore
              srand(time(0));   //generazione del seme tramite orologio computer
              dado1=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado1
              dado1++;   //incremento la variabile dado1 così da avere un valore da 1 a 6
              dado2=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado2
              dado2++;   //incremento la variabile dado2 così da avere un valore da 1 a 6
              dadi=dado1+dado2;   //somma il valore di dado1 e dado2 così da confrontarlo successivamente con la puntata del giocatore
              printf("\nAl lancio dei dadi e' uscito %d e %d la cui somma e': %d",dado1,dado2,dadi);
              if(scelta==dadi)   //se il numero scelto dall'utente è uguale alla somma dei dadi
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie  
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
              scanf("%d",&menu);  
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 2 a 12");
    }
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);
}

_________________________________________________________________________________

Esempio con menu in ciclo DO / WHILE

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado1;
int dado2;
int dadi;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;

using namespace std;

int main()
{
    printf("\tLANCIO DI DUE DADI");
    do  //esegui mentre si verifica post condizione
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>1) && (scelta<13))   //se il numero inserito dall'utente è compreso tra 1 e 12 esegui
         {
              contatore++;   //variabile contatore
              srand(time(0));   //generazione del seme tramite orologio computer
              dado1=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado1
              dado1++;   //incremento la variabile dado1 così da avere un valore da 1 a 6
              dado2=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado2
              dado2++;   //incremento la variabile dado2 così da avere un valore da 1 a 6
              dadi=dado1+dado2;   //somma il valore di dado1 e dado2 così da confrontarlo successivamente con la puntata del giocatore
              printf("\nAl lancio dei dadi e' uscito %d e %d la cui somma e': %d",dado1,dado2,dadi);
              if(scelta==dadi)   //se il numero scelto dall'utente è uguale alla somma dei dadi
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie  
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
              scanf("%d",&menu);  
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 2 a 12");
    }while(menu==1);  post condizione mentre variabile menu ha valore 1 esegui il ciclo   
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);


}

_________________________________________________________________________________


Gioco del dado (con INPUT da utente) esempio in while e do/while

Programma che simula il lancio di un dado, viene chiesto all'utente su quale numero voglia puntare dopo di che il programma genera un numero pseudo casuale da 1 a 6, lo confronta con quello inserito dall'utente e verifica se l'utente ha vinto o se ha perso. Alla fine di ogni partita un menu permette all'utente di rigiocare una partita o uscire dal programma; quando l'utente decide di uscire dal programma viene visualizzato quante partite sono state giocate dall'utente e quante ne ha vinte o perse.

Esempio con menu in ciclo WHILE

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;

using namespace std;

int main()
{
    while(menu==1)   //mentre variabile menu ha valore 1 esegui il ciclo
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>0) && (scelta<7))   //se il numero inserito dall'utente è compreso tra 1 e 6 esegui
         {
              contatore++;   //variabile contatore
              srand(time(0));   //generazione del seme tramite orologio computer
              dado=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado
              dado++;   //incremento la variabile dado così da avere un valore da 1 a 6
              printf("\nAl lancio del dado e' uscito il numero %d",dado);
              if(scelta==dado)   //se il numero scelto dall'utente è uguale a quello generato casualmente esegui
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie   
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
              scanf("%d",&menu);   
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 1 a 6");
    }
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);
}

_________________________________________________________________________________

Esempio con menu in ciclo DO / WHILE

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;

using namespace std;

int main()
{
    do   //esegui mentre post condizione while si verifica
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>0) && (scelta<7))   //se il numero inserito dall'utente è compreso tra 1 e 6 esegui
         {
              contatore++;   //variabile contatore
              srand(time(0));   //generazione del seme tramite orologio computer
              dado=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado
              dado++;   //incremento la variabile dado così da avere un valore da 1 a 6
              printf("\nAl lancio del dado e' uscito il numero %d",dado);
              if(scelta==dado)   //se il numero scelto dall'utente è uguale a quello generato casualmente esegui
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie   
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
              scanf("%d",&menu);   
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 1 a 6");
    }while(menu==1); //mentre variabile menu ha valore 1 esegui il ciclo
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);
}

_________________________________________________________________________________




Lancio di un dado

Programma che simula il lancio di un dado e visualizza all'utente un numero pseudo casuale da 1 a 6.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int dado;

using namespace std;

int main()
{
       srand(time(0));   //generazione del seme tramite orologio computer
       dado=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado
       dado++;   //incremento la variabile dado così da avere un valore da 1 a 6
       printf("\nAl lancio del dado e' uscito il numero %d",dado);
}

_________________________________________________________________________________


mercoledì 27 novembre 2013

Algoritmo 26_11_2013

Questo programma una volta inserito dall'utenti il numero di inserimenti che desidera effettuare esegue per ogni INPUT un controllo sul numero inserito contando se quest'ultimo risulta pari, dispari o nullo. Somma inoltre ogni numero in una variabile che al momento della fine del programma dovrà visualizzare la somma di tutti i numeri inseriti dall'utente.

#include<stdio.h>

int ris=0;
int volte;
int operando;
int pari=0;
int dispari=0;
int nullo=0;

using namespace std;

int main()
{
   printf("Quanti numeri vuoi inserire?: ");
   scanf("%d",&volte);
   while(volte>0)   //esegui mentre volte>0
   {
      printf("\nInserire un valore: ");
      scanf("%d",&operando);
      if(operando==0)   //se il valore inserito dall'utente è uguale a 0 esegui
         nullo++;
      else   //altrimenti se valore inserito dall'utente è maggiore di 0 esegui
      {
         if((operando%2)==0)   //se valore inserito dall'utente è divisibile per 2
            pari++;
         else   //altrimenti se valore inserito dall'utente non è divisibile per 2
            dispari++;
      }
    ris+=operando;   //somma al totale precedente il numero inserito dall'utente a ogni ciclo while 
    volte--;   //decrementa la variabile volte così da sfruttarla come contatore per il ciclo while
   }
printf("\nIl risultato della somma e': %d",ris);
printf("\n\nHai inserito %d numeri pari\tHai inserito %d numeri dispari\nHai inserito %d volte il numero 0",pari,dispari,nullo);
}

Algoritmo Fibonacci

Visualizza la sequenza di Fibonacci per n volte scelte dall'utente

# include<stdio.h>

int oper1=1;
int oper2=1;
int ris=0;
int volte=0;

int main()
{
printf("Quante volte vuoi eseguire FIBONACCI?");
scanf("%d",&volte);
ris=oper1+oper2;
printf("\n\t %d    %d    %d",oper1,oper2,ris);
     while(volte>0)   //mentre volte e' maggiore di 0
     {
     oper1=oper2;   
     oper2=ris;
ris=oper1+oper2;   //le tre operazioni portano a sommare 1+1=2,1+2=3,2+3=5....
printf("\n\t %d    %d    %d",oper1,oper2,ris);
volte--;   //decremento variabile volte
}
}

_________________________________________________________________________________

Evoluzione: applica lo schema di somma Fibonacci a due numeri inseriti dall'utente

# include<stdio.h>

int oper1;
int oper2;
int ris=0;
int volte=0;

int main()
{
   printf("Quante volte vuoi eseguire FIBONACCI?");
   scanf("%d",&volte);
   printf("\nPrimo valore?");
   scanf("%d",&oper1);
   printf("\nSecondo valore?");
   scanf("%d",&oper2);
   ris=oper1+oper2;
   printf("\n\t %d  |  %d  |  %d",oper1,oper2,ris);
        while(volte>0)
        {
        oper1=oper2;
        oper2=ris;
        ris=oper1+oper2;
        printf("\n\t %d  |  %d  |  %d",oper1,oper2,ris);
        volte--;
        }
}