Je suis désoler mais j’ai vraiment du mal à comprendre ta table de vérité peut être cela est du à mon coup de fatigue :zzz:
Version imprimable
C'est pourtant clair:
Au niveau des colonnes, tu as
Chaque ligne donne le résultat obtenu lors de la comparaison des deux valeurs.
- La comparaison effectuée
- deux valeur identiques (A = 4 et B = 4)
- Deux valeurs dont la première est plus petite que la deuxième (A = 3 et B = 4 )
- deux valeurs dont la deuxième est plus petite que la première (A = 4 et B = 3 )
- l'état unique (l'état qui n'apparait qu'une fois sur les trois possibilités envisagées)
ainsi, si tu teste A == B, le test vaut vrai pour A = 4 et B = 4, faux pour A = 3 et B = 4, faux pour A = 4 et B =3 et donc, l'état unique d'un test d'égalité est vrai
Et l'on remarque donc que Non( A < B ) renverra exactement les memes résultat que A >= B ;)
Merci pour ses précisions de logique mais j’avais bien compris cela par contre c’est au niveau de l’écriture du code ou cela ce gâte car je ne sais comment l’écrire et cela me semble bien compliquer quand on sait que je n’ai appris pour le moment que quelques notions du langage C++. Une âme charitable peut elle résoudre mon équation please.... :calim2:
Je suis bloqué avec ce code j’ai beau le tourner dans tous les sens un coup c’est la ligne «*inférieur à*» et un coup «*supérieur à*» qui s’affiche en permanence.
Code:
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 #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 } else // a est > b { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } if (nombreEntiera < nombreEntierb) // si a < b { cout << nombreEntiera << " est inférieur à " << nombreEntierb << endl; } else { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } cout << nombreEntiera << " + " << nombreEntierb << " = " << nombreEntiera + nombreEntierb << endl; return 0; }
Pas imbriqué :
Imbriqué :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 if (a) { } else { } if (b) { } else { }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 if (a) { if (b) { } else { } } else { }
Ok merci 8O j’ai compris l’imbrication, en effet je suis de ceux ou il faut expliquer longtemps pour comprendre mais je progresse enfin à vous de voir car j’ai encore un problème dans la console... sans doute une erreur de frappe euueueuue
Code:
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 #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 // a est > b { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } } else { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } cout << nombreEntiera << " + " << nombreEntierb << " = " << nombreEntiera + nombreEntierb << endl; return 0; }
Ici, c'est dans le cas où les valeurs sont égales que tu les compares pour savoir laquelle est la plus grande des deux, ce qui n'a pas vraiment de sens. C'est dans le cas où elles sont différentes que ça en a (le else).
En outre, je t'engage à faire un effort sur l'indentation de ton code. C'est vraiment important pour le relire sans erreurs par la suite.
Salut Geekaple,
Même si tu es sur un forum d'entraide, il est inutile d'encombrer la discussion avec des questions dont tu peux trouver la réponse par toi même. C'est un peu de la fainéantise que de demander ce qu'est "l'indentation d'un code" alors qu'une simple recherche google est suffisante.
Le principe d'un forum est de demander quelque chose dont tu n'as pu trouver la réponse (ou alors dont tu n'as pas compris la réponse) nul part ailleurs.
Merci de ta compréhension.
Je me suis exécuté et donc voici ce que cela à donné:
Mais désoler le résultat console reste toujours faut y aurait il pas un problème au niveau de codeblock car dès la fermeture de cette appli j’ai une erreur générer par le système.Code:
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 #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 // a est > b { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } } else { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } cout << nombreEntiera << " + " << nombreEntierb << " = " << nombreEntiera + nombreEntierb << endl; return 0; }
Prends le temps de considérer à tête reposée ce que SIGNIFIE ton code...
Imagine quelqu'un qui te dis:... tu ne sens pas comme une contradiction, là?Citation:
si je fais la même taille que toi alors voilà ce qu'il faut faire si je suis plus grand
Et deux petites remarques concernant des commentaires:
Le commentaire est faux : inclus le fichier d'en-tête iostream (hé oui, en C++, il est possible d'avoir des fichiers sans extension, mais il vaut mieux laisser cela à la seule bibliothèque standard ;) )Code:#include <iostream> //inclu la bibliothèque iostream (affichage du texte)
Il y a une différence entre un fichier d'en-tête et une bibliothèque:
Un fichier d'en-tête se "contente" d'indiquer au compilateur que certaines choses existent (le fichier iostream, par exemple, va indiquer au compilateur qu'il existe des éléments tels que cin, cout ou cerr et qu'ils se trouvent dans l'espace de nommage std ) alors qu'une bibliothèque fournit un code binaire correspondant à tout ce que l'on peut trouver dans un fichier d'en-tête ;)
Il n'y a pas de bibliothèque iostream, mais on trouve dans la bibliothèque standard (libstdc++.a, pour prendre l'exemple de gcc) le code binaire (comprend : utilisable par l'ordinateur) de tout ce que cin, cout ou cerr sont capables de faire ;)
Encore faux:Code:using namespace std; // indique la fonction que l'on va utiliser
Indique au compilateur qu'il peut accepter que l'on utilise tout ce qui se trouve dans l'espace de noms std sans devoir préciser explicitement que l'on souhaite utiliser fait partie de cet espace de noms particulier (à savoir std ).
C++ donne la possibilité de déclarer des espaces de noms, c'est à dire des sortes de "boites" dans lesquelles on va trouver un ensemble de choses qui sont faites pour "travailler ensemble" :D
Cela permet d'éviter les conflits si, pour une raison ou une autre, nous venions à utiliser deux bibliothèques différentes qui fournissent (c'est moche, mais cela peut arriver) toutes les deux une fonction ou un type utilisateur qui porte le même nom.
On compte en effet sur le fait que le projet A (qui s'occupe de l'une des bibliothèques) aura déclaré sa fonction ou sa classe dans l'espace de noms A et que le projet B (qui s'occupe de l'autre bibliothèque) l'aura fait, logiquement, dans l'espace de noms B.
De cette manière, les fonctions ou les types utilisateurs qui se trouvent aussi bien dans la bibliothèque A que dans la bibliothèque B n'entreront pas en conflit les uns avec les autres (parce que le compilateur applique la règle de la définition unique, et que, s'il trouve deux définition portant le même nom, il râle vraiment très fort :D );)
Ainsi, tout ce qui est fourni par la bibliothèque standard se trouve dans l'espace de noms std (pour STandarD :D ) ;)
La directive using namespace std; indique tout simplement que, s'il ne trouve pas quelque chose (par exemple cout) dans l'espace de noms global, il peut aller voir si cela existe, par le plus grand des hasards, dans l'espace de noms std (ce qui sera le cas, en l'occurence :D ) ;)
Mais l'idéal reste, autant que possible, de limiter l'utilisation de ce genre de directive et, surtout, de ne pas l'utiliser dans un fichier d'en-tête, parce qu'elle aurait alors tendance à se répandre dans tout le code, du fait du jeu des inclusions en cascades.
Nous pourrions alors perdre tout l'intérêt des espaces de noms et nous retrouver avec un conflit si une telle directive était utilisée pour l'espace de noms A et une autre pour l'espace de noms B dans l'exemple dont j'ai parlé plus haut : le compilateur ne saurais plus s'il doit prendre la fonction correspondante dans la bibliothèque A ou dans la bibliothèque B.
C'est d'autant plus vrai que l'utilisation de cette directive ne fait pas gagner grand chose (pour ce qui concerne la bibliothèque standard du moins): cela ne prend pas des masses de temps et n'use pas vraiment le clavier que de rajouter std:: avant les éléments qui se trouvent dans cet espace de noms ;)
:yaisse2: Salut les grosses têtes c’est bon j’ai trouvé la solution regarde à qui le veux :
Code:
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 #include <iostream> // écrire cette ligne permet entre autre de pouvoir utiliser la console using namespace std; // cette ligne évite de devoir rajouter du code à certain endroits 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; // si les deux nombres sont égaux if (nombreEntiera == nombreEntierb) { cout << nombreEntiera << " est égal à " << nombreEntierb << endl; // affiche à 'écran } // sinon, si le nombre A est inférieur au b else if (nombreEntiera < nombreEntierb) { cout << nombreEntiera << " est inférieur à " << nombreEntierb << endl; } // sinon (c'est que le nombre A est suppérieur au b) else { cout << nombreEntiera << " est supérieur à " << nombreEntierb << endl; } cout << nombreEntiera << " + " << nombreEntierb << " = " << nombreEntiera + nombreEntierb << endl; return 0; }