martedì 7 gennaio 2014

Vettore - Esercitazione su caricamento, visualizzazione e verifica pari-dispari-zero

Esercizio su Vettore con funzioni di caricamento casuale, utilizzo di direttiva MACRO, media dei numeri inseriti e conteggio di zero - pari e dispari nel vettore.

Codice:


#define dimensione 100 //direttiva MACRO
#include<stdio.h>
#include<stdlib.h>
#include<time.h>   //libreria per funzione random

float media(int v[], int dim);   //prototipo funzione per calcolare la media dei numeri inseriti nel vettore
int vettore[dimensione];   //dichiarazione vettore di interi di dimensioni pari alla direttiva "dimensione"
void Carica (int v[], int dim);   //prototipo funzione per caricare input interi utente nel vettore
float risMedia;   //dichiaraqzione variabile float
int zero(int v[], int dim);   //prototipo funzione per contare quanti sono i valori ZERO inseriti nel vettore
int risZero;   //variabile che intercetta risultato funzione zero
int pari(int v[], int dim);   //prototipo funzione per contare quanti sono i valori PARI inseriti nel vettore
int risPari;   //variabile che intercetta risultato funzione pari
int dispari(int v[], int dim);   //prototipo funzione per contare quanti sono i valori DISPARI inseriti nel vettore
int risDispari;   //variabile che intercetta risultato funzione dispari

int main()
{
srand(time(0));   //generazione del seme tramite orologio computer
printf("Esercitazione vettore\n");
Carica(vettore,dimensione);   //chiamata a procedura per caricare vettore in modo casuale - con passaggio parametri vettore e dimensione 
for(int i=0; i<dimensione; ++i)   //ciclo FOR per stampa vettore
printf("%d\t",vettore[i]);
risMedia=media(vettore,dimensione);   //chiamata funzione media con assegnazione risultato a variabile risMedia - con passaggio parametri vettore e dimensione
printf("\nLa media dei numeri caricati e': %.2f",risMedia);   //visualizzazione media
risZero=zero(vettore,dimensione);   //chiamata funzione zero con assegnazione risultato a variabile risZero - con passaggio parametri vettore e dimensione
risPari=pari(vettore,dimensione);   //chiamata funzione pari con assegnazione risultato a variabile risPari - con passaggio parametri vettore e dimensione
risDispari=dispari(vettore,dimensione);   //chiamata funzione dispari con assegnazione risultato a variabile risDispari - con passaggio parametri vettore e dimensione
printf("\nIl vettore contiene %d volte ZERO, %d numeri PARI e %d numeri DISPARI",risZero,risPari,risDispari);   //visualizzazione contatore Zero,Pari,Dispari
}

void Carica(int v[], int dim)   //procedura per caricare vettore - con passaggio parametri vettore e dimensione 
{
int i;   //indice per ciclo FOR
for(i=0;i<dim;++i)   //ciclo FOR per inserimento valori in vettore
{
v[i]=rand()%100;
}
}

float media(int v[],int dim)   //funzione per calcolare media dei numeri inseriti in vettore - con passaggio parametri vettore e dimensione 
{
int i;   //indice per ciclo FOR
float m=0;   //variavile locale per effettuare media
for(i=0;i<dim;++i)
{
m=m+v[i];   //somma ad m tutti i valori contenuti nel vettore
}
m=m/dim;   //divide m per la dimensione del vettore per calcolare media
return m;   //restituisce valore m
}

int zero(int v[],int dim)   //funzione per contare numeri zero inseriti in vettore - con passaggio parametri vettore e dimensione 
{
int i;   //indice per ciclo FOR
int zero=0;      //variavile locale per contatore 0
for(i=0;i<dim;i++)
{
if(v[i]==0)   //se il valore della cella del vettore e' zero
zero++;   //incrementa il contatore zero
}
return zero;   //restituisce valore contatore zero
}

int pari(int v[],int dim)   //funzione per contare numeri pari inseriti in vettore - con passaggio parametri vettore e dimensione 
{
int i;   //indice per ciclo FOR
int pari=0;    //variabile locale per contatore pari
for(i=0;i<dim;i++)
{
if(((v[i]%2)==0)&&(v[i]!=0))   //se il valore della cella del vettore e' divisibile per 2 ed anche diverso da 0
pari++;   //incrementa contatore pari
}
return pari;   //restituisce valore contatore pari
}

int dispari(int v[],int dim)   //funzione per contare dispari inseriti in vettore - con passaggio parametri vettore e dimensione 
{
int i;   //indice per ciclo FOR
int dispari=0;    //variabile locale per contatore dispari
for(i=0;i<dim;i++)
{
if((v[i]%2)!=0)   //se il valore della cella del vettore NON e' divisibile per 2  
dispari++;   //incrementa contatore dispari
}
return dispari;   //restituisce valore contatore dispari
}

Nessun commento:

Posta un commento