Les langages de programmation

Venez apprendre les langages de programmation à votre rythme
 
AccueilGalerieCalendrierFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Cours n°7 - Les structures de contrôle

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
koija
Professeur
Professeur
avatar

Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: Cours n°7 - Les structures de contrôle   Sam 24 Sep - 12:38

Dans le cours précédent, nous avons vu comment gérer les valeurs booléennes (les booléens: type bool), maintenant, nous allons étudier l'utilité principale de celles-ci. Nous utiliserons les booléens pour gérer les structures de contrôle. Mais qu'est-ce que c'est ? C'est, en faisant simple, décider si un bloc d'instruction (on créer un bloc d'instruction avec des accolades {}) doit être parcourus lors du lancement du programme et si il faut le répéter plusieurs fois. Il existe 2 types principaux de structures de contrôles: les conditions et les boucles. Nous allons commencer par les conditions car c'est le plus facile à apprendre.

Bon, je vais commencer par vous expliquer à quoi ça sert. Les conditions servent à décider si le bloc d'instruction doit être exécuter selon la valeur d'un booléen. Nous utiliserons les mots if et else qui veulent dire respectivement si et sinon pour faire notre condition.
Voyons la syntaxe:
Code:

bool monBool = true;
int nombre = 5;

if(monBool)
{
    nombre = 4;
}

cout << nombre;

Comme le montre notre exemple, il suffit d'écrire if pour ensuite mettre notre valeur booléennes à l'intérieur, puis créer un bloc d'instruction juste après. La valeur de monBool détermine si il faut exécuter le contenu de notre bloc d'instruction ou non. Ici, notre code affichera 4 dans la console.

Maintenant, regardons ce code:
Code:

if(false)
{
    cout << "Hello";
}
Le code à l'intérieur des accolades ne sera pas exécuté, la valeur entre parenthèse étant false.

Bon ! Maintenant, je pense qu'il est temps de faire un petit exercice pour voir si vous avez bien compris le concept. Vous allez écrire un programme qui demande l'age à l'utilisateur et ensuite, vous allez afficher un message différent selon si il est adulte ou pas.
Spoiler:
 

Bon, bien entendu, c'est pas très grave si vous n'avez pas réussi. Le but est que à la fin du cours, vous soyez capable de le faire. On est loin d'y être !
Je vais maintenant vous parler d'un élément dont je vous ai parlé au début du cours mais pas avant l'exercice. Je voulais que vous fassiez aumoins 2 conditions lors de l'exercice (pour travailler les booléens) avant de continuer. L'élément en question est else, il est placé après le bloc d'instruction du if et est suivit par un autre bloc d'instruction. Pour faire simple, si la condition du if précédent n'est pas vérifié, on exécute le bloc d'instruction du else. Voici notre programme de l'exercice en utilisant ce petit plus:
Code:

#include


using namespace std;


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

{

    int age(0);

    cout << "Entrez votre age: ";

    cin >> age;


    if(age < 18)
    {
        cout << "Vous etes mineur !";
    }
    else
    {
        cout << "Vous etes majeur !";
    }

    return 0;

}
Je sais que pour le moment, vous vous dites que le else ne sert pas à grand chose, qu'on aurai pu faire autrement. C'est vrai ! Mais souvent, ça simplifie vraiment les choses.

Suite à venir

_________________


All humans will, without exception, eventually die.


Dernière édition par koija le Lun 28 Mai - 17:51, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Invité
Invité



MessageSujet: Re: Cours n°7 - Les structures de contrôle   Mer 18 Avr - 17:19

Salut Smile

Réponse à l'exercice sur la majorité

Code:
#include <iostream>
#include <cstring>

using namespace std ;

void is_majeur(int age, char res[])
{
    if (age > 17) strcpy(res, "majeur");
    else res = strcpy(res, "pas majeur");
}

int main(void)
{
    int x=0;
    char reponse[20];
    cout << "Entrer votre age\n";
    cin >> x;
    is_majeur(x, reponse);
    cout << "Votre age est de " << x << " et vous etes " << reponse ;
    return 0;
}
Revenir en haut Aller en bas
koija
Professeur
Professeur
avatar

Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: Re: Cours n°7 - Les structures de contrôle   Mer 18 Avr - 17:38

Merci pour ta participation Smile ! Je n'ai pas testé ton code mais je l'ai lu: félicitation Smile !

Si tu veux, j'ai quelques suggestions à te faire Wink ! Pour commencer, il y a un petit quelque chose qui est très méprisé par beaucoup. Beaucoup de gens n'aiment pas l'usage de fonctions C en C++: le C++ n'est pas le langage C mais bon, je pars du principe que chacun fait ce qu'il veut. Par convention personnelle, je n'utilise jamais de fonctions du C en C++: surtout qu'ici, on peut très bien utiliser l'objet string mais vu que j'en ai pas encore fait part dans mon cours... Bref Smile !

Ensuite, il y a un second petit quelque chose.. En général, les fonctions de type is_?(); renvoi un bool pour pouvoir écrire des lignes du genre if(is_majeur(age)) cout << "Il est majeur !" << endl; mais l'avantage, c'est qu'aumoins, t'as pu travailler sur les chaines de caractères Smile !

En tous cas, toutes mes félicitations. Vu ton code, je suppose que tu as appris ailleurs parce que il y a des choses que j'ai pas encore (voulu ?) indiquer dans mes cours. Tu pratiques depuis quand? En ce moment je programme beaucoup plus en C qu'en C++ donc je ne rédige plus beaucoup mes cours :/ .. Bonne continuation Very Happy !

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Invité
Invité



MessageSujet: Re: Cours n°7 - Les structures de contrôle   Mer 18 Avr - 17:49

Citation :
En tous cas, toutes mes félicitations

Merci Wink

Citation :
Tu pratiques depuis quand?

3 semaines le C et c'est mon 1er jour en C++

J'en avais fais un minimum il y a longtemps, mais juste pour tester l'embedding C/python, bref pratiquement rien.

Citation :
surtout qu'ici, on peut très bien utiliser l'objet string mais vu que j'en ai pas encore fait part dans mon cours.

J'ai voulu, mais j'ai regretté le fait de ne pas pouvoir renvoyer un string à partir d'une fonction, mais il est vrai que réponse aurait été plus sympa avec type string que char, réflexe du C, désolé...

Citation :
En ce moment je programme beaucoup plus en C qu'en C++ donc je ne rédige plus beaucoup mes cours

Dommage, j'aimerais qu'il y est des exos en C et en C++ si c'est possible, car en ce moment je bosse pas mal sur le PC. Smile

Citation :
Vu ton code, je suppose que tu as appris ailleurs parce que il y a des choses que j'ai pas encore (voulu ?) indiquer dans mes cours

J'avoue qu'un ingénieur en info, me donne quelques cours Wink

J'ai au bout d'une semaine appris à créer une deque en C, liste chainée, c'est sympa...

EDIT:

Modification de mon code

Code:
#include <string>



using namespace std;

bool is_majeur(int age)
{
    if (age > 17) return true;
    else return false;
}

int main(void)
{
    int x=0;
    string reponse;
    cout << "Entrer votre age\n";
    cin >> x;
    if (is_majeur(x)) reponse = "majeur";
    else reponse = "pas majeur";
    cout << "Votre age est de " << x << " et vous etes " << reponse ;
    return 0;
}
Revenir en haut Aller en bas
koija
Professeur
Professeur
avatar

Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: Re: Cours n°7 - Les structures de contrôle   Mer 18 Avr - 18:28

De rien ! Je pars du principe que tout travail bien fait mérites félicitations Smile !
Ensuite, pour reprendre ton code et pour remplacer char[] par string tu pourrais te renseigner sur les références un même utiliser les pointeurs. C'est ce que j'aurai fais moi en tous cas si j'étais contraint à mettre mon résultat dans une chaine et non dans un booléen.
Je te propose 2 fonctions que ta fonction m'a inspiré:
Code:

void is_majeur(int age, string* chaine)
{
    if(age <= 17) *chaine = "mineur";
    else *chaine = "majeur";
}

Sinon, la fonction que j'aurai écrite moi, c'est à dire sans l'usage des chaines de caractères dans la fonction même:

Code:

bool is_majeur(int age)
{
    return age >= 18;
}

Cette seconde fonction que je te propose a le mérite, comme je te l'ai dis tout à l'heure, de pouvoir être utilisé de cette façon: if(is_majeur(42)) ...



Ensuite, pour les exercices en C ou en C++, je suis en manque d'inspiration... Soit je trouve des choses trop simple, soit c'est trop long, soit ça demande une librairie. Après il me reste encore le PHP où là je pourrai faire des propositions d'exercices pas mal mais c'est un langage qui ne m’intéresse pas vraiment :/ .. Je me creuserai d'avantages le cerveau pour faire des exercices alors Wink

Puis pour finir, les listes chainées, j'en vois partout oO ! Quand je programme en C, j'en fais pratiquement en permanence


EDIT: Je viens de voir ton code et voilà, c'est exactement comme ça que je le voyais Wink

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Invité
Invité



MessageSujet: Re: Cours n°7 - Les structures de contrôle   Mer 18 Avr - 18:34

Ah ba oui c'est exactement comme en python, c'est cool ça Very Happy

en python par exemple

Code:
def is_majeur(age):
    return age >= 18

Bref je sens que je vais aimer le C++ et le C
Revenir en haut Aller en bas
koija
Professeur
Professeur
avatar

Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: Re: Cours n°7 - Les structures de contrôle   Mer 18 Avr - 19:07

Aah le python ! Je me suis acheté un livre dessus et je le lis souvent quand j'ai rien à faire. Mais j'aime pas vraiment ce langage :/ .. Peut être que je me suis trop accroché au C(++?). Bref, en python t'as beaucoup de similitudes possibles entre les programmes que tu fais en ce langage et le C (ou C++). Normal! Le Python s'est "inspiré" du C

Et ravis d'apprendre que tu vas te plaire en C/C++ Smile

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Contenu sponsorisé




MessageSujet: Re: Cours n°7 - Les structures de contrôle   

Revenir en haut Aller en bas
 
Cours n°7 - Les structures de contrôle
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Affichier une infobulle au pointage d'un contrôle
» Démarrage rapide-Etape5:Contrôle automatique des trains
» la vie c'comme les cours d'anglais, y'a trop d'faux amis.
» L'affichage de la carte disparaît en cours de navigation
» Ouvrir un fichier dans Mapsource sans effacer les données en cours?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les langages de programmation :: Les Cours de Programmation :: Cours de C++-
Sauter vers: