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--;
        }
}

lunedì 25 novembre 2013

Esercizio verifica

#define Led1 12
#define Led2 11
#define Lampadina 10

const int analogInPin = A0;
const int analogOutPin = 10;

int sensore = 0;
int outputValue;

void setup()
{
  Serial.begin(9600);
}

void loop ()
{
  sensore= analogRead(analogInPin);
  sensore= constrain(sensore, 0, 750);
 
  if(sensore>500)
  {
    digitalWrite(Led1, HIGH);
    digitalWrite(Led2, HIGH);
  }
 
  if(sensore>250 && sensore <=500)
  {
    digitalWrite(Led1, HIGH);
    digitalWrite(Led2, LOW);
  }
 
  if(sensore>100 && sensore<=250)
  {
    digitalWrite(Led1, LOW);
    digitalWrite(Led2, LOW);
  }
 
  if(sensore<=100)
  {
    digitalWrite(Led1, LOW);
    digitalWrite(Led2, LOW);
    digitalWrite(Lampadina, HIGH);
  }
}

domenica 24 novembre 2013

Verifica se anno bisestile (con funzioni, menu con ciclo while e contatore)

Compilare un programma che eseguito in INPUT un anno dall'utente verifichi se sarà o se è stato bisestile, inserire un controllo while che permetta di rieseguire il programma n volte e un contatore che una volta terminato il programma visualizzi quante volte è stato eseguito dall'utente.

#include <stdio.h>

int anno;
int ris;
int scelta=1;   //assegno valore 1 a scelta così da far fare subito all'apertura del programma un ciclo all'interno del while
int bisestile(int);   //definizione funzione che verifica se anno inserito è bisestile
int menu();   //definizione funzione che esegue menu
int contatore=0;   //conta quante volte l'utente esegue il programma

using namespace std;

int main()
{
printf("Questo programma verifica se l'anno inserito dall'utente risulta essere \nbisestile o meno\n\n");
while(scelta>0 && scelta<2)   //while che controlla la scelta effettuata dall'utente nella funzione menu
{
contatore++;   //conta quante volte l'utente esegue il programma
printf("\nInserisci l'anno che vuoi verificare: ");
scanf("%d",&anno);
if(anno>2013)   //se anno inserito dall'utente risulta maggiore dell'anno corrente allora usa printf con dicitura "sarà"
{
ris=bisestile(anno);   //chiamata a funzione con passaggio parametro "anno" che verifica se anno inserito è bisestile e restituisce in variabile "ris" 1 se bisestile 0 se NON bisestile 
if(ris==1)   //se funzione bisestile restituisce 1
printf("L'anno sara' bisestile");
else   //altrimenti se funzione bisestile restituisce 0
printf("L'anno non sara' bisestile");
}
else   //altrimenti se anno inserito dall'utente risulta minore dell'anno corrente allora usa printf con dicitura "era"
{
ris=bisestile(anno);   //chiamata a funzione che verifica se anno inserito è bisestile e restituisce in variabile "ris" 1 se bisestile 0 se NON bisestile 
if(ris==1)   //se funzione bisestile restituisce 1
printf("L'anno era bisestile");
else   //altrimenti se funzione bisestile restituisce 0
printf("L'anno non era bisestile");
}
scelta=menu();   //chiamata a funzione menu che restituisce la scelta dell'utente in variabile "scelta" che utilizza poi nel controllo con while
}
printf("\n\tHai eseguito questo programma %d volte",contatore);   //quando l'utente decide di uscire viene visualizzato quante volte ha eseguito il programma
}

int menu()   //definizione funzione menu
{
int scelta;   //variabile di appoggio per input utente
printf("\n\n\tMenu:");
printf("\n\n1) Per verificare un altro anno\n2) Per uscire\n");
scanf("%d",&scelta);
return scelta;   //restituisce il contenuto della variabile scelta
}

int bisestile (int a)   //definizione funzione bisestile con passaggio parametro anno
{
int ris;   //variabile di appoggio per risultato verifica anno
if(a%100==0)   //se anno diviso 100 da resto zero (quindi è divisibile)
{
if(a%400==0)   //controllo se è anche divisibile per 400 
ris=1;   //se si bisestile quindi assegno a variabile "ris" valore 1
else
ris=0;   //altrimenti se no allora non bisestile assegno a "ris" valore 0
}
else   //altrimenti se non divisibile per 100 (quindi anno non secolare)
{
if(a%4==0)   //se divisibile per 4
ris=1;   //bisestile quindi assegno valore 1
else   //altrimenti se non divisibile per 4
ris=0;   //non bisestile quindi assegno valore 0
}
return ris;   //restituisco il valore contenuto in variabile "ris"
}

martedì 19 novembre 2013

Media Alunni + Controllo su valore inserito

Fare un programma che inseriti n alunni calcoli la media dei voti della classe, inserendo un controllo sulla conformità dei valori inseriti (voti da 1 a 10):

#include <stdio.h>

float voto=0;   //variabile contenitore voto
float media=0;   //variabile contenitore somma voti alunni + calcolo media
int alunni;   //variabile contenitore numero alunni 
int contatore;   //variabile da appoggio per ciclo while

int main()
{
printf("Quanti alunni ci sono nella classe? ");
scanf("%d",&alunni);   
contatore=alunni;   //assegno a contatore il valore della variabile alunni
while(contatore>0)   //mentre contatore >0 esegui
{
printf("Inserisci il voto dell' alunno: ");
scanf("%f",&voto);
if(voto>0 && voto<=10)   //se il valore del voto è compreso tra 1 e 10 esegui
{
media=media+voto;   //sommo il voto inserito alla variabile media
contatore--;   //decremento la variabile contatore per controllare il ciclo while
}
else
printf("\n\tVoto non valido\n\n");   //altrimenti se voto < 1 o voto > 10 
}
media=(media/alunni);   //calcolo la media 
printf("La media dei voti e': %.2f",media);
}


Controllo valori input (pari - dispari - zero)

Scrivere un programma che, una volta scelto dall'utente quanti numeri voglia inserire, esegua alla fine dell'inserimento dei valori quanti numeri pari - dispari o '0' sono stati inseriti.

#include <stdio.h>

int val;   //variabile che conterrà valore inserito dall'utente
int pari=0;   //variabile contatore numeri pari
int disp=0;   //variabile contatore numeri dispari
int zero=0;   //variabile contatore numero 0
int n;   //variabile che conterrà il valore di volte che si desidera ripetere l'inserimento

int main()
{
printf("Quante volte vuoi eseguire l'inserimento? ");
scanf("%d",&n);
while(n>0)   //mentre n>0 esegui
     {
     printf("\nInserire un valore: ");
     scanf("%d",&val);
     if(val==0)   //se il valore contenuto in val è '0' allora incrementa +1 variabile contatore zero
          zero++;
     else   //altrimenti
          if(val%2==0)   //se il valore contenuto in val modulo 2 da resto '0' incrementa +1 variabile contatore pari
               pari++;
          else   //altrimenti
               disp++;   //incrementa +1 variabile contatore dispari
     n--;   //decrementa variabile n
     }
printf("\n\nHai inserito: \n\n%d numeri pari\t%d numeri dispari\t %d volte il numero '0'",pari,disp,zero);

}





domenica 17 novembre 2013

Calcolo Fattoriale

#include<stdio.h>

int valore;
int contatore;

using namespace std;

int main()
{
printf("Inserire un valore: ");
scanf("%d",&valore);
if(valore==0)   //se utente inserisce valore 0 
     printf("\nIl fattoriale di 0 e' 1");
else   //altrimenti se valore != da 0 esegui
  {
contatore=valore-1;   //il valore contatore = valore inserito dall'utente -1
while(contatore>0)   //finchè il contatore è maggiore di 0 esegui
{
valore=(valore*contatore);   //valore inserito dall'utente=valore inserito dall'utente*contatore
contatore--;   //decrementa contatore
}
   printf("\nIl complementare e': %d",valore);
}
}



Equazione di secondo grado, con utilizzo di funzioni


#include <stdio.h>
#include <cmath>

int a;
int b;
int c;
int x1;
int x2;
int delta;
int funzdelta(int x, int y, int z);   //funzione per il calcolo del delta (parametri a,b,c)
int funzx1(int x, int y, int z);   //funzione per il calcolo di x1 (parametri b,delta,a)
int funzx2(int x, int y, int z);   //funzione per il calcolo di x2 (parametri b,delta,a)

using namespace std;

int main()
{
    printf("Inserisci il valore di 'a':  ");
    scanf("%d",&a);
    printf("\nInserisci il valore di 'b':  ");
    scanf("%d",&b);
    printf("\nInserisci il valore di 'c':  ");
    scanf("%d",&c);
    delta=funzdelta(a,b,c);   //chiamata funzione per calcolo delta
    if(delta>=0)
               delta=sqrt(delta);   //se delta >=0 esegui radice quadrata del valore delta
    else
               printf("\nDELTA NEGATIVO");   //altrimenti visualizza che delta è negativo
    printf("\n\nIl valore del DELTA e': %d",delta);
    if(delta>0)   //se delta>0 calcola x1 e x2
    {
               x1=funzx1(b, delta, a);   //chiamata funzx1 con passaggio parametri
               x2=funzx2(b, delta, a);   //chiamata funzx2 con passaggio parametri
               printf("\n\nIl valore di x1 e' %d e il valore di x2 e': %d",x1,x2);
    }
    else  
               if(delta==0)   //se delta=0 x1=x2 quindi esegui solo funzx1
               {
                          printf("\n\nIl valore di x1 e x2 e' coincidente: %d",funzx1);   //visualizza valore return funzx1
               }
               else
                          if(delta<0)   //se delta <0 non ci sono soluzioni
                          printf("\n\nIl valore di X non è determinabile");
}

int funzdelta(int x, int y, int z)
{
int delta;
delta=((y*y)-(4*x*z));   //((b^2)-(4*a*c))
return delta;
}

int funzx1 (int x, int y, int z)
{
int risultato;
risultato=((-1)*(x)+y)/(2*z);   //((-b)+√∆)/(2*a))
return risultato;
}

int funzx2 (int x, int y, int z)
{
int risultato;
risultato=((-1)*(x)-y)/(2*z);   //((-b)-√∆)/(2*a))
return risultato;
}



martedì 12 novembre 2013

Esercizio Verifica

Scrivere prototipo e definizione di una funzione alla quale passare 2 parametri interi che svolga:
1.       Visualizzi contemporaneamente somma e prodotto tra i due parametri
2.       Restituisca il primo parametro decrementato di uno

Scrivere il main che richiami la funzione del precedente esercizio e ne visualizzi i due parametri ed il risultato restituito dalla funzione .


#include <stdio.h>

int funz1(int a,int b);  \\Prototipo Funzione
int oper1;   
int oper2;
int ris;

int main()
{
printf("Inserisci il primo valore: ");
scanf("%d",&oper1);   \\Valore inserito dall'utente salvato in variabile oper1
printf("\nInserisci il secondo valore: ");
scanf("%d",&oper2);   \\Valore inserito dall'utente salvato in variabile oper2
printf("\nI valori inseriti sono: %d e %d",oper1,oper2);
ris=funz1(oper1,oper2);   \\Chiamata Funzione e salva il risultato restituito nella variabile ris
printf("\nIl risultato della funzione e': %d",ris);   \\Stampa risultato restituito da funzione 
}

int funz1(int a,int b)  \\Definizione funzione
{
int somma;
int molt;
somma=a+b;  \\somma i due valori inseriti dall'utente e salva il risultato in variabile somma
molt=a*b;   \\moltiplica i due valori inseriti dall'utente e salva il risultato in variabile molt
printf("\nLa somma tra i due valori e': %d la moltiplicazione tra i due valori e': %d",somma,molt);   
\\Stampa di variabili somma e molt
return a-1;   \\restituisce il primo valore inserito dall'utente decrementato
}

Esercizio IF / ELSE (su calcolatrice con funzioni)

#include <stdio.h>

//PROTOTIPO FUNZIONI
float somma(float x, float y);  
//funzione somma con 2 parametri FLOAT per il passaggio dei dati contenuti in a e b
float sott(float x,float y);  
//funzione sottrazione con 2 parametri FLOAT per il passaggio dei dati contenuti in a e b
float molt(float x,float y);  
//funzione moltiplicazione con 2 parametri FLOAT per il passaggio dei dati contenuti in a e b
float div(float x,float y);  
//funzione divisione con 2 parametri FLOAT per il passaggio dei dati contenuti in a e b
int modulo(int x,int y);      
//funzione modulo con 2 parametri INT per il passaggio dei dati contenuti in a e b

//DICHIARAZIONI VARIABILI
float a;                      
//variabile contenitore primo operando
float b;                      
//variabile contenitore secondo operando
float ris;                  
//variabile contenitore risultati funzioni FLOAT
int mod;                      
//variabile contenitore risultati funzione MODULO
int menu;                    
//variabile contenitore scelta menù

using namespace std;

int main()
{
printf("Inserire il primo valore: ");
scanf("%f",&a);     //contenitore primo operando
printf("\nInserire il secondo valore: ");
scanf("%f",&b);    //contenitore primo operando
printf("\n\n\tMENU CALCOLATRICE\n\n");  //visualizzo menu scelte operazioni disponibili all'utente
printf("1) Somma\n");
printf("2) Sottrazione\n");
printf("3) Moltiplicazione\n");
printf("4) Divisione\n");
printf("5) Modulo\n");
printf("6) Esci");
printf("\nScegli l'operazione da effettuare: ");
scanf("%d",&menu);    //contenitore scelta operazione che l'utente desidera effettuare


if(menu==1)  
//confronto scelta effettuata da utente con richiamo relativa funzione da eseguire
        {
        ris=somma(a, b);   
//chiamata funzione somma con passaggio parametri a e b, poi valore restituito da funzione assegnato a variabile ris
        printf("\n\nIl risultato della somma tra %.2f e %.2f e': %.2f",a,b,ris);   
//visualizzo valore operando e risultato operazione eseguita   
        }
else   
//altrimenti verifico condizione successiva
        if(menu==2)
//confronto scelta effettuata da utente con richiamo relativa funzione da eseguire
                   {
                   ris=sott(a, b);  
//chiamata funzione sottrazione con passaggio parametri a e b, poi valore restituito da funzione assegnato a variabile ris
                   printf("\n\nIl risultato della sottrazione tra %.2f e %.2f e': %.2f",a,b,ris);   
//visualizzo valore operando e risultato operazione eseguita
                   }
        else   
//altrimenti verifico condizione successiva
                if(menu==3)  
//confronto scelta effettuata da utente con richiamo relativa funzione da eseguire
                           {
                           ris=molt(a, b);   
//chiamata funzione moltiplicazione con passaggio parametri a e b, poi valore restituito da funzione assegnato a variabile ris
                           printf("\n\nIl risultato della moltiplicazione tra %.2f e %.2f e': %.2f",a,b,ris);   
//visualizzo valore operando e risultato operazione eseguita    
                           }
                else   
//altrimenti verifico condizione successiva
                           if(menu==4)   
//confronto scelta effettuata da utente con richiamo relativa funzione da eseguire
                                      {
                                      ris=div(a, b);   
//chiamata funzione divisione con passaggio parametri a e b, poi valore restituito da funzione assegnato a variabile ris
                                      printf("\n\nIl risultato della divisione tra %.2f e %.2f e': %.2f",a,b,ris);   
//visualizzo valore operando e risultato operazione eseguita    
                                      }
                           else   
//altrimenti verifico condizione successiva
                                   if(menu==5)   
//confronto scelta effettuata da utente con richiamo relativa funzione da eseguire
                                              {
                                              mod=modulo(a, b);  
//chiamata funzione modulo con passaggio parametri a e b, poi valore restituito da funzione assegnato a variabile INTERA mod
                                              printf("\n\nIl resto della divisione tra %.2f e %.2f e': %d",a,b,mod);   
//visualizzo valore operando e risultato operazione eseguita      
                                              }
                                   else  
//altrimenti in caso di scelte diverse da 1 2 3 4 5 visualizzo la scritta fine e chiudo programma
                                              printf("\n\nFine");                  
}

//DEFINIZIONI FUNZIONI
float somma(float x,float y)   //variabili x e y contengono valori a e b passati dalla chiamata di funzione
{
        float tot;   //dichiaro variabile tipo float tot  
        tot=x+y;   //assegno a tot risultato x+y
        return tot;   //restituisco a chiamata funzione valore contenuto in variabile tot
}

float sott(float x,float y)   //variabili x e y contengono valori a e b passati dalla chiamata di funzione
{
        float tot;   //dichiaro variabile tipo float tot  
        tot=x-y;   //assegno a tot risultato x-y
        return tot;   //restituisco a chiamata funzione valore contenuto in variabile tot
}

float molt(float x,float y)   //variabili x e y contengono valori a e b passati dalla chiamata di funzione
{
        float tot;   //dichiaro variabile tipo float tot  
        tot=x*y;   //assegno a tot risultato x*y
        return tot;   //restituisco a chiamata funzione valore contenuto in variabile tot
}

float div(float x,float y)   //variabili x e y contengono valori a e b passati dalla chiamata di funzione
{
        float tot;   //dichiaro variabile tipo float tot  
        tot=x/y;   //assegno a tot risultato x/y
        return tot;   //restituisco a chiamata funzione valore contenuto in variabile tot
}

int modulo(int x,int y)   //variabili x e y contengono valori a e b passati dalla chiamata di funzione
{
        int tot;   //dichiaro variabile tipo intero tot  
        tot=x%y;   //assegno a tot risultato x%y
        return tot;   //restituisco a chiamata funzione valore contenuto in variabile tot



mercoledì 6 novembre 2013

Esercizio 05/11/2013 Carattere e Stringa

Scrivere un programma che una volta ricevuto un carattere dall'utente faccia visualizzare il carattere come "char", come valore decimale e come valore esadecimale.
_________________________________________________________________________________

//Direttive per il coprocessore
#include <stdio.h>   //Inclusione delle Librerie

char a='3';   //Variabile di tipo char a cui è assegnato il carattere '3'

using namespace std;

int main()
{
    printf("\nIl carattere assegnato alla variabile 'A' e': %c a cui corrisponde il valore decimale %d ed esadecimale %x ",a,a,a);
    //visualizza il valore assegnato, il numero decimale e esadecimale corrispondente da tabella ASCII
    printf("\n\nInserisci un carattere: ");
    scanf("%c",&a);  //acquisisco il carattere inserito dall'utente e lo salvo nella variabile "a"
    printf("\nIl carattere inserito e': %c a cui corrisponde il valore decimale %d ed esadecimale %x ",a,a,a);
    //visualizza il valore assegnato, il numero decimale e esadecimale corrispondente da tabella ASCII
}

Esercizio 05/11/2013 Funzioni con Parametri

Scrivere un programma che inseriti due valori dall'utente ne esegua somma, moltiplicazione, sottrazione e modulo tramite funzioni con parametri.
_________________________________________________________________________________

#include<stdio.h> //richiamo la libreria

int somma(int a, int b); //prototipo della funzione somma
int molt(int a, int b);  //prototipo della funzione moltiplicazione
int sott(int a, int b);  //prototipo della funzione sottrazione
int modulo(int a, int b);//prototipo della funzione modulo
int x; //variabile contenitore del primo valore inserito dall'utente
int y; //variabile contenitore del secondo valore inserito dall'utente
int ris;  //variabile contenitore del valore restituito dalle funzioni

using namespace std;

int main()
{
 
printf("Inserisci il primo valore: ");  //chiediamo all'utente di inserire un valore da tastiera
scanf("%d",& x);  //momorizzo il valore inserito dall'utente nella variabile x
printf("Inserisci il secondo valore: ");//chiediamo all'utente di inserire un valore da tastiera
scanf("%d",& y);  //momorizzo il valore inserito dall'utente nella variabile y
ris=somma(x,y);   //chiamo la funzione somma e salvo il valore restituito nella variabile ris
printf("\n\nIl risultato della somma tra i due valori è: %d",ris);  //visualizzo il contenuto della variabile ris
ris=molt (x,y);   //chiamo la funzione molt e salvo il valore restituito nella variabile ris
printf("\n\nIl risultato della moltiplicazione tra i due valori è: %d",ris);  //visualizzo variabile ris
ris=sott (x,y);   //chiamo la funzione sott e salvo il valore restituito nella variabile ris
printf("\n\nIl risultato della sottrazione tra i due valori è: %d",ris);  //visualizzo variabile ris
ris=modulo (x,y); //chiamo la funzione modulo e salvo il valore restituito nella variabile ris
printf("\n\nIl resto della divisione tra tra i due valori è: %d",ris);  //visualizzo variabile ris

}

int somma(int a, int b) //definizione della funzione somma dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a+b;
return tot;         //la funzione somma restituisce in chiamata il valore contenuto nella variabile tot
}

int molt(int a, int b) //definizione della funzione molt dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a*b;
return tot;        //la funzione molt restituisce in chiamata il valore contenuto nella variabile tot
}

int sott(int a, int b) //definizione della funzione sott dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a-b;
return tot;        //la funzione sott restituisce in chiamata il valore contenuto nella variabile tot
}

int modulo(int a, int b) //definizione della funzione modulo dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a%b;
return tot;       //la funzione modulo restituisce in chiamata il valore contenuto nella variabile tot
}

lunedì 28 ottobre 2013

arduino

#define ledRosso   9
#define ledBlu    10
#define ledVerde  11
#define ledGiallo 12
#define button1 7
#define button2 6
int cont=0;

void setup()
  {
      pinMode (button1 ,INPUT);
      pinMode (button2 ,INPUT);
      pinMode (ledRosso,OUTPUT);
      pinMode (ledGiallo,OUTPUT);
      pinMode (ledVerde,OUTPUT);
      pinMode (ledBlu,OUTPUT);
  }

void loop()
{

  if (digitalRead(button1)==HIGH)
     {
     delay(200);
     cont==0;
     }
   
  if (digitalRead(button2)==HIGH)
     {
     delay(200);
     cont==1;
     }
 
  switch(cont)
    {
      case 0:
         digitalWrite (ledRosso,HIGH);
         digitalWrite (ledBlu,HIGH);
         digitalWrite (ledVerde,HIGH);
         digitalWrite (ledGiallo,HIGH);
         delay(2000);
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,LOW);
         delay(2000);
     break;
     case 1:
         digitalWrite (ledRosso,HIGH);
         digitalWrite (ledBlu,HIGH);
         digitalWrite (ledVerde,HIGH);
         digitalWrite (ledGiallo,HIGH);
         delay(1000);
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,LOW);
         delay(1000);
     break;
   }
   
}

______________________________________________________________________________
#define ledRosso   9
#define ledBlu    10
#define ledVerde  11
#define ledGiallo 12
#define button 7

void setup()
  {
      pinMode (button1 ,INPUT);
      pinMode (button2 ,INPUT);
      pinMode (ledRosso,OUTPUT);
      pinMode (ledGiallo,OUTPUT);
      pinMode (ledVerde,OUTPUT);
      pinMode (ledBlu,OUTPUT);
  }
 
  void loop()
  {

    if (digitalRead(button1)==HIGH)
      {
      digitalWrite (ledRosso,HIGH);
      digitalWrite (ledBlu,HIGH);
      digitalWrite (ledVerde,HIGH);
      digitalWrite (ledGiallo,HIGH);
      delay(2000);
      digitalWrite (ledRosso,LOW);
      digitalWrite (ledBlu,LOW);
      digitalWrite (ledVerde,LOW);
      digitalWrite (ledGiallo,LOW);
      delay(2000);
      }
    if (digitalRead(button2)==HIGH)
      {
      digitalWrite (ledRosso,HIGH);
      digitalWrite (ledBlu,HIGH);
      digitalWrite (ledVerde,HIGH);
      digitalWrite (ledGiallo,HIGH);
      delay(1000);
      digitalWrite (ledRosso,LOW);
      digitalWrite (ledBlu,LOW);
      digitalWrite (ledVerde,LOW);
      digitalWrite (ledGiallo,LOW);
      delay(1000);
      }
 
}
 

_______________________________________________________________________________




#define ledRosso   9
#define ledBlu    10
#define ledVerde  11
#define ledGiallo 12
#define button 7

void setup()
  {
      int i=0;
      pinMode (button ,INPUT);
      pinMode (ledRosso,OUTPUT);
      pinMode (ledGiallo,OUTPUT);
      pinMode (ledVerde,OUTPUT);
      pinMode (ledBlu,OUTPUT);
  }
 
  void loop()
  {

    if (digitalRead(button)==HIGH)
    {
    delay(200);
    i++;
    }
    switch(i)
    {  
      case 0:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,LOW);
         break;
      case 1:
         digitalWrite (ledRosso,HIGH);
         break;
      case 2:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
      case 3:
         digitalWrite (ledRosso,HIGH);
         digitalWrite (ledBlu,HIGH);
         break;
      case 4:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,HIGH);
         break;
      case 5:
         digitalWrite (ledRosso,HIGH);
         break;
      case 6:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
      case 7:
         digitalWrite (ledRosso,HIGH);
         break;
      case 8:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,HIGH);
         break;
      case 9:
         digitalWrite (ledRosso,HIGH);
         break;
      case 10:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
     case 11:
         digitalWrite (ledRosso,HIGH);
         break;
     case 12:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);        
         digitalWrite (ledVerde,HIGH);
         break;
    case 13:
         digitalWrite (ledRosso,HIGH);
         break;
    case 14:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
    case 15:
         digitalWrite (ledRosso,HIGH);
         break;  
    case 16:
         i=0;
         break;  
   }
 
}