lunedì 27 gennaio 2014

Calcolo combinatorio

# include <stdio.h>

int vett[4]={1,2,3,4};
int i,j,h,x;
void stampa(int v[],int dim);

int main()
{
 for(h=0;h<4;h++)
{
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
x=vett[2];   //inserisco valore vett[2] in variabile di appoggio
vett[2]=vett[3];   //inserisco valore vett[3] in vett[2]
vett[3]=x;   //inserisco valore salvato in x in vett[3]
stampa(vett,4);   //chiamata alla procedura di stampa con passaggio parametri vettore e dimensione per visualizzare vettore con combinazioni modificate in ciclo FOR
}
x=vett[2];   //rieseguo nuovamente l'operazione di scambio del ciclo FOR j per riposizionare il vettore alla situazione di scambio
vett[2]=vett[3];
vett[3]=x;

x=vett[1];   //inserisco valore vett[1] in variabile di appoggio
vett[1]=vett[2];   //inserisco valore vett[1] in vett[2]
vett[2]=x;   //inserisco valore salvato in x in vett[2]
}
x=vett[2];   //rieseguo nuovamente l'operazione di scambio del ciclo FOR j per riposizionare il vettore alla situazione di scambio
vett[2]=vett[3];
vett[3]=x;

x=vett[1];   //rieseguo nuovamente l'operazione di scambio del ciclo FOR i per riposizionare il vettore alla situazione di scambio
vett[1]=vett[2];
vett[2]=x;

x=vett[0];   //inserisco valore vett[1] in variabile di appoggio
vett[0]=vett[1];   //inserisco valore vett[1] in vett[2]
vett[1]=x;   //inserisco valore salvato in x in vett[2]
}
}

void stampa(int v[],int dim)   //procedura di stampa con passaggio parametri vettore e dimensione (4)
{
int y;   //dichiaro indice per ciclo FOR
for(y=0;y<dim;y++)   //eseguo ciclo FOR per visualizzare contenuto vettore
{
printf("%d\t",v[y]);   //stampa + TAB per posizioni vettore 
}
printf("\n\n");   //spaziatura a capo
}

Passaggio matrice nei parametri funzione carica e procedura stampa

# include <stdio.h>   //libreria

int matrice[3][3];   //dichiarazione matrice a due dimensioni 3x3
int i,j;   //indici per utilizzo matrice
int carica(int mat[][3], int dim);   //prototipo funzione carica con passaggio parametri matrice(con dimensione colonne) e dim per cicli FOR
void stampa(int mat[][3], int dim);   //prototipo procedura stampa con passaggio parametri matrice(con dimensione colonne) e dim per cicli FOR


int main()
{
    printf("\tMatrice con passaggio di parametri e grafica tabella\n");
    carica(matrice,3);   //chiamata alla funzione carica con passaggio parametri matrice e 3 per dim
    stampa(matrice,3);   //chiamata allaprocedura stampa con passaggio parametri matrice e 3 per dim
}

int carica(int mat[][3], int dim)   //definizione funzione carica con passaggio parametri matrice (con dimensione colonne) e dim per cicli FOR
{
for(i=0;i<dim;i++)
              for(j=0;j<dim;j++)
                   {
                   printf("\nInserisci il valore della riga %d e colonna %d:  ",i,j);
                   scanf("%d",&matrice[i][j]);
                   }
}

void stampa(int mat[][3], int dim)   //definizione procedura stampa con passaggio parametri matrice (con dimensione colonne) e dim per cicli FOR
{
        printf("\n\n|------|------|------|");
for(i=0;i<3;i++)
         {
          printf("\n\n|");             
       

              for(j=0;j<3;j++)
                   printf("  %d   |",matrice[i][j]);
                   printf("\n\n|------|------|------| ");
         }
}