Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉBUTEZ EN C++


Information sur le tutorial

Catégorie :Tutoriaux Date de création : 28/12/2006 13:51:58 Vu : 22 669 fois

Note :
9,29 / 10 - par 7 personnes
9,29 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (28)
Ajouter un commentaire et/ou une note

Description

Ce tutorial sert à débuter en c++ en abordant les premieres bases du c++ avec un exemple concret, la conception d'une calculatrice. Ceci est le premier tutorial de la série.

Tutorial

 Bioopo                   

Bioopo@neuf.fr

Le 28/12/2006

Comment debuter en c++

 

I - Introduction



Bienvenue dans mon tutorial concernant l'apprentissage de base du c++. Son apprentissage est un long chemin où découragement, blocages et agacement font partie du quotidien, mais la joie ressentie lors d'un challenge réussi ( je ne parle pas d'un programme , mais de l'avancement de l'apprentissage dans la douleur) est bien plus grande que si l'on fait la même chose dans un langage plus facile et compréhensible.Voilà comment je vois l'apprentissage du c++, il faut être motivé, prendre son temps et ne pas avoir peur des échecs. Une fois que vous avez compris cela, vous pouvez vous lancer dans l'apprentissage du langage.


Ce tutorial n'est pas une bible ni un cours magistral du c++, il faut le prendre pour ce qu'il est, ma vision de l'apprentissage de ce beau langage.Il n'expliquera pas tout, ce n'est pas son rôle, il faudra faire des recherches par vous même, internet regorge de données sur le code du c++. Il vous montrera une méthodologie personnelle de pré-conception, de conception ,de développement et de post-développement. Ce tutorial est conçu avec un exemple unique, une calculatrice basique, qui permet de se concentrer sur l'essentiel sans se préoccuper du superflu ( puisqu'il n'y en a pas) .


Je vais vous expliquer comment est construit ce tutorial, Il y a dix grandes parties :


Titre

Description

Introduction

Introduction des grandes lignes du toturial plus mes idées.

Connaissances requises

Connaissances que vous devez avoir pour réaliser le tutorial.

Cahier des charges

Définition des points importants du projet.

Analyse fonctionnelle

Analyse de chaques fonctions du projet.

Analyse structurelle

Analyse les structures par rapport aux fonctions

Développement

Ecriture du code.

Post-développement

Détection et correction d'erreurs, rapport de fonctions manquantes.

Récapitulatif

Récapitulation des connaissances acquises depuis le début.

Complément

Documentation annexe.

Conclusion

La conclusion du projet.


Le tutorial contiendra plusieur types d'informations, avec un format spécifique à chaque type.

Les éléments normaux.

Les remarques importantes.

Pour le code c'est un peu plus compliqué:


Nom du fichier - Nom de la fonction.

......

code déjà écrit


code à écrire


......



Un petit mot sur le projet, la calculatrice que nous allons créer à travers les tutoriaux sera une calculatrice en mode console, avec les opérations standards. Elle sera capable d'effectuer les additions, soustractions , multiplications, divisions ....ainsi que plusieurs opérations avancées que nous détaillerons dans un autre tutorial. Car d'abord, il faut apprendre les bases et le supperflu peut vite devenir génant.



II - Connaissances requises


Il n'y a pas de besoin d'avoir des connaissances en c++ pour ce tutorial, car c'est un tutorial pour les personnes souhaitant débuter avec ce langage.



III - Cahier des charges


N'étant pas un grand spécialiste en ce qui concerne la rédaction d'un cahier des charges, je me contente du minimum, son but étant de définir avec précision le but du programmes et les moyens mise en oeuvre.


1 - Le but du programme

Le but du programme est d'afficher le résultat d'une opération saisie par l'utilisateur.


2 - Les moyens misent en oeuvre

Nous allons utiliser le logiciel dev-c++ avec un nouveau projet en mode console. (pourquoi le mode console, simplement car pour la calculatrice que nous allons programmer, une interface graphique est inutile, surtout elle nous rendrait l'apprentissage plus difficile, ce qui n'est pas le but). L'éxécutable de la calculatrice ne devra pas dépasser 500 Ko.



IV - Analyse fonctionnelle


L'analyse fonctionnelle sert à déterminer les différentes fonctions du programme, je parle des différentes portions qui, mis en inter-connexion parviendront à éxécuter le programme.

Il n'y a pas de code, pas de langage c++, mais simplement du français, le but de l'analyse fonctionnelle étant de découper les différentes actions à entreprendre et de les connecter.


La notation des fonctions dans l'analyse fonctionelle, il y a les fonctions principales, les fonctions secondaires et les fonctions annexes. Les fonctions principales, notées Fpx (x étant le numéro de la fonction, correspond au grandes lignes du programme. Les fonctions secondaires découpent les fonctions principales en plus actions localisées, elle sont notées Fsx.y (x étant le numéro de la fonction principale à laquelle elles se rapportent, y étant le numéro de la fonction secondaire). Les fonctions annexes sont des fonctions non-nécessaire au fonctionnement du programme, mais qui peuvent apporter des petits plus.Elles sont notées Faz (z étant le numéro de la fonction annexe).


Une fonction principale spécifique est la fonction FP0. C'est en faites la racine de l'analyse fonctionnelle, elle regroupe toutes les autres fonctions principales et les fonctions annexes.


Une analyse de fonction, qu'elle soit principale, secondaire ou annexe, contient toujours huit spécificités:


  • La première étant un code d'identification (voir paragraphe ci-dessus).

  • La seconde étant l'objectif de la fonction.

  • La troisième, les données que nous lui fournissons.

  • La quatrième, les actions utilisateurs.

  • La cinquième, les données en sortie.

  • La sixième, une explication détaillée du fonctionnement pour arriver à son objectif.

  • La septième, une liste des sous fonctions associés(si il y en a besoin).

  • La huitième étant son nom.


Il existe plusieurs méthodes pour faire une analyse fonctionnelle, nous en verrons deux. Pour les petits programmes comme celui-ci, nous utiliserons des tableaux pour définir les fonctions. Pour des projets plus gros, nous utiliserons des diagrammes, nous les utiliserons quand la calculatrice commencera a avoir plus de fonctionnalités.


Nous pouvons commencer notre analyse fonctionnelle. La première étape consiste a définir la fonction FP0.


1 - Fonction FP0 : Calculatrice


Spécificités

Détails

Code d'identification

FP0

Nom

Calculatrice

Objectif

Afficher le résultat d'une opération saisie par l'utilisateur

Données fournis

Aucune

Actions utilisateur

Saisie de l'opération

Données sorties

Résultat de l'opération

Sous-fonctions

FP1 : Enregistrement saisie

FP2 : Calcul

FP3 : Affichage du résultat

Description détaillée

La calculatrice devra, en fonction de la saisie de l'utilisateur, calculer et afficher le résultat de l'opération.













2 - Fonction FP1 : Enregistrement saisie


Spécificités

Détails

Code d'identification

FP1

Nom

Enregistrement saisie

Objectif

Enregistrer les saisies utilisateur

Données fournis

Aucune

Actions utilisateur

Saisie de l'opération

Données sorties

Saisie enregistrée

Sous-fonctions

Aucune

Description détaillée

La Fonction devra enregistrer la saisie utilisateur.



3 - Fonction FP2 : Calcul


Spécificités

Détails

Code d'identification

FP2

Nom

Calcul

Objectif

Effectuer le calcul de l'opération saisie par l'utilisateur

Données fournis

Saisie enregistrée

Actions utilisateur

Aucune

Données sorties

Résultat du calcul

Sous-fonctions

Aucune

Description détaillée

La Fonction devra choisir quel est le calcul a effectuer en fonction de la saisie de l'utilisateur.



3 - Fonction FP3 : Affichage du résultat


Spécificités

Détails

Code d'identification

FP3

Nom

Affichage du résultat

Objectif

Afficher le résultat de l'opération

Données fournis

Résultat du calcul

Actions utilisateur

Aucune

Données sorties

Résultat affiché

Sous-fonctions

Aucune

Description détaillée

La Fonction devra afficher le résultat de l'opération saisie




Voila, notre analyse fonctionnelle est terminée, bien sur, vous pouvez trouver ça barbant de réécrire plusieurs fois les mêmes choses et faire tout ça pour un petit programme, mais habituez vous à le faire, car dans les plus gros projet, comme notre calculatrice en version 1, il sera bon d'avoir finit les fondations avant de programmer.


Attention, je vous déconseille, en plein milieu du programme de vouloir ajouter d'autres fonctions, il vaut mieux les noter sur un bout de papier, finir correctement votre projet, et ensuite, effectuer une nouvelle version de votre programme. Sinon, vous risquez de vous embrouiller et de faire des erreurs que vous mettrez un temps fou à réparer.



V - Analyse structurelle


L'analyse structurelle sert à déterminer les structures nécessaires au projet. Il n'est pas question de créer le code entier maintenant, c'est le rôle de la phase de développement. Mais plutôt de collecter les différentes fonctions et variables nécessaires pour éxécuter correctement cette fonction. Il s'agit ici de raisonnement logique et de français. C'est dans cette analyse que ce fera le plus gros de la recherche des fonctions du language.Nous reprendrons partiellement les tableaux de l'analyse fonctionnelle, car c'est de cette base que nous partirons pour faire cette analyse.


1 - Fonction FP1 : Enregistrement saisie


Spécificités

Détails

Code d'identification

FP1

Nom

Enregistrement saisie

Objectif

Enregistrer les saisies utilisateur

Actions utilisateur

Saisie de l'opération

Données sorties

Saisie enregistrée

Description détaillée

La Fonction devra enregistrer la saisie utilisateur.


Il y a deux actions a réaliser, la première étant la saisie de l'utilisateur au clavier, la seconde étant d'enregistrer cette saisie. En c++, il existe des fonctions de bases qui nous permettent d'éxécuter ces deux actions.


La première est la fonction cin, qui permet de demander à l'utilisateur d'entrée des données au clavier.

La seconde, est une variable, elle permet de stoquer en mémoire une données.


2 - Les variables

Les variables sont des zones mémoires ou nous pouvons stoquer des données, des nombres, des lettres ou d'autres types de données. Pour permettre d'allouer une zone mémoire, il faut que le programme connaisse la taille de la variable (il y a des execptions que nous verront plus tard). Pour cela, il faut définir le type de la variable, il en existe des standards et des personnalisées, pour le moment, nous verrons les standards.



Pour stoquer des nombres, il y a plusieurs types :

  • int, pour les nombres entiers ( 1 2 3 .....)

  • float, pour les nombres à virgule (1,23 2,5 ....)

  • double

  • long


Pour stoquer les caractères comme les lettres ou les caractères spéciaux ( + - ; $ ), il y a un seul type de base :

  • char (contient 1 caractère)


pour pouvoir utiliser ces variables, il faut les définir et les initialiser car la zone allouée peut contenir des données anciennes et créer des erreurs dans votre programme.


  • Pour Définir une variable :

type_de_la_variable Nom_de_la_variable;


  • Pour initialiser une variable (attribuer une valeur) :

Nom_de_la_variable = valeur;


  • Pour Définir et initialiser la variable en même temps :

type_de_la_variable Nom_de_la_variable= valeur;


exemple :

int intNumeroRue = 0;


Cela signifie que nous avons alloués une zone mémoire que le programme connait sous le nom intNombre et que nous lui avons donnés comme valeur 0.


Il existe un principe dans le nommage des variable, il s'agit de mettre un préfixe a la variable indiquant le type de cette variable, et de mettre un nom définissant bien le rôle de la variable. Cela rend le code plus lisible sans avoir a chercher le type et le rôle de la variable quand il sagit d'un long programme. Prenez l'habitude de cette écriture.


3 - La fonction de base cin


La fonction cin est une fonction de base du c++, elle permet à l'utilisateur de saisir des données au clavier, puis de l'enregistrer dans une variable. Elle s'utilise comme ceci :


cin >> Nom_De_Variable;


Récapitulatif des variables et fonctions de FP1


Variables et fonctions

Type

Détails

intNombre1

int

Enregistre le premier nombre saisi

intNombre2

int

Enregistre le second nombre saisi

chrOperand

char

Enregistre le signe de l'opération

cin


Demande la saisie et l'enregistre


L'analyse de cette fonction est terminée. Nous pouvons passer à la fonction FP2.



4 - Fonction FP2 : Calcul



Spécificités

Détails

Code d'identification

FP2

Nom

Calcul

Objectif

Effectuer le calcul de l'opération saisie par l'utilisateur

Données fournis

Saisie enregistrée

Données sorties

Résultat du calcul

Description détaillée

La Fonction devra choisir quel est le calcul a effectuer en fonction de la saisie de l'utilisateur.


La fonction de calcul est la plus compliquée des trois, normal puisque c'est la que le programme fait 99% des taches. Il y a deux actions à réaliser, la première étant de faire le choix de l'opération en fonction du signe de l'opération, la seconde étant de calculer l'opération.

Il existe plusieurs fonctions standard pour faire un choix en c++, pour commencer, nous en verrons une, la fonction de test if.


5 - La fonction de test if



Elle peut se traduire par : si la condition est remplie, alors on execute le code. Elle s'utilise comme cela :


if(condition)

{

code a executer;

}


Nous pouvons faire plusieurs tests en une seule fois avec la fonction if ... else if. Elle se traduit par

si la condition est remplie, alors on execute le code, sinon si la seconde condition est remplie alors on execute son code. Elle s'utilise comme cela :


if(condition)

{

code a executer;

}

else if(condition2)

{

code a executer;

}


6 - Les opérations mathématiques


La seconde condition à éxécuter est une simple opération mathématique, pour la réaliser, nous écrivons pour une addition par exemple :


Nom_Variable = Nom_Variable1 + Nom_Variable2

Récapitulatif des variables et fonctions de FP2


Variables et fonctions

Type

Détails

intNombre1

int

Enregistre le premier nombre saisi

intNombre2

int

Enregistre le second nombre saisi

chrOperand

char

Enregistre le signe de l'opération

intResultat

int

Enregistre le résultat de l'opération

If


Choisi l'opération à effectuer


L'analyse de cette fonction est terminée. Nous pouvons passer à la fonction FP3.



7 - Fonction FP3 : Affichage du résultat



Spécificités

Détails

Code d'identification

FP3

Nom

Affichage du résultat

Objectif

Afficher le résultat de l'opération

Données fournis

Résultat du calcul

Données sorties

Résultat affiché

Description détaillée

La Fonction devra afficher le résultat de l'opération saisie


Il n'y a qu'une seule action dans cette fonction, afficher le résultat obtenu par la fonction de calcul. Pour cela, nous utiliseront la fonction standard d'affichage à l'écran, cout.



8 - La fonction de base cout


La fonction cout est une fonction de base du c++, elle permet d'afficher des données à l'écran. Elle s'utilise comme ceci :


cout << Nom_De_Variable;


Récapitulatif des variables et fonctions de FP3


Variables et fonctions

Type

Détails

intResultat

int

Enregistre le résultat de l'opération

cout


Affiche des données à l'écran












VI - Développement



1 - Le fichier main.cpp

Voila, il est temps de lancer le logiciel dev-c++. Dans le menu Fichier, cliquer sur nouveau projet, sélectionnez console application puis nommer votre projet et choisissez projet c++, enfin cliquez sur ok. Ensuite choisissez le répertoire où le sauvegarder et le nom du fichier de projet. Un fichier main.cpp est alors créé, sauvegardez le sous le même nom.



Avant de nous lancer dans le développement de notre projet, regardons de plus prêt ce qu'il contient.Les première lignes sont :

#include <cstdlib>

#include <iostream>

La fonction #include permet d'inclure les librairies (ce sont des fichiers contenant des fonctions) qui nous servirons pour notre programme. Elles permettent d'utiliser des fonctions sans avoir a écrire leur code, il y a les librairies standard du c++ et les librairies personnalisées). Les librairies standard contiennent les fonction standard du c++, comme les fonctions d'entrées sorties, mathémathiques ....



Nous ne verrons pas dans ce chapitre les librairies personnalisées, mais ce sont des fichiers écrit par des programmeurs qui les donnent ou des librairies spécialement conçu pour un programme spécifique par le programmeur.



La librairies <iostream> est une librairie standard qui a des fonctions gérant les entrées / sorties. Sans ces lignes, vous ne pourriez pas utiliser les fonctions standard du c++. De plus, il existe d'autres librairies standard, que vous devrez inclure avant de pouvoir utiliser des fonctions spécifiques.



Passons a la seconde ligne:

using namespace std;



Cette ligne définit l'espace de nom standard.

Ce qui signifie que les librairies standard utiliseront cet espace de nom. Il est nécessaire pour la suite. Passons a la fin du code :



int main(int argc, char *argv[])

{

system("PAUSE");

return EXIT_SUCCESS;

}



int main(int argc, char *argv[]) est une fonction. Elle est définit comme suit :

le type de retour de la fonction : int

le nom de la fonction : main

Les arguments a passer a la fonction : (int argc, char *argv[])

Ces arguments peuvent être des variables, des chaines de caractères ou des nombres.

Quand il s'agit de variables comme ici, nous définissons la variable avec son type et son nom.



Les accolades : { }



c'est ici que l'on écrit le code de la fonction. La fonction débute a l'accolade d'ouverture et finit a l'accolade de fin. Selon le type de retour de la fonction, elle devra retourner une valeur.



La fonction system("PAUSE"); attend que l'on press une touche pour arreter le programme.

La fonction return EXIT_SUCCESS; retourne au programme la valeur permettant de quitter le programme.



La fonction main est nécessaire, c'est la que commence le programme. Nous commencerons dans cette version a coder a l'interieur même de la fonction pour ensuite, dans le prochain tutorial examiner la notion de fonction.



Une des choses importantes à faire dans cette phase de programmation est de commenter notre code afin qu'il soit plus lisible par d'autres personnes et pour nous, dans les phases de recherches d'erreurs(Une des parties les plus importantes de la programmation).



Il existe en c++, deux façons de mettre des commentaires, la première est un commentaire sur une seul ligne, nous utilisons pour cela deux barres obliques pour définir que la ligne est une ligne de commentaire.



//ceci est un commmentaire

ceci n'est pas un commentaire





Il y a aussi une deuxième façon, c'est de créer un bloc de commentaire qui peut être sur plusieurs ligne, nous utilisons une barre oblique suivi d'un asterisque, que nous terminons par un asterisque suivi d'une barre oblique.



/* ceci est un bloc de commentaire */

/*ceci est un

bloc de commentaire*/



/* ceci n'est pas un bon car nous n'avons pas fermer le bloc, le programme fermera le bloc a la prochaine fin de bloc.



Pour ma part, je met un entete au début de chaque fichier de mon programme. Pour notre calculatrice par exemple :



/**************************************

programme : Bioopo-vega calc 2007

Fichier : calc.cpp

Créateur : bioopo

Mail : bioopo@neuf.fr

Creation : 25/12/2006

**********************************/

ainsi qu'une breve description du projet :



/**********************************

Ce programme est une calculatrice

en console pour l'apprentissage des

bases en c++

**********************************/



ensuite je définit des zones pour chaque parties différentes du programmes :

Fichiers a inclure

Nom de fonction avec sa description

Initialisation des varaiables

Code principal de la fonctions ........



Apprendre a bien utiliser les commentaires peut vous éviter de longues nuits d'acharnement pour retrouver une erreurs.



N'oubliez pas : Beaucoup d'informations vallent mieux que pas assez, mais trop d'informations (qui ne servent a rien ) tuent l'information.De plus, ne mettez pas de commentaires général, par exemple



//variable de type double

double dblNum;



Ce commentaire ne sert a rien, il faut indiquez plus d'information :



//variable contenant le premier nombre saisie

double dblNum;



si vous notez correctement le nom des variables, il est inutile dans le commentaire d'inscrire le type de cette variable. De plus, il vaut mieux mettre un nom plus significatif a la variable :



//variable contenant le premier nombre saisie

double dblSaisie1;



voila un commentaire correct qui explique le but de cette variable ainsi qu'un nom de variable correct qui définit en lui même son type et son but.



Voila je pense que nous pouvons passez au code maintenant.



2 - Les commentaires



Nous allons donc commencer par la fonction FP1, mais juste avant nous allons ajouter les commentaires au fichier.

Fichier main.cpp

/**********************************

Program : calc2007

Fichier : main.cpp

Créateur : bioopo

Mail : bioopo@neuf.fr

Creation : 25/12/2006

logiciel : dev-c++

Version : 0.1a

Modification : 26/12/2006

**********************************/

/**********************************

Ce programme est une calculatrice

en console pour l'apprentissage des

bases en c++

**********************************/

/**********************************

Fichiers a inclure

**********************************/

#include <cstdlib>

#include <iostream>

/**********************************

Utilisation de l'espace de noms standard

**********************************/

using namespace std;

/**********************************

fonction main

fonction principale du programme

**********************************/

int main(int argc, char *argv[])

{

/**********************************

Definition et initialisation des variables

**********************************/

/**********************************

Corps de la fonction

**********************************/

//Appel de la function demandant une pause et de presser une touche pour quitter.

system("PAUSE");

return EXIT_SUCCESS;

}



Bien entendu ne pas écrire les pointillés si il y en a , ils ne sont la que pour dire ce qu'il y a après ou avant le code quand je ne mettrez que la partie qui nous interresse,ici, je met les commentaires de début de programmation donc tout le fichiers est écrit, il ne vous reste plus qu'a écrire les parties en gras italique.



Nous allons définir et initialiser les variables.





















3 - Définition des variables



Fichier main.cpp - fonction main

........

/**********************************

Definition et initialisation des variables

**********************************/

//variable contenant les nombres saisies

int intNombre1 = 0, intNombre2 = 0;



//variable contenant le résultat de l'operation

int intResultat =0;



//variable contenant le signe de l'operation

char chrOperand = '0';

......

Nous voyons que nous pouvons itinialisez plusieurs variables du même type en mettant le suivant après une virgule. Je conseille toutefois de réunir seulement les variables qui correspondent a une même famille, par exemple je n'est pas mis la variable de résultat avec les variables de saisies, pourtant elles sont du même type, il faut tout faire pour que noter code soit lisible et simple a comprendre. De plus, je vous invite a espacer votre code, les lignes d'espace allègeront votre code et ne le rendront pas plus gros en terme de poid. Passons maintenant a la fonction FP1. Nous demandons a l'utilisateur de saisir un nombre, puis nous l'enregistrons (voir analyse fonctionnelle et structurelle):

4 - Fonction FP1 : Enregistrement saisie



Fichier main.cpp - fonction main

........

/**********************************

Corps de la fonction

**********************************/

//Fonction permettant a l'utilisateur de saisir le premier nombre

cin >> intNombre1;



//Fonction permettant a l'utilisateur de saisir le signe de l'operation

cin >> chrOperand;



//Fonction permettant a l'utilisateur de saisir le second nombre

cin >> intNombre2;

......



Vous voyez qu'une fois l'analyse fonctionnelle et structurelle faites en amont, la phase de programmation ne se résume qu'a ecrire le code, sans se soucier de comment on doit s'y prendre et quelle fonction utiliser. C'est pour cela que les premières phases de la conception sont très importantes.

Voila ceci fait, nous pouvons passez a la fonction FP2.



5 - Fonction FP2 : Calcul



Fichier main.cpp - fonction main

//Fonction permettant a l'utilisateur de saisir le second nombre

cin >> intNombre2;

........

//Test pour déterminer le signe de l'operation et calcul l'operation

if(chrOperand == '+')

{

intResultat = intNombre1 + intNombre2;

}

else if(chrOperand == '-')

{

intResultat = intNombre1 - intNombre2;

}



else if(chrOperand == '*')

{

intResultat = intNombre1 * intNombre2;

}

else if(chrOperand == '/')

{

intResultat = intNombre1 / intNombre2;

}

......

Nous avons vu la fonction de test if lors de la phase d'analyse structurelle, Les signes a l'interieur du test sont en guillement simple, ils donnent alors leur numéro de caracteres plutot que le caractere lui même. Le double égal est nécessaire, car c'est un operateur de comparaison, la ligne signifie :

si chrOperand vaut '+' alors éxecutont le code.

Si nous avions mis un signe égal simple cela nous aurez fait une erreur car il aurait affecté comme valeur a chrOperand le signe +. C'est très important de faire attention. De plus, pour la lisibilité du code, quand nous avons un test ou une boucle nous mettons le code de celle ci en retrait.

Nous avons donc notre fonction FP2, il ne reste plus qu'a coder la fonction FP3.



6 - Fonction FP3 : Affichage du résultat


Fichier main.cpp - fonction main

if(chrOperand == '/')

{

intResultat = intNombre1 / intNombre2;

}

......



//Fonction affichant le résultat de l'operation à l'écran

cout << intResultat;



......



Nous avons vu la fonction cout dans la phase de conception, nous ne reviendrons pas dessus.

Nous avons fini la partie programmation nous allons donc tester notre programme. Faites F9, le programme va compilez et s'éxecuter.

Saisissez 10 et faites entrée.

Saisissez + et faites entrée.

Saisissez 2 et faites entrée.



Le résultat de l'operation s'affiche et normalement il est juste





Maintenant, vous devez vous rendre compte que même si le but fixé est atteint, ce n'est pas beau ni très facile a comprendre le fonctionnement.C'est pour cela que nous avons une phase de post-développement.



VII - Post-développement



Cette phase est une des plus importante, elle vous permet de tester et de corriger les bugs et les lacunes de votre programme. Nous verrons la gestion des erreurs dans la seconde partie, pour le moment nous allons voir comment rendre ce programme plus conviviale.



La première des choses qui frappent quand on utilise le programme, c'est le manque d'informations pour l'utilisateur, nous savons quoi faire puisque c'est notre programme, mais il faut penser que dans 6 mois, nous ne nous en souviendrons plus, et si quelqu'un dautre le lance, il aura une page vide et ne sera pas quoi faire.

Il faut donc diriger l'utilisateur sur la fonction du programme et sur ce qu'il doit faire.

Fichier main.cpp - Fonction main

........

/**********************************

Corps de la fonction

**********************************/

//Fonction permettant a l'utilisateur de saisir le premier nombre

cout << "Bioopo-vega calculatrice 2007 version 0.1a" << endl;

cout << "Entrez le premier nombre" << endl;

cin >> intNombre1;



//Fonction permettant a l'utilisateur de saisir le signe de l'operation

cout << "Entrez le signe de l'operation + - * /" << endl;

cin >> chrOperand;



//Fonction permettant a l'utilisateur de saisir le second nombre

cout << "Entrez le second nombre" << endl;

cin >> intNombre2;



......









Fichier main.cpp - Fonction main

......



//Fonction affichant le résultat de l'operation à l'écran

cout << "Le résultat est" << endl;

cout << intResultat << endl;



......











C'est mieux comme ca, il reste cepandant quelques bugs.



Si nous mettons un nombre a virgule, le programme ne fais pas ce qu'on lui demande.

Si nous mettons un autre caractères que les signes + - * / pour le signe de l'operation le programme fait ne fais pas ce qu'on lui demande.



Le premier bugs est plus que facheux et le pire des deux.

Le deuxième est moins facheux mais plus long a rétablir.



Nous nous occupons donc des problèmes les plus facheux au moins facheux.



Pour le premier bugs, c'est tres simple, il nous suffit de changer le type de variable de int en double ou float pour le corriger.



Donc :



Fichier main.cpp - Fonction main

........

/**********************************

Definition et initialisation des variables

**********************************/

//variable contenant les nombres saisies

double dblNombre1 = 0.0, dblNombre2 = 0.0;



//variable contenant le résultat de l'operation

double dblResultat =0.0;



//variable contenant le signe de l'operation

char chrOperand = NULL;

......



N'oubliez pas de changer le prefixe de la variable dans tout le code, ni de changer l'initialisation en 0.0 car c'est comme cela que l'on pas un nombre a une variable de type double ( 1 devient 1.0 ...). Notre bug est réparé, Bien entendu, si c'était un vrai projet, nous aurions définit les variables en type double au moment de la conception. C'était seulement un exemple pour vous montrer la phase de post-développement et un type d'erreurs bête.



Une simple boucle de test de la saisie corrigera le second bug, mais nous verrons ceci dans le prochain tutorial.



















VIII - Récapitulatif



Nous avons vu pas mal de base du c++ dans ce chapitre, apprenez a les maitrisez avant de continuer, faites des petits programmes test, recherchez dans des livres ou sur internet des informations concernant les différents types de variables. Une fois tout cela assimilez passez au prochain tutorial.



Base vu dans ce tutorial:

  • Definir une variable et son type. (char, int et double)

  • Initialiser les variables

  • faire un calcul de base en mathematique

  • créer une fonction de test standard (if, if else if)

  • Enregistrer une variable a partir d'une saisie au clavier (cin)

  • Afficher a l'ecran un message ou une variable. (cout)

  • Une nomenclature pour les variables

  • inserer des commentaires

  • Une méthode pour bien concevoir son projet.



IX - Complément



1 - Notation des version


Je note les versions comme suit: x,ya

x numero de version principale : quand la calculatrice aura les fonctions que nous voudront implémenter et sans bugs, il passera a 1

y numero de fonctionnalité : quand nous ajouterons des fonctionnalité a la calculatrice, ce numero augmentera. Pour le moment il est a 1 puisque nous implémentons les premières fonctionnalités.

a lettre de développement: elle peut prendre 2 positions, a : en développement et b bugs corrigés.

Notre version est donc la 0.1a car la calculatrice en est a son premier stade de développement, elle n'a que les fonctionnalités d'opérations de base et il reste des bugs.

















X - Conclusion

Je finirais ce tutorial en vous disant de bien l'assimiler, d'essayer de faire des petits programmes utilisant les connaissances acquises avant de vous lancer dans le tutorial suivant. Je sais que ça limite les possibilités de programmes, mais c'est important d'assimiler ces bases avant de continuer. Le c++ n'est pas un langage que l'on apprend en deux jours.


En espérant que ce tutorial a pu vous aider et qu'il vous a plu. Bon courage pour la suite.



Bientôt le prochain tutorial.



Merci a tous.

30 décembre 2006 02:32:51 :
Cette mise a jour a été effectuée dans un but de compréhension. Le tutorial a été entièrement revu et corrigé, il est plus lisible, de nouveaux chapitres ont été ajoutés et un code couleur plus simple.
signaler à un administrateur
Commentaire de GuilleW le 28/12/2006 18:00:40

Tres bonne source sur le sujet :)
Merci, et bonne continuation !

signaler à un administrateur
Commentaire de bioopovega le 28/12/2006 20:33:05

Merci a vous pour ce message.

signaler à un administrateur
Commentaire de wxccxw le 01/01/2007 22:48:33

encore bonne chance et bonne continuation, a quand le n5 ?

signaler à un administrateur
Commentaire de bioopovega le 02/01/2007 20:58:36

Merci wxccxw,

Je continue de mettre à jour les tutoriaux 1 à 4 pour qu'ils soient plus compréhensible et plus lisible sur le site, car je m'aperçois que la mise en page par rapport à mon document original n'est pas trés propre. Pour le tuto n°5, qui sera le dernier de la calculatrice, je voudrais allez un peu plus loin dans la programmation orienté objet,car mon programme est plutot procédural pour le moment, ce qui ne le distingue pas trop du langage c. Il prendra un peu plus de temps, car je dois restructurer tout mon code pour cela puis ensuite faire un tuto simple et compréhensible.
J'espère que d'ici deux semaines ces deux projets seront finalisés.

Bonne année à tous

signaler à un administrateur
Commentaire de joserwan le 16/01/2007 04:35:03

Grand merci pour ce turorial qui est ma porte d'entrée dans le monde du C++ !

Comme je suis un grand néophyte, je me permettrai juste quelques remarques (et question en fait, que d'autres neuneus comme moi se poseront peut-être):

- Pourquoi attribuer aux données le type "double" plutôt que "float" ?
- Pourquoi doit-on alors changer char chrOperand='0; en char chrOperand='NULL'; ?
-J'ai mis 10 minutes a percuter que cin signifie c "in" et cout c "out". Que signifie "c" ?


Voilà, j'espère que mes petites incompréhensions serviront à d'autres et merci encore pour ce tuto !

signaler à un administrateur
Commentaire de bioopovega le 16/01/2007 07:01:40

bonjour et merci de tes questions.

d'abord, faut arrêter d'utiliser le termes "neuneus" car tu n'en n'es pas un, ni aucune personne qui débute. Pour répondre à tes questions, ce qui différencie les types doubles et float et l'échelle de valeurs disponible. le type float peut prendre des valeurs allant de 3.4e-38 à 3.4e+38 alors que le type double peut aller de 1.7e-308 à 1.7e+308, donc une plus grande précision. Comme nous ne connaissons pas à l'avance ce que va taper l'utilisateur, nous mettons des variables de type double.
Pour le chrOperand = null, c'est une erreur que j'ai rectifié dans la mise a jour du tuto qui sera disponible prochainement. il faut laisser avec 0.
Pour le dernier point, je ne sais pas, mais je pense que le c vient de c++ tout simplement.

bon courage pour ton apprentissage.

signaler à un administrateur
Commentaire de kiholo le 17/01/2007 10:56:09

bonjour et merci pour ce tuto
j'en suis à ma énième tentative de auto formation en C++
je vais m'efforcer de ne pas survoler ces explications sans réellement me pencher dessus. En venant de MS Visual VB (et juste utilisateur éclairé),
je pensais que ce serait simple (je parle pour les interfaces graphiques, un petit coup d'ocx et des fonctions qui pointent sur des objets estampillés MS)
mais même MS Visual C++ me rebute.je ne pense pas être le seul qui, en venant d'un autre environnement veut aller trop vite et que c'est l'inverse qui se passe mais  et, peut être vieillesse oblige, j'essaie de ne plus me lancer dans un processus qui me fera prendre trop de mauvaises habitudes.
tout ça pour dire qu'un tout petit laïus sur les interfaces graphiques et leurs imbrications lors de la programmation rassurerais peut être les gros bourrins comme moi !!!
en tout cas merci encore pour ce travail...

signaler à un administrateur
Commentaire de bioopovega le 17/01/2007 18:29:18

Bonjour et merci kiholo.

Moi aussi, j'ai fait quelque années de programmation "assisté" basic et pascal. La grande différence entre ces languages et le c++ est la difficulté d'appréhender le c++ après cela. le c++ n'est pas un language assisté, c'est un vrai et beau language, qui se code du début à la fin. évidemment, microsoft aide avec visual c++ à créer l'interface graphique, mais pour avoir un résultat, de toute façon, faut retrousser les manches. ce n'est pas un langage facile, mais le plus beau et celui qui procure le plus de satisfaction. Pour ces tutos, l'interface graphique n'aurait qu'alourdi le code et compliqué les explications. avant de faire de la programmation graphique, il faut des bases solides, c'est le rôle de ces tutos, mais d'autres tutos viendront s'ajouter à cela avec des bases sur l'interface graphique.

J'espère avoir répondu a ta question.

et encore merci .

signaler à un administrateur
Commentaire de six_roses le 16/03/2007 15:00:07

juste pour préciser, le C des cin et cout signifie "console"
(console-in, console-out)

sinon trés bon tutos ;)

signaler à un administrateur
Commentaire de tribleoof le 22/04/2007 20:36:14

A propos de cin ; je sais pas quelle fausse manip j'ai fait mais au moment de la compilation une ligne noire s'arrête sur la première ligne cin avec une petite croix rouge dans la marge et lorsque je fais une recherche dans l'aide de dev-C++ il reconnaît bien la fonction cout mais pas cin.
Je tiens à spécifier que j'ai débuté aujourd'hui et que je trouve ce tuto fort instructif et d'utilité publique puisqu'il m'a déjà permis d'utiliser de petits scripts sympatiques trouvés sur ce site.

Par contre, et je dis çà en plaisantant, c'est un peu vexant quand tout ne marche pas comme dans l'explication.

En tous cas je vais faire une recherche de mon côté par rapport au souci qui me turlupine mais je tenais encore une fois à dire merci pour cette mise en bouche savoureuse qui donne l'eau à la bouche aux apprentis cuistots venant prendre des cours dans les parages.

signaler à un administrateur
Commentaire de miss fafa le 29/04/2007 15:31:02

c bien ce tutu es je vous remercie bq c tres bien pour un debutant en c++ et j'espere de faire d'autre en c parce que moi je ss debutant en c et merci d'avance mon msn est assia_123456_@hotmail.com pour tt information

signaler à un administrateur
Commentaire de cadaxen le 10/06/2007 23:45:17

merci pour le tutorial /!\

signaler à un administrateur
Commentaire de snpier wolf le 23/08/2007 22:05:22

salut je voulais te remercier pour se tutorial qui ma aidé a comprendre se que d'autre faisai que compliquer merci encors.

signaler à un administrateur
Commentaire de nopnop77 le 18/10/2007 14:11:47

L'explication est bien détaillé rien à dire.

Pour améliorer ton tuto:

- Le refaire avec un SWITCH (plus efficace ici) pour montrer une autre alternative des blocks    IF..THEN.
- Exclure la saisie de 0 pour intNombre2 (et dblNombre2) pour la division...


signaler à un administrateur
Commentaire de diiplayer le 24/10/2007 17:34:00

Excellent, continue comme sa!

signaler à un administrateur
Commentaire de bioopovega le 02/11/2007 11:01:40

Bonjour NopNop77,

Ce premier tuto est fait pour ce qui veulent débuter en C++, alors je n'ai pas voulu le surcharger d'informations, c'est pour ca qu'il n'y a que la fonction if. Dans le second tuto, la fonction switch est incluse, je préfère y aller pas à pas pour les nouveaux programmeur.

et pour les tests des valeurs rentrées, c'est la même chose.

en tout cas merci de ce soucis d'amélioration, j'apprécis.

signaler à un administrateur
Commentaire de madoumanou le 13/01/2008 19:56:21

merci pour ce tuto, mais je debute dans ce domaine et je veux savoir si dev-C++ est bon outil pour la compilation et l'execution ou il ya d'autre logiciel?
et aussi si vous pouvez m'aider a me donner de conseils pour l'instalation (si elle est dur)et les etapes pour enregistrer un projet(ou mettre le .cpp et ou mettre .h)
merci d'avance.

signaler à un administrateur
Commentaire de snpier wolf le 14/01/2008 05:56:33

salut moi je trouve que dev-c++ est bien,
bien sur il y a d'autre comme visual c++.

l'instalation est toute simple c'est comme un autre programme.

Pour le fichier ".cpp" et le ".h" tu crée un dossier par ex: mes programme, et dedans tu
fais des sous-dossier avec le nom de tes programmes
enfin c'est comme sa que je fai.

pour ouvrire un projet tu vas sur le petit icon en dessous de fichier,
puis tu clik sur console application.
la tu le met dans ton sous dossier (que tu as crée juste avant).
voila pour le reste les commandes et tou je te laisse regarder sur le net et lire des livres (xD c moi qui dis sa )

@++

signaler à un administrateur
Commentaire de lording le 02/02/2008 04:21:16

Avant tout, j'aimerai remercier "bioopovega" pour son Tuto.
Je lui laisse un note de 9/10 parce que pour un novice ses explications sont précise et très compréhensive pour les débutants (moi même en étant un j'apprécie grandement).
J'approuve également sa gentillesse de mettre à disposition son temps pour les autres.
Encore Bravo et merci pour ce super tuto (j'espère un jour pouvoir en faire autant pour mon prochain).
J'ai juste une question:
Pourquoi ne retrouve ton pas dans ce tuto l'explication des tabulations ou espaces dans les fonctions/sous fonctions?
Il me semble que pour une question de lisibilité ceci devrait être clarifié des le début non (enfin si s'est le cas en c++ comme en VB).
Ceci dit je viens juste de m'imprégner du premier tuto et si cela se trouve cette information est reprise dans le second tuto (au quel cas je m'excuse).
Encore une dernière chose on félicite souvent les programmeurs ou autres, mais n'oublions pas que sans cppfrance je n'aurais jamais eu l'occasion je pense de lire ce formidable tuto. Merci Merci Merci et euh Merci au moins la j'ai une base pour commencer.

signaler à un administrateur
Commentaire de bioopovega le 02/02/2008 08:44:00

Bonjour LOARDING,

Et merci pour tout ça, effectivement, le code n'est pas très lisible, mais je suis en train de remettre tout ça en ordre. Mais, je ne peux pas, pour le moment le remettre à jour. Si tu veux le tuto au format pdf, demande le je te l'enverrais par mail.

signaler à un administrateur
Commentaire de lording le 04/02/2008 12:44:30

BIOOPOVEGA,

Volontier pour le pdf (merci d'avance)!!!
As-tu prévu d'inclure dans ta formation quelques explications sur la gestion graphique et gestion peripherques(genre joystick/souris)?
Mon but finale etant de crée mon propre un mini jeu (voici le jeu en question: http://www.internettrash.com/users/corn_am_i/descrips/caverns.htm).
Le jeu n'étant plus disponible et comme j'arrive pas a contacter le developpeur
J'ai déjà dans le passé (du temp du basic) developper mes propres jeux et sa serait chouette (comme projet) de pouvoir le faire en c++.
Merci encore pour tout.

signaler à un administrateur
Commentaire de lording le 10/02/2008 02:00:25

Bonjour Bioopovega,

N'ayant pas de tes nouvelles concernant le PDF, je me suis dit ai-je oublié qque chose?
Euh oui (lol) voici mon adresse mail: sonex4@hotmail.com.

PS: Je n'ai pas vraiment avancé dans les tuto's (car j'aimerais absorber a 100% le 1er tuto et être capable de synthétisé un projet complet (le même), mais sans le tuto à côté de moi).
Par contre je me suis aperçu d'un problème d'affichage des caractères accentué.

J'ai également trouvé une solution avec la librairie windows.h (enfin, ok ok je sais bien que la je m'éloigne), mais s'est pour mieux revenir (bon ok je me trouve des excuses la).

Euh a titre d'info pour les autres membres "débutant", comme moi ne vous laissez pas impressionner par les "faux" développeurs (car il y en a).
Le copie/paste et la suppression des commentaires sont trop souvent d'applications.
Cela tue l'information et la connaissance générale (au profit de ceux qui ont pour seul but de se vanté le mérite des autres).
On aime montrer aux autres qu'on est capable de développer dans un langage de programmation complex et on a tendance a vite se jeter des fleurs (hou.. hou....).
Je n'ai pas honte de le dire j'en ai fait partie, mais je me soigne comme on dit.
Bref, faites transpirer vos neurones et comme le disait bioopovega, blocage, agacement font partie du quotidien, mais la joie ressentie lors d'un chalenge réussi est grandiose.
Alors courage (pour ma part je suis hyper motivé au point ou j'me suis inscrit au cours d'algorithmes).
J'ai une ambition "non non je veux pas conquérir le monde", mais je compte bien parvenir à mes fins.
Et le jeu sera gratos lol.
Ça sera ma participation.

Merci encore a BIOOPOVEGA.

signaler à un administrateur
Commentaire de bioopovega le 10/02/2008 18:39:07

Bonjour Lording,

Merci de m'avoir donnée ton adresse.

Pour le pdf, je te l'envoie dès que j'aurais fini la mise à jour du tuto, comme ça, tu auras la dernière version. et je t'enverrais aussi les suivant dès qu'il seront terminé. Il va y avoir des petits changements dans le tuto, le principal sera qu'au lieu des tableaux, il y aura des diagrammes (plus de lisibilité et de compréhension). j'en ai encore pour une semaine, je pense, pour qu'il soit lisible.

Pour les autres, maillez moi et je vous les enverrais aussi. Pour le moment, le site à un problème pour la mise à jour des tutos, donc je ne peux le mettre en ligne.

Lording, si tu le désires, je te propose un partenariat de développement pour ton projet. Si ça t'interresse, voici mon adresse : bioopo@neuf.fr.

a++

signaler à un administrateur
Commentaire de lording le 11/02/2008 03:00:21

Bonjour BIOOPOVEGA,

Merci d'avance pour les tuto's.

Il est évident que ton aide est la bienvenue (un très grand merci).
Je compte bien essayer de me débrouiller et pas te faire faire le boulot (lol).
Sinon ça ne sert à rien lol!
Encore un très grand merci à toi !

signaler à un administrateur
Commentaire de macfornaz le 22/10/2008 23:10:22

Bonjour, merci pour le tuto,très bien fait:
Il me semble cependant qu'il y a une erreur, en effet à la section Récapitulatif des variables et fonctions de FP2 le tableau est le même que FP1 alors que cela devrait être le calcul... sauf erreur de ma part...

Cordialement un débutant

signaler à un administrateur
Commentaire de NexuZ le 27/10/2008 23:41:58

Excellent tuto merci

signaler à un administrateur
Commentaire de lafouine22 le 16/01/2009 12:09:24

j'ai installé skype et je rechercher quelqu'un qui pourrait me donner des cours d'initiation a l'informatique a la programmation

j'ai installé microsoft visual studio et je recherche quelqu'un qui a skype installé sur son ordinateur comme moi avec un compte utilisateur pour me donner des cours d'initiation a l'informatique internet et programmation informatique en C ; C++ ; visual studio et delphi ; me donner des bases pour devenir débutant et après confirmé et peut être expert. si quelqu'un est intéresse prendre contact avec moi par mail directement a cet adresse mail victor8800@gmail.com ou compte skype talkworld4 et me donner votre compte skype pour communiquer.
je suis disponible la journée. prendre contact avec moi pour débuter l'initiation. merci d'avance pour toute l'aide que vous pourrez m'apporter pour apprendre l'informatique et obtenir un niveau débutant avancé le plus rapidement possible pour pouvoir débuter la programmation et me conseiller sur le logiciel a acheter et le langage informatique le plus intéressant a programmer le plus évolutif et le plus facile. J'ai acheté un livre pour débuter microsoft visual C++ 5 aux éditions eyrolles. si quelqu'un comme moi a le même livre pour débuter ce serai mieux.

signaler à un administrateur
Commentaire de djtrm le 13/04/2009 14:33:34

merci de cette aide ca va surement me permettre de me lancer sur le cpp

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.