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