Salut,
A vrai dire, je ne vois pas ce que tu ne comprends pas
Bon, la méthode utilisée pour représenter l'algorithme n'est pas vraiment ma méthode préférée (perso, quitte à faire des petits dessins, je préfère le nassi-schneiderman, qui est selon moi plus adapté à la représentation d'algorithme pour la programmation structurée, mais ce n'est qu'un avis strictement perso ), mais l'algorithme a sans doute pour objectif de te montrer l'intérêt des tests
En effet, le programme affichera " a est egal à b", "a est inférieur b" ou "a est supérieur b" (en fonction de la situation) et le résultat de a + b.
L'intérêt du programme est, effectivement, plutôt limité en tant que tel (non, on ne prend pas les gens pour des idiots ), mais, l'intérêt de l'algorithme en lui meme est de permettre de comprendre qu'une fonction est en réalité une succession d'instructions dont l'exécution peut prendre des voies alternatives, en fonction du résultat de certains tests
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Et bien tout simplement je n’arrive pas à bien écrire la fonction 'if else’, j’utilise Codeblock. Des errors me complique la tâche ah vraiment trop type ce C++ galère ... galère pour un Newbie comme moi
Hia,
J'adore !
Tu insinues qu'ils te prennent pour un débile en te proposant un tel exercice basique, et tu n'arrives pas à le faire !
Pour la syntaxe du langage, il existe moult bouquins/cours/didacticiels ...
Si les cons volaient, il ferait nuit à midi.
Avant d'écrire de la littérature, il faut déjà connaître la grammaire de base. Il ne vous prennent pas plus pour des débiles qu'un prof de français qui expliquait que "la souris est mangée par le chat" "la souris" est sujet, "est mangée" est groupe verbal, et "par le chat" complément d'agent.
Maintenant, si tu as des problèmes de syntaxe, on ne pourra t'aider qui si tu nous montre le bout de code en question, ainsi que l'erreur de ton compilateur.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Merci de bien vouloir resté indulgent avec les débutants, rappelez vous de votre premier programme ? Bon trêve de plaisanterie voici mon bout de code non finie et merci pour vos remarques pertinentes dès que cela sera possible j’y prendrais part....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include <iostream> //inclu la bibliothèque iostream (affichage du texte) #include <string> using namespace std; // indique la fonction que l'on va utiliser int main() // Fonction principale du programmes, tous les programmes commencent par cela { cout << "Entrer un nombre entier" << endl; int nombreEntiera; cin >> nombreEntiera; cout << "Entrer un deuxième nombre entier" << endl; int nombreEntierb; cin >> nombreEntierb; if nombreEntiera = nombreEntierb // si a = b { else (nombreEntiera + nombreEntierb) // Alors calculer a + b cout << nombreEntiera << " + " << nombreEntierb << " est égal à " << endl; // affiche à 'écran } if nombreEntiera < nombreEntierb // si a < b { else (nombreEntiera + nombreEntierb) // Alors calculer a + b cout << nombreEntiera << "est inférieur à " << nombreEntierb << endl; } return 0; } // en revanche je ne sais quel fonction utiliser pour le 'non'
Il faut vraiment que tu potasse à nouveau la syntaxe de base des tests.
La syntaxe est:
et non
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if(condition){ //code à exécuter si condition vraie }else{ //code à exécuter si condition fausse }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if(condition){ else //code à exécuter si condition vraie <==dès le else, le compilo ne s'y retrouve plus...il ne comprendra plus rien par la suite ... } //et où met-on le code à exécuter si la condition est fausse? (else=sinon en anglais)
Un grand merci à therwald sans qui je n’aurais pu écrire et modifier mon code actuel, j’aurais encore besoin de votre soutiens pour résolver ses dernière erreurs de syntaxe
voici les errors affiché par codeblock :
19: error: expected `;' before '}’ token
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #include <iostream> //inclu la bibliothèque iostream (affichage du texte) #include <string> using namespace std; // indique la fonction que l'on va utiliser int main() // Fonction principale du programmes, tous les programmes commencent par cela { cout << "Entrer un nombre entier" << endl; int nombreEntiera; cin >> nombreEntiera; cout << "Entrer un deuxième nombre entier" << endl; int nombreEntierb; cin >> nombreEntierb; if (nombreEntiera = nombreEntierb) // si a = b et a < b { cout << nombreEntiera << " + " << nombreEntierb << " est égal à " << endl; // affiche à 'écran cout << nombreEntiera + nombreEntierb // effectue le calcul } else // si condition fausse { cout << nombreEntiera << "est supérieur à " << nombreEntierb << endl; cout << nombreEntiera + nombreEntierb; } if (nombreEntiera < nombreEntierb) // si a < b { cout << nombreEntiera << "est inférieur à " << nombreEntierb << endl; cout << nombreEntiera + nombreEntierb; } else // si condition fausse { cout << nombreEntiera << "est supérieur à " << nombreEntierb << endl; cout << nombreEntiera + nombreEntierb; } cout << nombreEntiera << " + " << nombreEntierb << " = " << endl; return 0; }
C'est tout simple (et ça t'arrivera encore par étourderie un certain nombre de fois): tu as oublié de terminer la ligne 18 par un ;
C'est d'ailleurs ce que le compilo te dit en angliche dans le texte:
"19: error: expected ; before } token" ==> ligne 19: erreur: j'attendais ';' avant le signe '}'
Ok merci encore j’avance doucement mais surement comme on dit donc mon prog marche niquel, par contre le résultat sur la console n’est pas très jojo, j’aimerais plus un résultat du style :
7 + 7 est égal à 147
147 est supérieur à 7
147 + 7 = 154
Les passages à la ligne sont mal placés parce que les utilisations endl qui les provoquent sont mal placés.
Mais tu ne devrais pas te concentrer sur ce détail, regarde les réponses et tu constateras qu'elles sont fausses: ta logique n'est pas correcte, et par conséquent bien que le programme compile et s'exécute sans erreur, il est faux.
Réanalyse le diagramme d’algorithme avec tes valeurs pour voir les réponses attendues et tu verras que les réponses du programme ne collent pas...
Grrrrr zut j’ai encore un ptit problème au niveau de la condition d’égalité et là je ne voit pas ou je plante
voici la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <iostream> //inclu la bibliothèque iostream (affichage du texte) #include <string> using namespace std; // indique la fonction que l'on va utiliser int main() // Fonction principale du programmes, tous les programmes commencent par cela { cout << "Entrer un nombre entier" << endl; int nombreEntiera; cin >> nombreEntiera; cout << "Entrer un deuxième nombre entier" << endl; int nombreEntierb; cin >> nombreEntierb; if (nombreEntiera == nombreEntierb) // si a = b { cout << nombreEntiera << " est égal à " << nombreEntierb << endl; // affiche à 'écran } if (nombreEntiera < nombreEntierb) // si a < b { cout << nombreEntiera << " est inférieur à " << nombreEntierb << endl; } else // si a n'est pas < à b { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } cout << nombreEntiera << " + " << nombreEntierb << " = " << nombreEntiera + nombreEntierb << endl; return 0; }
Dans ton code, tu dis que si a n'est pas inférieur à b, alors il est supérieur, ce qui est faux (le cas de l'égalité, que tu as justement traité avec tes valeurs d'exemple).
Quand tu regardes l'algorithme donné en dessin, quand les valeurs sont égales, tu doit totalement sauter le test avec '<', or dans ton cas, tu l'appelles systématiquement. Dit autrement, tes deux if doivent être imbriqués.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Tout à fait mais c’est justement cela mon problème car sur mon livre de cours il n’indique pas comment sauté une instruction
Je comprend bien ce que tu veux dire en revanche je ne vois pas comment l’écrire...
correcteur svp tout en sachant que je pense bien que ce code et faux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include <iostream> //inclu la bibliothèque iostream (affichage du texte) #include <string> using namespace std; // indique la fonction que l'on va utiliser int main() // Fonction principale du programmes, tous les programmes commencent par cela { cout << "Entrer un nombre entier" << endl; int nombreEntiera; cin >> nombreEntiera; cout << "Entrer un deuxième nombre entier" << endl; int nombreEntierb; cin >> nombreEntierb; if (nombreEntiera <== nombreEntierb) // si a = b ou a < b { cout << nombreEntiera << " est égal à " << nombreEntierb << endl; // affiche à 'écran cout << nombreEntiera << " est inférieur à " << nombreEntierb << endl; } else // si a n'est pas < à b { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } cout << nombreEntiera << " + " << nombreEntierb << " = " << nombreEntiera + nombreEntierb << endl; return 0; }
JolyLoic a déjà dit le mot magique:.imbrication
Regarde le diagramme d'algo: tu verra qu'il y a plusieurs niveaux imbriqués.
Tu dois reproduire cette logique avec tes blocs if/else: imbrique les pour que selon les cas certains tests imbriqués soient faits ou pas...
Par ailleurs, attention à ta rigueur sur les expressions logiques: le contraire de < n'est pas > mais >=
Tu fais comme tu veux, mais le contraire de < est >= dans un test, parce que si un nombre n'est pas inférieur à un autre, il peut être soit supérieur soit égal...
Justement je ne suis pas là pour te donner la réplique mais seulement pour apprendre et là j’avoue que je ne comprend pas ou plus ?
Peut tu me dire ou tu as appris le langage C++, j’aimerais bien m’y référer car je n’avance pas avec cet algo qui me prend un peu la tête soit dit en passant, quand on ne sait faire c’est toujours plus difficile
Hé bien non!!!
Le contraire de < est >= !!! > est l'opposé de <
Une petite table de vérité pour t'en convaincre
Tu remarqueras que, si ==, < et > ont un état unique à true, <= et >= ont un état unique à false, et que si tu écrit !(A < B ), le résultat correspond à... A >= B ou que si tu fais !(A > B) tu obtiens le résultat correspondant à A <= B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 | A = 4 | A = 3 | A = 4 | | B = 4 | B = 4 | B = 3 | ==> état unique ___________________________________________ A == B | true | false | false | ==> true A < B | false | true | false | ==> true A <= B | true | true | false | ==> false A > B | false | false | true | ==> true A >= B | true | false | true | ==> false !( A == B ) | false | true | true | ==> false !( A < B ) | true | false | true | ==> false !( A > B ) | true | true | false | ==> false
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
il ne s'agit pas d'imbriquer des variables, mais des blocs if/else...de manière à reproduire les chemins d'exécution qui sont montrés dans le diagramme.
Repars du principe que quand la condition est vraie l'exécution passe par les instructions du bloc if, puis saute le bloc else, quand la condition est fausse l'exécution saute le bloc if et passe par le bloc else.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager