mercoledì 22 gennaio 2014

Compiti per il 21/01/2014

Esercitazioni sulle matrici:
-> Caricamento
-> Visualizzazione
-> Conteggio pari dispari nulli
-> Implementazione con le tre strutture iterative
For
While
Do While
-> Media dei valori presenti nelle singole righe
Media dei valori presenti nelle singole colonne
Memorizzazione dei risultati in due array

Esercizio con l'utilizzo del costrutto FOR:

#define dim 5 //direttiva MACRO

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

int mat[dim][dim];
int i,j;
int pari=0;
int dispari=0;
int nullo=0;

int main()
{
srand(time(0));
for(i=0;i<dim;i++)
for(j=0;j<dim;j++)
mat[i][j]=rand()%100;

for(i=0;i<dim;i++)
for(j=0;j<dim;j++)
if(mat[i][j]==0)
nullo++;
else
if((mat[i][j]%2)==0)
pari++;
else
dispari++;
for(i=0;i<dim;i++)
{
printf("\n\n\n");
for(j=0;j<dim;j++)
printf("  %d\t",mat[i][j]);
}
printf("\n\nI numeri pari inseriti in matrice sono: %d",pari);
printf("\n\nI numeri dispari inseriti in matrice sono: %d",dispari);
printf("\n\nI numeri zero inseriti in matrice sono: %d",nullo);
}
_________________________________________________________________________________

Esercizio con l'utilizzo del costrutto WHILE

#define dim 5 //direttiva MACRO

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

int mat[dim][dim];
int i,j;
int pari=0;
int dispari=0;
int nullo=0;

int main()
{
srand(time(0));
i=0;
while(i<dim)
{
j=0;
while(j<dim)
{
mat[i][j]=rand()%100;
j++;
}
i++;
}

i=0;
while(i<dim)
{
j=0;
while(j<dim)
{
if(mat[i][j]==0)
nullo++;
else
if((mat[i][j]%2)==0)
pari++;
else
dispari++;
j++;
}
i++;
}


i=0;
while(i<dim)
{
printf("\n\n\n");
j=0;
while(j<dim)
 printf("%d\t",mat[i][j]);
 j++;
        }
    i++;
}

printf("\n\nI numeri pari inseriti in matrice sono: %d",pari);
printf("\n\nI numeri dispari inseriti in matrice sono: %d",dispari);
printf("\n\nI numeri zero inseriti in matrice sono: %d",nullo);
}
_________________________________________________________________________________

Esercizio con l'utilizzo del costrutto DO-WHILE:

#define dim 5 //direttiva MACRO

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

int mat[dim][dim];
int i,j;
int pari=0;
int dispari=0;
int nullo=0;

int main()
{
srand(time(0));
i=0;
do
{
j=0;
do
{
mat[i][j]=rand()%100;
j++;
}while(j<dim);
i++;
}while(i<dim);

i=0;
do
{
j=0;
do
{
if(mat[i][j]==0)
nullo++;
else
if((mat[i][j]%2)==0)
pari++;
else
dispari++;
j++;
}while(j<dim);
i++;
}while(i<dim);


i=0;
do
{
printf("\n\n\n");
j=0;
do
 printf("%d\t",mat[i][j]);
 j++;
        }while(j<dim);
         i++;
}while(i<dim);

printf("\n\nI numeri pari inseriti in matrice sono: %d",pari);
printf("\n\nI numeri dispari inseriti in matrice sono: %d",dispari);
printf("\n\nI numeri zero inseriti in matrice sono: %d",nullo);
}
_________________________________________________________________________________
Media dei valori presenti nelle singole righe
Media dei valori presenti nelle singole colonne
Memorizzazione dei risultati in due array

#define dim 5 //direttiva MACRO

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

int mat[dim][dim];   //dichiaro una matrice di interi sfruttando la direttiva MACRO per le dimensioni
int i,j;   //dichiaro gli indici per la matrice, che sfrutterò poi anche per il vettore
int pari=0;   //dichiaro variabile contatore numeri pari e la inizzializzo a 0
int dispari=0;   //dichiaro variabile contatore numeri dispari e la inizzializzo a 0
int nullo=0;   //dichiaro variabile contatore numeri nulli e la inizzializzo a 0
float media=0;   //dichiaro variabile di lavoro media di tipo float
float mediar[dim];   //dichiaro un vettore di tipo float che conterrà la media di ogni riga sfruttando la direttiva MACRO per le dimensioni
float mediac[dim];   //dichiaro un vettore di tipo float che conterrà la media di ogni colonna sfruttando la direttiva MACRO per le dimensioni

int main()
{
srand(time(0));  //genero il seme per la creazione di numeri casuale con funzione Random
for(i=0;i<dim;i++)   //cicli FOR (i e j) per caricare la matrice
for(j=0;j<dim;j++)
mat[i][j]=rand()%100;   //inserisco nella matrice un numero casuale da 0 a 100

for(i=0;i<dim;i++)   //cicli FOR (i e j) per verificare se gli elementi della matrice siano pari/dispari/nulli
for(j=0;j<dim;j++)
if(mat[i][j]==0)   //se l'elemento preso in esame è nullo incremento contatore nullo
nullo++;
else   //altrimenti
if((mat[i][j]%2)==0)      //se l'elemento preso in esame è pari incremento contatore pari
pari++;
else   //altrimenti incremento contatore dispari
dispari++;


for(i=0;i<dim;i++)   //cicli FOR (i e j) per effettuare la media di ogni riga della matrice
{                    //l'indice i indica gli elementi di ogni riga
for(j=0;j<dim;j++)   //l'indice j indica gli elementi di ogni colonna
media+=mat[i][j];   //somma alla variabile media il valore dell'elemento preso in esame
mediar[i]=media/dim;   //alla fine del ciclo FOR j divido il contenuto della variabile media per la direttiva MACRO, utilizzo l'indice i per spostarmi all'interno del vettore
media=0;   //alla fine di ogni riga inizzializzo la variabile media a 0
}


for(i=0;i<dim;i++)   //cicli FOR (i e j) per effettuare la visualizzazione della matrice
{
printf("\n\n\n");   //alla fine di ogni riga (ogni incremento di i) inserisco tre spazi a capo
for(j=0;j<dim;j++)
printf("  %d\t",mat[i][j]);   //visualizzo l'elemento i,j della matrice e inserisco un TAB
printf("%.2f",mediar[i]);   //alla fine di ogni visualizzazione dell'intera riga visualizzo il valore della media precedentemente calcolata e contenuta nel vettore mediar[] sfruttando l'indice i
}

printf("\n\n");   //inserisco due spazi a capo
for(j=0;j<dim;j++)   //cicli FOR (j e i) per effettuare la media di ogni colonna della matrice
{                    //l'indice j indica gli elementi di ogni colonna
for(i=0;i<dim;i++)   //l'indice i indica gli elementi di ogni riga
media+=mat[i][j];   //somma alla variabile media il valore dell'elemento preso in esame
mediac[j]=media/dim;   //alla fine del ciclo FOR i divido il contenuto della variabile media per la direttiva MACRO, utilizzo l'indice i per spostarmi all'interno del vettore
media=0;   //alla fine di ogni colonna inizzializzo la variabile media a 0
}

for(i=0;i<dim;i++)   //ciclo FOR per la stampa del vettore contenente i valori della media di ogni colonna
printf("%.2f\t",mediac[i]);   //visualizzo il valore della media precedentemente calcolata e contenuta nel vettore mediaC[] sfruttando l'indice i

printf("\n\nI numeri pari inseriti in matrice sono: %d",pari);   //visualizzo quanti numeri pari sono stati trovati all'interno della matrice
printf("\n\nI numeri dispari inseriti in matrice sono: %d",dispari);   //visualizzo quanti numeri dispari sono stati trovati all'interno della matrice
printf("\n\nI numeri zero inseriti in matrice sono: %d",nullo);   //visualizzo quanti numeri nulli sono stati trovati all'interno della matrice
}

Nessun commento:

Posta un commento