Forums d'entraide informatique - Astuces - Conseils

Des experts à votre écoute pour tous vos dysfonctionnements

Vous n'êtes pas identifié.


#1 12-08-2008 18:55:22

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Introduction au language C ++

Introduction au C++
INCOMPATIBILITES  ENTRE C ET C++
NOUVELLES POSSIBILITES DU C++
Dans ce premier chapitre sont exposés les «plus» et les différences du C++ par rapport au C, sans toutefois aborder la programmation orientée objet (P.O.O.) qui sera vue lors d’un prochain chapitre.


I- COMMENTAIRES

En C++, les commentaires s’écrivent derrière un // et se terminent avec la fin de la ligne.

Exemple:        void main()        // ceci est un commentaire
               {                // noter que le qualificatif «void» est obligatoire
               int n=2;        // devant «main()»
               }


II- LE QUALIFICATIF « CONST »

En C++, de telles déclarations de tableaux sont autorisées:

               const int taille = 5;
               char tab1[taille];
               float tab2[taille + 1][taille *2];


III- DECLARATION DES VARIABLES

En C++, on peut déclarer les variables LOCALES au moment où on en a besoin. Si une variable locale est déclarée au début d’un bloc, sa portée est limitée à ce bloc.

Exemple:        void main()
               {
               for ( int i = 0;i<10;i++ )        // la variable i est connue de toute la fonction                        {                        // «main()»
                       int j;                        // la variable j n’est connue que du bloc
                       ...;                       
                       ...;
                       }
               }

Ce exemple est équivalent à:
               void main()
               {
               int i;
               for ( i = 0;i<10;i++ )        // la variable i est connue de toute la fonction                        {                        // « main() »
                       int j;                // la variable j n’est connue que du bloc
                       ...;                       
                       ...;
                       }
               }

Cette possibilité autorise une gestion plus précise de la mémoire, mais peut nuire à la structuration des programmes.


IV- LES NOUVELLES POSSIBILITES D’ENTREES/SORTIES

On peut utiliser en C++ les fonctions d’entrées/sorties classiques du C (printf, scanf, puts, gets, putc, getc ...), à condition de déclarer le fichier d’en-tête stdio.h.

Il existe de nouvelles possibilités en C++, à condition de déclarer le fichier d’en-tête iostream.h.
Ces nouvelles possibilités ne nécessitent pas de FORMATAGE des données.

Sortie sur écran: l’opérateur cout:

Exemples:        cout << "BONJOUR";        // équivalent à        puts("BONJOUR");

               int n = 25;
               cout << "Valeur: ";                // équivalent à        puts("Valeur");
               cout << n;                        // équivalent à        printf("%d",n);

               On peut encore écrire directement:
               cout <<"Valeur:" << n;

               cout <<"\n ";                // pour aller à la ligne

               char c = ‘a’;                       
               cout << c;                        // affiche le caractère, il faut utiliser
                                               // printf (formatage), pour obtenir le code ASCII

Cette notation sera justifiée lors du chapitre sur les flots.
L’opérateur cout permet d’afficher des nombres entiers ou réels, des caractères, des chaînes de caractères, des pointeurs autre que de type *char (valeur de l’adresse).

Exemple (à tester) et exercice I-1:
#include <iostream.h>
#include <conio.h>
void main()     
{
int i,n=25,*p;
char *tc="On essaie cout !";
float x = 123.456;
cout<<"BONJOUR\n";
cout<<tc<<"\n";
cout<<"BONJOUR\n"<<tc<<"\n";
cout<<"n= "<<n<<"  x= "<<x<<"  p= "<<p<<"\n";
getch() ;
}

Saisie clavier: l’opérateur cin:

Exemples:        int n;
               cout<<"Saisir un entier:  ";
               cin >> n;                // équivalent à scanf("%d",&n);
       
               int a, b;
               cin >> a >> b;        // saisie de 2 entiers séparés par un Retour Charriot

Cette notation sera justifiée lors du chapitre sur les flots.
L’opérateur cin permet de saisir des nombres entiers ou réels, des caractères, des chaînes de caractères.

Exemple (à tester) et exercice I-2:

Tester cet exemple plusieurs fois, notamment en effectuant des saisies erronées de sorte d’évaluer les « anomalies » de fonctionnement de cin.

#include <iostream.h>
#include <conio.h>
void main()
{
int n;
char tc[30],c;
float x;
cout<<"Saisir un entier:";
cin>>n;
cout<<"Saisir un réel:";
cin>>x;
cout<<"Saisir une phrase:";
cin>>tc;
cout<<"Saisir une lettre:";
cin>>c;
cout<<"Relecture: "<<n<<" "<<x<<" "<<tc<<" "<<c<<"\n";  getch() ;
}
V- LES CONVERSIONS DE TYPE

Le langage C++ autorise les conversions de type entre variables de type char, int, float, double:

Exemple:

void main()
{
char c=0x56,d=25,e;
int i=0x1234,j;
float r=678.9,s;
j = c;                        // j vaut 0x0056
j = r;                        // j vaut 678
s = d;                        // s vaut 25.0
e = i;                        // e vaut 0x34
}

Une conversion de type float --> int ou char est dite dégradante
Une conversion de type int ou char --> float est dite non dégradante


VI- LES CONVERSIONS DE TYPE LORS D’APPEL A FONCTION

Le C++, contrairement au C, autorise, dans une certaine mesure, le non-respect du type des arguments lors d’un appel à fonction: le compilateur opère alors une conversion de type.

Exemple:        double ma_fonction(int u, float f)
               {
               .....;                        // fonction avec passage de deux paramètres
               .....;
               }

               void main()
               {
               char c; int i, j; float r; double r1, r2, r3, r4;
               r1 = ma_fonction( i, r );        // appel standard
               r2 = ma_fonction( c, r);        // appel correct, c est converti en int
               r3 = ma_fonction( i, j);        // appel correct, j est converti en float
               r4 = ma_fonction( r, j);        // appel correct, r est converti en int
                                               // et j est converti en float
               }

Exercice I-3:

Ecrire une fonction float puissance(float x,int n) qui renvoie xn. La mettre en oeuvre en utilisant les propriétés de conversion de type.
VII- LES ARGUMENTS PAR DEFAUT

En C++, on peut préciser la valeur prise par défaut par un argument de fonction. Lors de l’appel à cette fonction, si on omet l’argument, il prendra la valeur indiquée par défaut, dans le cas contraire, cette valeur par défaut est ignorée.

Exemple:        void f1(int n = 3)        // par défaut le paramètre n vaut 3
               {
               ....;
               }

               void f2(int n, float x = 2.35)        // par défaut le paramètre x vaut 2.35
               {
               ....;
               }

               void f3(char c, int n = 3, float x = 2.35)        // par défaut le paramètre n vaut 3
               {                                                // et le paramètre x vaut 2.35
               ....;
               }

               void main()
               {
               char a = 0; int i = 2; float r = 5.6;
               f1(i);                // l’argument n vaut 2, l’initialisation par défaut est ignorée
               f1();                // l’argument n prend la valeur par défaut
               f2(i,r);                // les initialisations par défaut sont ignorées
               f2(i);                //  le second paramètre prend la valeur par défaut
               // f2();         interdit
               f3(a, i, r);        //  les initialisations par défaut sont ignorées
               f3(a, i);        //  le troisième paramètre prend la valeur par défaut
               f3(a);                //  le deuxième et la troisième paramètres prennent les valeurs                }                //  par défaut

Remarque:

Les arguments, dont la valeur est fournie par défaut, doivent OBLIGATOIREMENT se situer en fin de liste.
La déclaration suivante est interdite:        void f4(char c=2, int n)
                                       {
                                       ....;
                                       }

Exercice I-4:

Reprendre l’exercice précédent. Par défaut, la fonction puissance devra fournir x4.
VIII- LA SURDEFINITION DES FONCTIONS

Le C++ autorise la définition de fonctions différentes et portant le même nom. Dans ce cas, il faut les différencier par le type des arguments.

Exemple (à tester) et exercice I-5:


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

Pied de page des forums


Copyright Parisdepannage.fr


Fermer la fenètre