# 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|------|------|------| ");
}
}
Etichette
- Informatica 2014/2015 (27)
- informatica (19)
- Laboratorio Inf (15)
- Informatica 2015/2016 (3)
- Sistemi (3)
lunedì 27 gennaio 2014
mercoledì 22 gennaio 2014
Esercitazione in Laboratorio 21/01/2014
1) Caricamento e visualizzazione vettore, somma degli elementi del vettore e media degli elementi del vettore:
# define dimensione 10
# include <stdio.h>
int vett[dimensione];
int i;
int somma=0;
float media=0;
int main()
{
printf("Esercitazione 21/01/2014 senza funzioni\n\n");
for(i=0;i<dimensione;i++) //Caricamento vettore
vett[i]=i+10;
for(i=0;i<dimensione;i++) //Visualizzazione vettore
printf("%d\t",vett[i]);
for(i=0;i<dimensione;i++)
somma+=vett[i];
printf("\nLa somma degli elementi del vettore e': %d\n",somma);
for(i=0;i<dimensione;i++)
media+=vett[i];
media/=dimensione;
printf("\nLa media degli elementi del vettore e': %.2f\n",media);
}
_________________________________________________________________________________
2) Caricamento e visualizzazione vettore, somma degli elementi del vettore e media degli elementi del vettore con funzioni e procedure:
# define dimensione 10
# include <stdio.h>
int vett[dimensione];
int sum;
float med;
void caricamento(int v[],int dim);
void visualizza(int v[],int dim);
int somma(int v[],int dim);
float media(int v[],int dim);
int main()
{
printf("Esercizio 21/01/2014\n");
caricamento(vett,dimensione);
visualizza(vett,dimensione);
sum=somma(vett,dimensione);
printf("\n\nLa somma degli elementi del vettore e': %d",sum);
med=media(vett,dimensione);
printf("\n\nLa media degli elementi del vettore e': %.2f",med);
}
void caricamento(int v[],int dim)
{
int i;
for(i=0;i<dim;i++)
v[i]=i+10;
}
void visualizza(int v[],int dim)
{
int i;
printf("\n");
for(i=0;i<dim;i++)
printf("%d\t",v[i]);
}
int somma(int v[], int dim)
{
int i;
int sum=0;
for(i=0;i<dim;i++)
sum+=v[i];
return sum;
}
float media(int v[], int dim)
{
int i;
float media=0;
for(i=0;i<dim;i++)
media+=v[i];
media/=dim;
return media;
}
_________________________________________________________________________________
3) Caricamento e visualizzazione vettore, somma degli elementi del vettore, media degli elementi del vettore e visualizzazione inversa del vettore, con funzioni e procedure:
# define dimensione 10
# include <stdio.h>
int vett[dimensione];
int sum;
float med;
void caricamento(int v[],int dim);
void visualizza(int v[],int dim);
int somma(int v[],int dim);
float media(int v[],int dim);
void inverso(int v[],int dim);
int main()
{
printf("Esercizio 21/01/2014\n");
caricamento(vett,dimensione);
printf("Visualizzazione dell'array: \n");
visualizza(vett,dimensione);
sum=somma(vett,dimensione);
printf("\n\nLa somma degli elementi del vettore e': %d",sum);
med=media(vett,dimensione);
printf("\n\nLa media degli elementi del vettore e': %.2f\n\n",med);
printf("Visualizzazione dell'array in maniera inversa: \n");
inverso(vett,dimensione);
}
void caricamento(int v[],int dim)
{
int i;
for(i=0;i<dim;i++)
v[i]=i+10;
}
void visualizza(int v[],int dim)
{
int i;
printf("\n");
for(i=0;i<dim;i++)
printf("%d\t",v[i]);
}
int somma(int v[], int dim)
{
int i;
int sum=0;
for(i=0;i<dim;i++)
sum+=v[i];
return sum;
}
float media(int v[], int dim)
{
int i;
float media=0;
for(i=0;i<dim;i++)
media+=v[i];
media/=dim;
return media;
}
void inverso(int v[],int dim)
{
int i;
printf("\n");
for(i=dim-1;i>=0;i--)
printf("%d\t",v[i]);
}
_________________________________________________________________________________
4) Caricare una matrice e effettuare la somma di ogni colonna, i risultati dovranno essere memorizzati in un vettore:
# define dim 5
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int mat[dim][dim];
int i,j;
int vett[dim];
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++)
{
printf("\n\n\n");
for(j=0;j<dim;j++)
printf("%d\t",mat[i][j]);
}
for(j=0;j<dim;j++)
for(i=0;i<dim;i++)
vett[j]+=mat[i][j];
printf("\n\nSomma delle colonne della matrice:\n\n");
for(i=0;i<dim;i++)
printf("%d\t",vett[i]);
}
# define dimensione 10
# include <stdio.h>
int vett[dimensione];
int i;
int somma=0;
float media=0;
int main()
{
printf("Esercitazione 21/01/2014 senza funzioni\n\n");
for(i=0;i<dimensione;i++) //Caricamento vettore
vett[i]=i+10;
for(i=0;i<dimensione;i++) //Visualizzazione vettore
printf("%d\t",vett[i]);
for(i=0;i<dimensione;i++)
somma+=vett[i];
printf("\nLa somma degli elementi del vettore e': %d\n",somma);
for(i=0;i<dimensione;i++)
media+=vett[i];
media/=dimensione;
printf("\nLa media degli elementi del vettore e': %.2f\n",media);
}
_________________________________________________________________________________
2) Caricamento e visualizzazione vettore, somma degli elementi del vettore e media degli elementi del vettore con funzioni e procedure:
# define dimensione 10
# include <stdio.h>
int vett[dimensione];
int sum;
float med;
void caricamento(int v[],int dim);
void visualizza(int v[],int dim);
int somma(int v[],int dim);
float media(int v[],int dim);
int main()
{
printf("Esercizio 21/01/2014\n");
caricamento(vett,dimensione);
visualizza(vett,dimensione);
sum=somma(vett,dimensione);
printf("\n\nLa somma degli elementi del vettore e': %d",sum);
med=media(vett,dimensione);
printf("\n\nLa media degli elementi del vettore e': %.2f",med);
}
void caricamento(int v[],int dim)
{
int i;
for(i=0;i<dim;i++)
v[i]=i+10;
}
void visualizza(int v[],int dim)
{
int i;
printf("\n");
for(i=0;i<dim;i++)
printf("%d\t",v[i]);
}
int somma(int v[], int dim)
{
int i;
int sum=0;
for(i=0;i<dim;i++)
sum+=v[i];
return sum;
}
float media(int v[], int dim)
{
int i;
float media=0;
for(i=0;i<dim;i++)
media+=v[i];
media/=dim;
return media;
}
_________________________________________________________________________________
3) Caricamento e visualizzazione vettore, somma degli elementi del vettore, media degli elementi del vettore e visualizzazione inversa del vettore, con funzioni e procedure:
# define dimensione 10
# include <stdio.h>
int vett[dimensione];
int sum;
float med;
void caricamento(int v[],int dim);
void visualizza(int v[],int dim);
int somma(int v[],int dim);
float media(int v[],int dim);
void inverso(int v[],int dim);
int main()
{
printf("Esercizio 21/01/2014\n");
caricamento(vett,dimensione);
printf("Visualizzazione dell'array: \n");
visualizza(vett,dimensione);
sum=somma(vett,dimensione);
printf("\n\nLa somma degli elementi del vettore e': %d",sum);
med=media(vett,dimensione);
printf("\n\nLa media degli elementi del vettore e': %.2f\n\n",med);
printf("Visualizzazione dell'array in maniera inversa: \n");
inverso(vett,dimensione);
}
void caricamento(int v[],int dim)
{
int i;
for(i=0;i<dim;i++)
v[i]=i+10;
}
void visualizza(int v[],int dim)
{
int i;
printf("\n");
for(i=0;i<dim;i++)
printf("%d\t",v[i]);
}
int somma(int v[], int dim)
{
int i;
int sum=0;
for(i=0;i<dim;i++)
sum+=v[i];
return sum;
}
float media(int v[], int dim)
{
int i;
float media=0;
for(i=0;i<dim;i++)
media+=v[i];
media/=dim;
return media;
}
void inverso(int v[],int dim)
{
int i;
printf("\n");
for(i=dim-1;i>=0;i--)
printf("%d\t",v[i]);
}
_________________________________________________________________________________
4) Caricare una matrice e effettuare la somma di ogni colonna, i risultati dovranno essere memorizzati in un vettore:
# define dim 5
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int mat[dim][dim];
int i,j;
int vett[dim];
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++)
{
printf("\n\n\n");
for(j=0;j<dim;j++)
printf("%d\t",mat[i][j]);
}
for(j=0;j<dim;j++)
for(i=0;i<dim;i++)
vett[j]+=mat[i][j];
printf("\n\nSomma delle colonne della matrice:\n\n");
for(i=0;i<dim;i++)
printf("%d\t",vett[i]);
}
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
Media dei valori presenti nelle singole colonne
Memorizzazione dei risultati in due array
-> 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
}
Esercitazione Laboratorio 14/01/2014
Esercitazione in laboratorio su calcolo sommatorie, programma svolto con e senza funzioni:
#define dim 11 //direttiva MACRO
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
int primo[dim];
int secondo[dim];
int i;
void caricamento(int d);
void stampa(int d);
int sommatoria1(int d);
int sommatoria2(int d);
int sommatoria3(int d);
int somma=0;
int k=3;
int main()
{
srand(time(0));
printf("Esercitazione 14/01/2014\n\n");
caricamento(dim);
stampa(dim);
somma=sommatoria1(dim);
printf("\n\tSommatoria (Ai*Bi): %d",somma);
somma=sommatoria2(dim);
printf("\n\tSommatoria (Ai*K)^i-1: %d",somma);
somma=sommatoria3(dim);
printf("\n\tSommatoria (Ai*K^i): %d",somma);
}
void caricamento(int d)
{
for(i=0;i<d;i++)
{
primo[i]=rand()%10;
secondo[i]=rand()%10;
}
}
void stampa(int d)
{
for(i=0;i<d;i++)
{
printf("PRIMO %d pos. %d\n\n",primo[i],i);
printf("SECONDO %d pos. %d\n\n",secondo[i],i);
}
}
int sommatoria1 (int d)
{
int somma=0;
for(i=1;i<d;i++)
somma+=(primo[i]*secondo[i]);
return somma;
}
int sommatoria2 (int d)
{
int somma=0;
for(i=1;i<d;i++)
somma+=pow((primo[i]*k),(i-1));
return somma;
}
int sommatoria3 (int d)
{
int somma=0;
int esp=0;
for(i=1;i<d;i++)
{
esp=pow(k,i);
somma+=(primo[i]*esp);
}
return somma;
}
#define dim 11 //direttiva MACRO
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
int primo[dim];
int secondo[dim];
int i;
void caricamento(int d);
void stampa(int d);
int sommatoria1(int d);
int sommatoria2(int d);
int sommatoria3(int d);
int somma=0;
int k=3;
int main()
{
srand(time(0));
printf("Esercitazione 14/01/2014\n\n");
caricamento(dim);
stampa(dim);
somma=sommatoria1(dim);
printf("\n\tSommatoria (Ai*Bi): %d",somma);
somma=sommatoria2(dim);
printf("\n\tSommatoria (Ai*K)^i-1: %d",somma);
somma=sommatoria3(dim);
printf("\n\tSommatoria (Ai*K^i): %d",somma);
}
void caricamento(int d)
{
for(i=0;i<d;i++)
{
primo[i]=rand()%10;
secondo[i]=rand()%10;
}
}
void stampa(int d)
{
for(i=0;i<d;i++)
{
printf("PRIMO %d pos. %d\n\n",primo[i],i);
printf("SECONDO %d pos. %d\n\n",secondo[i],i);
}
}
int sommatoria1 (int d)
{
int somma=0;
for(i=1;i<d;i++)
somma+=(primo[i]*secondo[i]);
return somma;
}
int sommatoria2 (int d)
{
int somma=0;
for(i=1;i<d;i++)
somma+=pow((primo[i]*k),(i-1));
return somma;
}
int sommatoria3 (int d)
{
int somma=0;
int esp=0;
for(i=1;i<d;i++)
{
esp=pow(k,i);
somma+=(primo[i]*esp);
}
return somma;
}
_________________________________________________________________________________
#define dim 3 //direttiva MACRO
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
int primo[dim];
int secondo[dim];
int i;
int somma=0;
int k=3;
int esp;
int main()
{
srand(time(0));
printf("Esercitazione 14/01/2014\n\n");
for(i=0;i<dim;i++)
{
primo[i]=rand()%10;
secondo[i]=rand()%10;
}
for(i=0;i<dim;i++)
{
printf("PRIMO %d pos. %d\n\n",primo[i],i);
printf("SECONDO %d pos. %d\n\n",secondo[i],i);
}
for(i=1;i<dim;i++)
somma+=(primo[i]*secondo[i]);
printf("\n\tSommatoria (Ai*Bi): %d",somma);
somma=0;
for(i=1;i<dim;i++)
somma+=pow((primo[i]*k),(i-1));
printf("\n\tSommatoria (Ai*K)^i-1: %d",somma);
somma=0;
for(i=1;i<dim;i++)
somma+=pow((primo[i]*k),(i-1));
printf("\n\tSommatoria (Ai*K)^i-1: %d",somma);
somma=0;
for(i=1;i<dim;i++){
esp=0;
esp=pow(k,i);
somma+=(primo[i]*esp);
}
printf("\n\tSommatoria (Ai*K^i): %d",somma);
}
Correzione Verifica del 10/01/2014
A) Caricare un Vettore di 10 elementi interi, utilizzando la funzione rand. I valori devono essere
compresi tra 20 e 50. ( 3 - punti)
B) Visualizzare i valori presenti nelle posizioni pari. ( 1- punto)
C) Modificare i valori presenti nelle posizioni dispari incrementando li di 1 e di 3 in maniera alternata
# include<stdio.h>
# include <stdlib.h>
# include<time.h>
int vettore[10];
int i;
int valore;
int alternato=0;
int main()
{
srand(time(0)); //genero il seme
printf("\tVerifica Informatica 13/01/2014\n");
for(i=0;i<10;i++) //ciclo per il caricamento del vettore
{
valore=rand()%51; //genera numeri casuali tra 0 e 50
if(valore>20) //controllo sul valore generato casualmente, se maggiore di 20 lo inserisco nel vettore
vettore[i]=valore;
else //altrimenti decremento l'indice i così da ripetere l'inserimento dello stesso elemento nel vettore
i--;
}
printf("\nI valori caricati nel vettore sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
printf("%d nella posizione %d\n",vettore[i],i);
printf("\nI valori presenti nele posizioni pari del vettore sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
{
if((i%2)==0) //se l'indice e' pari allora visualizzo l'elemento
printf("%d nella posizione %d\n",vettore[i],i);
}
for(i=0;i<10;i++) //ciclo for per l'incremento alternato degli elementi dispari di +1 e +3
{
if((i%2)!=0) //se l'indice e' dispari
if(alternato==0) //e la variabile di lavoro alternato è pari a 0
{
vettore[i]+=1; //incremento il valore dell'elemento del vettore di +1
alternato++; //e la variabile di lavoro alternato di +1
}
else //altrimenti se la variabile di lavoro alternato non è a 0
{
vettore[i]+=3; //incremento il valore dell'elemento del vettore di +3
alternato--; //e decremento la variabile lavoro di -1
}
}
printf("\nI valori nel vettore dopo l'incremento degli elementi dispari sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
printf("%d nella posizione %d\n",vettore[i],i);
}
_________________________________________________________________________________
A) Modificare il punto1 dell'esercizio precedente cercando da tastiera i valori e rispettando il vincolo
che questi siano compresi tra 20 e 50 ( 2-punti)
Svolgere i punti B e C del precedente esercizio
compresi tra 20 e 50. ( 3 - punti)
B) Visualizzare i valori presenti nelle posizioni pari. ( 1- punto)
C) Modificare i valori presenti nelle posizioni dispari incrementando li di 1 e di 3 in maniera alternata
# include<stdio.h>
# include <stdlib.h>
# include<time.h>
int vettore[10];
int i;
int valore;
int alternato=0;
int main()
{
srand(time(0)); //genero il seme
printf("\tVerifica Informatica 13/01/2014\n");
for(i=0;i<10;i++) //ciclo per il caricamento del vettore
{
valore=rand()%51; //genera numeri casuali tra 0 e 50
if(valore>20) //controllo sul valore generato casualmente, se maggiore di 20 lo inserisco nel vettore
vettore[i]=valore;
else //altrimenti decremento l'indice i così da ripetere l'inserimento dello stesso elemento nel vettore
i--;
}
printf("\nI valori caricati nel vettore sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
printf("%d nella posizione %d\n",vettore[i],i);
printf("\nI valori presenti nele posizioni pari del vettore sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
{
if((i%2)==0) //se l'indice e' pari allora visualizzo l'elemento
printf("%d nella posizione %d\n",vettore[i],i);
}
for(i=0;i<10;i++) //ciclo for per l'incremento alternato degli elementi dispari di +1 e +3
{
if((i%2)!=0) //se l'indice e' dispari
if(alternato==0) //e la variabile di lavoro alternato è pari a 0
{
vettore[i]+=1; //incremento il valore dell'elemento del vettore di +1
alternato++; //e la variabile di lavoro alternato di +1
}
else //altrimenti se la variabile di lavoro alternato non è a 0
{
vettore[i]+=3; //incremento il valore dell'elemento del vettore di +3
alternato--; //e decremento la variabile lavoro di -1
}
}
printf("\nI valori nel vettore dopo l'incremento degli elementi dispari sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
printf("%d nella posizione %d\n",vettore[i],i);
}
_________________________________________________________________________________
A) Modificare il punto1 dell'esercizio precedente cercando da tastiera i valori e rispettando il vincolo
che questi siano compresi tra 20 e 50 ( 2-punti)
Svolgere i punti B e C del precedente esercizio
# include<stdio.h>
# include <stdlib.h>
# include<time.h>
int vettore[10];
int i;
int valore;
int alternato=0;
int main()
{
srand(time(0)); //genero il seme
printf("\tVerifica Informatica 13/01/2014\n");
for(i=0;i<10;i++) //ciclo per il caricamento del vettore
{
printf("%d Inserire un valore tra 20 e 50: ",i);
scanf("%d",&valore); //Input da utente dell'elemento
if((valore>20)&&(valore<50)) //controllo sul valore inserito, se maggiore di 20 e minore di 50 lo inserisco nel vettore
vettore[i]=valore;
else //altrimenti decremento l'indice i così da ripetere l'inserimento dello stesso elemento nel vettore
i--;
}
printf("\nI valori caricati nel vettore sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
printf("%d nella posizione %d\n",vettore[i],i);
printf("\nI valori presenti nele posizioni pari del vettore sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
{
if((i%2)==0) //se l'indice e' pari allora visualizzo l'elemento
printf("%d nella posizione %d\n",vettore[i],i);
}
for(i=0;i<10;i++) //ciclo for per l'incremento alternato degli elementi dispari di +1 e +3
{
if((i%2)!=0) //se l'indice e' dispari
if(alternato==0) //e la variabile di lavoro alternato è pari a 0
{
vettore[i]+=1; //incremento il valore dell'elemento del vettore di +1
alternato++; //e la variabile di lavoro alternato di +1
}
else //altrimenti se la variabile di lavoro alternato non è a 0
{
vettore[i]+=3; //incremento il valore dell'elemento del vettore di +3
alternato--; //e decremento la variabile lavoro di -1
}
}
printf("\nI valori nel vettore dopo l'incremento degli elementi dispari sono: \n");
for(i=0;i<10;i++) //ciclo for per visualizzare valori contenuti nel vettore
printf("%d nella posizione %d\n",vettore[i],i);
}
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
}
Calcolatrice per Frazioni - Correzio Verifica
Scrivere un programma che, inseriti dall'utente due frazioni ne esegua somma,sottrazione, moltiplicazione e divisione. L'utente dovrà avere la possibilità di scegliere che tipo di operazione effettuare sui dati inseriti tramite un menù.
Si richiede di utilizzare procedure e funzioni per risolvere l'esercizio.
int numeratoreA;
int denominatoreA;
int numeratoreB;
int denominatoreB;
int menu;
int numeratore;
int denominatore;
int SommaNum (int a, int b, int c, int d);
int SommaDen (int a, int b, int c, int d);
int SottrazioneNum (int a, int b, int c, int d);
int SottrazioneDen (int a, int b, int c, int d);
int MoltiplicazioneNum (int a, int b, int c, int d);
int MoltiplicazioneDen (int a, int b, int c, int d);
int DivisioneNum (int a, int b, int c, int d);
int DivisioneDen (int a, int b, int c, int d);
int main()
{
printf("\tCalcolatrice tra Frazioni");
do{
printf("\n\nMENU: quale operazione vuoi effettuare?");
printf("\n1) Somma\n2) Sottrazione\n3) Moltiplicazione\n4) Divisione\n5) Esci\n");
scanf("%d",&menu);
if((menu>0)&&(menu<5))
{
printf("Inserisci il NUMERATORE della PRIMA frazione");
scanf("%d",&numeratoreA);
do
{
printf("Inserisci il DENOMINATORE della PRIMA frazione");
scanf("%d",&denominatoreA);
if(denominatoreA==0)
printf("\n\n\tIl valore denominatore non puo' essere uguale a 0\n\n");
}while(denominatoreA==0);
printf("Inserisci il NUMERATORE della SECONDA frazione");
scanf("%d",&numeratoreB);
do
{
printf("Inserisci il DENOMINATORE della SECONDA frazione");
scanf("%d",&denominatoreB);
if(denominatoreB==0)
printf("\n\n\tIl valore denominatore non puo' essere uguale a 0\n\n");
}while(denominatoreB==0);
}
switch(menu)
{
case 1: numeratore=SommaNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=SommaDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato dell'addizione e': %d / %d ",numeratore,denominatore);
break;
case 2: numeratore=SottrazioneNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=SottrazioneDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato della sottrazione e': %d / %d ",numeratore,denominatore);
break;
case 3: numeratore=MoltiplicazioneNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=MoltiplicazioneDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato della moltiplicazione e': %d / %d ",numeratore,denominatore);
break;
case 4: numeratore=DivisioneNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=DivisioneDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato della moltiplicazione e': %d / %d ",numeratore,denominatore);
break;
case 5: printf("Fine");
break;
default: printf("\tInserire un numero tra 1 e 5\n");
}
}while(menu!=5);
}
int SommaNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=((a*d)+(b*c));
return numeratore;
}
int SommaDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*d);
return denominatore;
}
int SottrazioneNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=((a*d)-(b*c));
return numeratore;
}
int SottrazioneDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*d);
return denominatore;
}
int MoltiplicazioneNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=(a*c);
return numeratore;
}
int MoltiplicazioneDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*d);
return denominatore;
}
int DivisioneNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=(a*d);
return numeratore;
}
int DivisioneDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*c);
return denominatore;
}
Si richiede di utilizzare procedure e funzioni per risolvere l'esercizio.
Formula per Somma tra Frazioni: ((a*d)+(b*c))/(b*d)
Formula per Sottrazione tra Frazioni: ((a*d)-(b*c))/(b*d)
Formula per Moltiplicazione tra Frazioni: (a*c)/(b*d)
Formula per Divisione tra Frazioni: (a*d)/(b*c)
Diagramma di flusso in Algobuild:
Codice in C++ :
# include <stdio.h>
int numeratoreA;
int denominatoreA;
int numeratoreB;
int denominatoreB;
int menu;
int numeratore;
int denominatore;
int SommaNum (int a, int b, int c, int d);
int SommaDen (int a, int b, int c, int d);
int SottrazioneNum (int a, int b, int c, int d);
int SottrazioneDen (int a, int b, int c, int d);
int MoltiplicazioneNum (int a, int b, int c, int d);
int MoltiplicazioneDen (int a, int b, int c, int d);
int DivisioneNum (int a, int b, int c, int d);
int DivisioneDen (int a, int b, int c, int d);
int main()
{
printf("\tCalcolatrice tra Frazioni");
do{
printf("\n\nMENU: quale operazione vuoi effettuare?");
printf("\n1) Somma\n2) Sottrazione\n3) Moltiplicazione\n4) Divisione\n5) Esci\n");
scanf("%d",&menu);
if((menu>0)&&(menu<5))
{
printf("Inserisci il NUMERATORE della PRIMA frazione");
scanf("%d",&numeratoreA);
do
{
printf("Inserisci il DENOMINATORE della PRIMA frazione");
scanf("%d",&denominatoreA);
if(denominatoreA==0)
printf("\n\n\tIl valore denominatore non puo' essere uguale a 0\n\n");
}while(denominatoreA==0);
printf("Inserisci il NUMERATORE della SECONDA frazione");
scanf("%d",&numeratoreB);
do
{
printf("Inserisci il DENOMINATORE della SECONDA frazione");
scanf("%d",&denominatoreB);
if(denominatoreB==0)
printf("\n\n\tIl valore denominatore non puo' essere uguale a 0\n\n");
}while(denominatoreB==0);
}
switch(menu)
{
case 1: numeratore=SommaNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=SommaDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato dell'addizione e': %d / %d ",numeratore,denominatore);
break;
case 2: numeratore=SottrazioneNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=SottrazioneDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato della sottrazione e': %d / %d ",numeratore,denominatore);
break;
case 3: numeratore=MoltiplicazioneNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=MoltiplicazioneDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato della moltiplicazione e': %d / %d ",numeratore,denominatore);
break;
case 4: numeratore=DivisioneNum(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
denominatore=DivisioneDen(numeratoreA, denominatoreA, numeratoreB, denominatoreB);
printf("Il risultato della moltiplicazione e': %d / %d ",numeratore,denominatore);
break;
case 5: printf("Fine");
break;
default: printf("\tInserire un numero tra 1 e 5\n");
}
}while(menu!=5);
}
int SommaNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=((a*d)+(b*c));
return numeratore;
}
int SommaDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*d);
return denominatore;
}
int SottrazioneNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=((a*d)-(b*c));
return numeratore;
}
int SottrazioneDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*d);
return denominatore;
}
int MoltiplicazioneNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=(a*c);
return numeratore;
}
int MoltiplicazioneDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*d);
return denominatore;
}
int DivisioneNum(int a, int b, int c, int d)
{
int numeratore;
numeratore=(a*d);
return numeratore;
}
int DivisioneDen(int a, int b, int c, int d)
{
int denominatore;
denominatore=(b*c);
return denominatore;
}
Descrizione e scopo delle variabili utilizzate:
numeratoreA - INPUT: viene salvato il valore inserito
dall’utente come numeratore della prima frazione.
denominatoreA – INPUT: viene salvato il valore inserito
dall’utente come denominatore della prima frazione.
numeratoreB - INPUT: viene salvato il valore inserito
dall’utente come numeratore della seconda frazione.
denominatoreB – INPUT: viene salvato il valore inserito
dall’utente come denominatore della seconda frazione.
Menu – INPUT: viene salvato il valore inserito dall’utente
per la scelta dell’operazione da eseguire sulle frazioni.
numeratore – OUTPUT: variabile che intercetta il risultato
della funzione SommaNum e viene utilizzato per visualizzare il numeratore risultato
della somma tra due frazioni.
denominatore – OUTPUT: variabile che intercetta il risultato
della funzione SommaDen e viene utilizzato per visualizzare il denominatore
risultato della somma tra due frazioni.
A – LAVORO: variabile che con passaggio di parametro assume
il valore numeratoreA all’interno della relativa funzione di Somma,
Sottrazione, Moltiplicazione, Divisione.
B – LAVORO: variabile che con passaggio di parametro assume
il valore denominatoreA all’interno della relativa funzione di Somma,
Sottrazione, Moltiplicazione, Divisione.
C – LAVORO: variabile che con passaggio di parametro assume
il valore numeratoreB all’interno della relativa funzione di Somma,
Sottrazione, Moltiplicazione, Divisione.
D – LAVORO: variabile che con passaggio di parametro assume
il valore denominatoreB all’interno della relativa funzione di Somma,
Sottrazione, Moltiplicazione, Divisione.
Numeratore (locale) – LAVORO: variabile locale all’interno
delle funzioni di SommaNum, SottrazioneNum, MoltiplicazioneNum, DivisioneNum.
Denominatore (locale) – LAVORO: variabile locale all’interno
delle funzioni di SommaDen, SottrazioneDen, MoltiplicazioneDen, DivisioneDen.
Iscriviti a:
Post (Atom)