Introduction en C++ - Applications résolues
1) Realiser un programme pour exemplifier la resolution du domaine globale de valabilité (on demande utiliser l’operateur de rezolution).
#include <iostream> #include <fstream> using namespace std; int nom=10; void main() { int nom=5; //variable locale cout<<"Valeur de variable locale "<<nom<<endl; //endl pour passer a la suivante ligne //=5 cout<<"Valeur de la variable globale "<<::nom<<'\n'; //=10 int g; cin >>g; }
2) Realiser un programme alias.cpp pour creer deux alias et les utiliser
pour afficher les valeurs et les adresses des variables specifiees.
#include <iostream> #include <fstream> using namespace std; void main() { int a=10; int& a_alias=a; float b=42.76; float& b_alias=b; cout<<"Valeur de a e "<<a<<" aliasul est "<<a_alias<<endl; cout<<"Adresse delui a e "<<&a<<" , et du alias est "<<&a_alias; cout<<"\nValeur deb e "<<b<<" aliasul est "<<b_alias; a_alias++; cout<<"\nValeur de a e "<<a<<" aliasul est "<<a_alias; int g; cin >>g; }
3) Realiser un programme pour creer trois fonctions pour les trois types
de transmision des parametres qui recoivent deux valeurs comme parametres pour essayer l’echange entre eux.
#include <iostream> #include <fstream> using namespace std; void valeur(int,int); void adresse(int*,int*); void reference(int&,int&); void main() { int a,b; cout<<"Entrer a: "; cin>>a; cout<<"Entrer b: "; cin>>b; cout<<"a et b sont: "<<a<<" "<<b<<endl; valeur(a,b); cout<<"a et b sont: "<<a<<" "<<b<<endl; adresse(&a,&b); cout<<"a et b sont: "<<a<<" "<<b<<endl; reference(a,b); cout<<"a et b sont: "<<a<<" "<<b<<endl; int g; cin >>g; } void valeur(int m, int n) { int t; t=m; m=n; n=t; } void adresse(int* m, int* n) { int t; t=*m; *m=*n; *n=t; } void reference(int& m, int& n) { int t; t=m; m=n; n=t; }
4) Ecrire un programme pour lire et afficher les nombres complexes.
#include <iostream> #include <fstream> #include<math.h> using namespace std; typedef struct { double x; double y; }complex; void main() { complex z; cout<<"Donnez la valeur reelle de (a): "; cin>>z.x; cout<<"Donnez la valeur immaginaire de (b): "; cin>>z.y; cout<<endl;//laisser une ligne libre cout<<'\t'<<"a+bi="<<z.x; if (z.y>=0) cout<<"+"<<z.y<<"*i"<<endl; else cout<<z.y<<"*i"<<endl; int g; cin >>g; }
5) Exemplifier le specificateur statique.
#include <iostream> #include <fstream> using namespace std; int& atrib() { static int a=8; a++; return a; } void main() { cout<<atrib()<<endl; atrib()=7; cout<<atrib()<<endl; int g; cin >>g; }
6) Realiser une expression de forme: 1-2+3-4......+-n,
n est un nombre entier du clavier. La fonction va transmettre le resultat par la ligne des parametres par reference.
#include <iostream> #include <fstream> using namespace std; void somme(int &s,int n) { s=0; int semn=1; for(int i=1;i<=n;i++) { s+=semn*i; semn=-semn; } } void main() { int s,n; cout<<"Entrer n: "; cin>>n; somme(s,n); cout<<"La somme est: "<<s<<'.'<<endl; int g; cin >>g; }
7) Realiser une expression de forme: 1-2+3-4......+-n,
n est un nombre entier du clavier. La fonction va transmettre le resultat par le type de reference.
#include <iostream> #include <fstream> using namespace std; int& somme(int n) { static int s=0; int semn=1; for(int i=1;i<=n;i++) { s+=semn*i; semn=-semn; } return s; } void main() { int s,n; cout<<"Entrer n: "; cin>>n; s=somme(n); somme(n)=2; cout<<"somme est: "<<s<<'.'<<endl; cout<<"somme est: "<<somme(n)<<'.'<<endl; int g; cin >>g; }