-> 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 righeMedia 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