Informatica 2 Liceo Scientifico Scienze Applicate/esercizi1 funzioni: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 1: | Riga 1: | ||
{{Informatica 2 Liceo Scientifico Scienze Applicate}} |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
=== area di un trapezio === |
|||
<source lang=c> |
|||
#include <cstdlib> |
#include <cstdlib> |
||
#include <iostream> |
#include <iostream> |
||
Riga 42: | Riga 45: | ||
*area=(baseminore+basemaggiore)*altezza/2; |
*area=(baseminore+basemaggiore)*altezza/2; |
||
} |
} |
||
</source > |
|||
Esercizio n.2 |
Esercizio n.2 |
||
Scrivi una funzione void per calcolare l'area di un rettangolo |
Scrivi una funzione void per calcolare |
||
=== l'area di un rettangolo === |
|||
<source lang=c> |
|||
#include <cstdlib> |
#include <cstdlib> |
||
#include <iostream> |
#include <iostream> |
||
Riga 78: | Riga 82: | ||
*area=lato*altezza; |
*area=lato*altezza; |
||
} |
} |
||
</source > |
|||
Esercizio n.3 |
Esercizio n.3 |
||
Calcolo del max e della posizione del massimo d un vettore generico |
Calcolo del |
||
=== max e della posizione del massimo d un vettore generico === |
|||
<source lang=c> |
|||
#include <cstdlib> |
#include <cstdlib> |
||
#include <iostream> |
#include <iostream> |
||
Riga 129: | Riga 134: | ||
*p=b; |
*p=b; |
||
} |
} |
||
</source > |
|||
Esercizio n.4 |
Esercizio n.4 |
||
Calcolo del max di un vettore generico passato tramite puntatore |
Calcolo del |
||
=== max di un vettore generico passato tramite puntatore === |
|||
<source lang=c> |
|||
#include <cstdlib> |
#include <cstdlib> |
||
#include <iostream> |
#include <iostream> |
||
Riga 175: | Riga 181: | ||
} |
} |
||
</source > |
|||
Esercizio n.5 |
Esercizio n.5 |
||
calcolo del doppio di un numero tramite funzione void e tramite funzione non void |
calcolo del |
||
=== doppio di un numero tramite funzione void e tramite funzione non void === |
|||
<source lang=c> |
|||
include <cstdlib> |
include <cstdlib> |
||
#include <iostream> |
#include <iostream> |
||
Riga 229: | Riga 236: | ||
{ return 2*a; |
{ return 2*a; |
||
} |
} |
||
</source > |
|||
Esercizio n.6 |
Esercizio n.6 |
||
Risolvere una equazione di 2^ grado tramite una funzione |
Risolvere una |
||
=== equazione di 2^ grado === |
|||
tramite una funzione |
|||
<source lang=c> |
|||
#include <cstdlib> |
#include <cstdlib> |
||
Riga 286: | Riga 295: | ||
return EXIT_SUCCESS; |
return EXIT_SUCCESS; |
||
} |
} |
||
</source > |
|||
[[Categoria:Informatica 2 Liceo Scientifico Scienze Applicate|esercizi1 funzioni]] |
[[Categoria:Informatica 2 Liceo Scientifico Scienze Applicate|esercizi1 funzioni]] |
||
{{Avanzamento|100%|4 marzo 2015}} |
Versione delle 18:51, 4 mar 2015
Esercizio n.1 Scrivi una funzione void per il calcolo dell'
area di un trapezio
#include <cstdlib>
#include <iostream>
using namespace std;
//questo e' il prototipo della funzione
void areatrapezio (int baseminore, int basemaggiore, int altezza, int *area);
int main(int argc, char *argv[])
{
int a,b,c,d,e,f,g,h;
cout<<"inserisci la base minore";
cin>>a;
cout<<"inserisci la base maggiore";
cin>>b;
cout<<"inserisci l'altezza";
cin>>c;
areatrapezio (a,b,c,&d);// 1 chiamata alla funzione
cout<<"l'area vale "<<d <<endl;
cout<<"inserisci la base minore";
cin>>e;
cout<<"inserisci la base maggiore";
cin>>f;
cout<<"inserisci l'altezza";
cin>>g;
areatrapezio (e,f,g,&h);// 2 chiamata alla funzione
cout<<"l'area vale "<<h<<endl;
system ("PAUSE");
return 0;
}
// questa e' la dichiarazione della funzione
void areatrapezio (int baseminore, int basemaggiore, int altezza, int *area)
{
*area=(baseminore+basemaggiore)*altezza/2;
}
Esercizio n.2
Scrivi una funzione void per calcolare
l'area di un rettangolo
#include <cstdlib>
#include <iostream>
using namespace std;
/* calcolo area rettangolo utilizzando le funzioni void
obiettivo uso funzioni void restituzione valori
*/
void arearettangolo(float lato, float altezza, float *area);
int main(int argc, char *argv[])
{
float lato, altezza,a;
cout<<"inserire il lato ";
cin>>lato;
cout<<"inserire l'altezza ";
cin>>altezza;
arearettangolo(lato,altezza,&a);
cout<<"l'area del rettangolo è: "<<a<<endl;
system("PAUSE");
return 0;
}
void arearettangolo(float lato, float altezza, float *area)
{
*area=lato*altezza;
}
Esercizio n.3 Calcolo del
max e della posizione del massimo d un vettore generico
#include <cstdlib>
#include <iostream>
using namespace std;
void mia(int v[],int n,int *m,int *p);
int main(int argc, char *argv[])
{ int i;
int vett[3]={3,8,9};
cout<<"il vettore1 contiene ";
for(i=0;i<3;i++) cout<<vett[i]<<",";
cout<<endl;
int max,posmax;
mia(vett,3,&max,&posmax);
cout<<" Il valore max e':"<<max<<endl;
cout<<" La posizione del max e':"<<posmax<<endl;
int vett2[7]={7,3,6,1,2,8,0} ;
cout<<"il vettore2 contiene ";
for(i=0;i<7;i++) cout<<vett2[i]<<",";
cout<<endl;
int max2,posmax2;
mia(vett2,7,&max2,&posmax2);
cout<<" Il valore max e':"<<max2<<endl;
cout<<" La posizione del max e':"<<posmax2<<endl;
system("PAUSE");
return 0;
}
void mia(int v[],int n,int *m,int *p)
{
int a;
int b;
int i;
a=v[0];
b=0;
for(i=1;i<n;i++)
if(v[i]>a)
{
a=v[i];
b=i;
}
*m=a;
*p=b;
}
Esercizio n.4 Calcolo del
max di un vettore generico passato tramite puntatore
#include <cstdlib>
#include <iostream>
using namespace std;
/* trovare il max di un vettore
il vettore è passato per indirizzo con sintassi dei puntatori int *vett
invece di passarlo per indirizzo con sintassi dei vettori int vett[]
*/
void maxvettore (int *vett, int n, int *massimo);
int main(int argc, char *argv[])
{
int ne ;
cout<<"inserisci numero elementi vettore? ";
cin>>ne;
int altezze[ne];
int i;
for(i=0;i<ne;i++)
{ cout<<"inserisci l'elemento di posizione "<< i <<" ?";
cin>>altezze[i];
}
int soluzione;
maxvettore(altezze,ne,&soluzione);
cout<<"il max vale "<<soluzione <<endl;
system ("PAUSE");
return 0;
}
void maxvettore (int *vett, int n, int *massimo)
{ int i;
*massimo= *(vett+0);
for(i=0;i<n;i++)
if ( *(vett+i) > *massimo )
*massimo = *(vett+i);
}
Esercizio n.5 calcolo del
doppio di un numero tramite funzione void e tramite funzione non void
include <cstdlib>
#include <iostream>
using namespace std;
/*scrivi due funzioni che calcolino il doppio di un numero
la prima funzione e' void la seconda non void
obiettivo: sottolineare differenza fra void e non void
*/
void doppio(int a, int *c);
int doppio2(int a);
int main(int argc, char *argv[])
{
int z,k;
z=3;
doppio(z,&k);
cout<<k<<endl;//stampa il doppio di z
doppio(7,&k);
cout<<k<<endl;//stampa il doppio di 7
doppio(2+z*3,&k);
cout<<k<<endl;//stampa il doppio del valore 2+z*3
k=doppio2(z);
cout<<k<<endl;//stampa il doppio di z
k=doppio2(3);
cout<<k<<endl;//stampa il doppio di 3
k=doppio2(2+z*3);
cout<<k<<endl;//stampa il doppio del valore 2+z*3
k=doppio2(4)*7;
cout<<k<<endl; //56
k=doppio2(4)*doppio2(6)+7-4;
cout<<k<<endl; //99
k=doppio2(doppio2(6)+7)-4;
cout<<k<<endl; //34
system("PAUSE");
return 0;
}
void doppio(int a, int *c)
{*c = 2*a;
}
int doppio2(int a)
{ return 2*a;
}
Esercizio n.6 Risolvere una
equazione di 2^ grado
tramite una funzione
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
void soleq2grado(float a,float b,float c,float &x1,float &x2,bool &sol)
{ float delta;
delta = b*b-4*a*c;
if(delta <0)
{ sol=false;
}
else
{ x1= (-b-sqrt(delta))/(2*a);
x2= (-b+sqrt(delta))/(2*a);
sol=true;
}
}
int main(int argc, char *argv[])
{
float s1,s2;
bool sece;
soleq2grado(5,7,2, s1,s2,sece);// par attuali
if(sece)
cout<<"x1="<< s1<<" x2= "<< s2<< endl;
else
cout<<"nessuna soluzione";
float b1,b2,b3, k1,k2;
cout<<" inserisci a=";
cin>>b1;
cout<<" inserisci b=";
cin>>b2;
cout<<" inserisci c=";
cin>>b3;
soleq2grado(b1,b2,b3, k1,k2,sece);// par attuali
if(sece)
cout<<"x1="<< k1<<" x2= "<< k2<< endl;
else
cout<<"nessuna soluzione";
system("PAUSE");
return EXIT_SUCCESS;
}