Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
Merci de modifier votre message d'origine en fonction.
Voilà une syntaxe bien originale pour tenter de définir plusieurs fonctions d'un coup!
int "f_addit, f_sous, f_mult, f_div, f_puis, f_mod" (int a, int b){
return a+b, a-b, a*b, a/b, a^b, a%b;
}
De même, inventer la puissance d'un nombre avec l'opérateur ^, ne semble pas à l'ordre du jour. D'autant que l'opérateur ^ sert déjà à quelque chose d'autre (c'est l'opérateur de ou-exclusif bits à bits). Pour la puissance, il faut utiliser la fonction std::pow(a,b).
Peut-être que définir vraiment ces fonctions, et les appeler effectivement serait bien plus cohérent.
On ne peut pas définir plusieurs fonctions d'un coup comme tu essayes de le faire
Et on ne met pas le nom des fonctions entre guillemets
int addition(int a, int b)
{
return a + b;
}
Voilà comment corectement définir et implémenter UNE fonction
Il faut répéter ces lignes, en adaptant évidemment le nom de la fonction et l'implémentation entre les crochets, pour chaque fonction que tu veux créer
Ensuite dans ton switch, si tu veux tester tes fonctions il faut les appeler et non pas réécrire la formule avec des + et des - sinon tes fonctions ne servent à rien
Par exemple :
switch(op){
case'+':
std::cout<<"La somme est : "<< addition(a, b) << std::endl;
break;
}
Je te laisse te baser sur le bout de code que je t'ai donné pour codé les autres fonctions et les appeler correctement dans ton switch
Que veux-tu dire par "continuer avec chaque opération"? Est-ce que tu dois tester chaque opération une seule fois? Ou bien recommencer à volonté? Quoi qu'il en soit, la boucle while (ou autre) doit englober les saisies et le switch.
Le Tout est souvent plus grand que la somme de ses parties.
Genre si j’effectue un calcul avec l’addition que je continue avec la soustraction, la multiplication, la division, la puissance et le modulo
C’est fatiguant d’effectuer un calcul avec l’addition reprendre encore avec les autres opérateurs
Si tu trouves fatiguant de tester un programme, tu auras de la difficulté à progresser dans le domaine de la programmation. Par contre, c'est parfois une bonne chose que d'être fainéant quand on programme. Mais il faut l'être de la bonne façon. Tu pourrais mettre tes opérateurs dans un std::array ou std::vector de char Tu pourrais choisir tes nombres de telle sorte que tu puisses tester toutes les opérations. Tu fais une boucle for sur l'indice dans un de ces tableaux et tu testes toutes les opérations à tour de rôle. Cette boucle n'aurait besoin que d'inclure le switch.
Le Tout est souvent plus grand que la somme de ses parties.
Lol 😂 pour ce travail dont je vous parle je suis fainéant dans le bon sens peut-être la façon dont je vous explique vous n’arrivez pas à comprendre je vais vous envoyer le code dès que je finirai mon repas vous allez comprendre que ce que je vous demander ce n’était pas question d’être fainéante bah peut être fainéante mais dans le bon sens comme vous le dites 😂🤣🤣🤣
Je ne donne pas un bon exemple, mais moi je n'ai pas le choix. Il n'existe pas de symbole pour la fonction "puissance". J'ai tout de même utilisé le symbole '^' pour le switch. J'aurais pu être assez fainéant pour faire générer presque toutes les fonctions avec un très petit programme dans un autre langage. Même chose pour les "case" du switch: Je ne vérifie pas que le diviseur est différent de 0 ou que la puissance puisse donner un entier trop grand. - #include <iostream> #include <string> #include <cmath> // Les fonctions sont si simples que je les ai écrites en une ligne. int f_add(int a, int b) { return a + b; } int f_sub(int a, int b) { return a - b; } int f_mul(int a, int b) { return a * b; } int f_div(int a, int b) { return a / b; } int f_mod(int a, int b) { return a % b; } int f_pow(int a, int b) { return std::pow(a, b); }
int main(void) { int a, b; int r; // Résultats. std::string operateurs { "+-*/%^" }; std::cout << "Entrez le premier nombre "; std::cin >> a; std::cout << "Entrez le second nombre "; std::cin >> b; for(auto op: operateurs) { switch(op) { // Les case sont également en une ligne. case '+': r = f_add(a, b); break; case '-': r = f_sub(a, b); break; case '*': r = f_mul(a, b); break; case '/': r = f_div(a, b); break; case '%': r = f_mod(a, b); break; case '^': r = f_pow(a, b); break; } std::cout << a << op << b << "=" << r << std::endl; } return 0; }
-
J'ai inclus ce petit programme de 3 lignes qui en génère 12. Je n'ai qu'à modifier manuellement la fonction f_pow et le tour est joué!
C'est ça la vraie paresse ...
t="add + sub - mul * div / mod % pow ^".split() for i in range(0, len(t), 2): print(f"int f_{t[i]}(int a, int b)", "{ return a", t[i+1], "b; }") for i in range(0, len(t), 2): print(f"{' ':12}case '{t[i+1]}': r = f_{t[i]}(a, b); break;")
- Edité par PierrotLeFou 24 mai 2023 à 3:43:26
Le Tout est souvent plus grand que la somme de ses parties.
Merci mais j’avais déjà fini mon repas .
Merci aussi pour le code mais j’avais déjà fini mon Tp, mon travail se trouve dans la machine mais ce dernier temps ma connexion est difficile c’est pour cela que je ne vous ai Pas envoyé le code .
Les fonctions en c++
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.