IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Aide : Boucles d'addition n + (n+1)


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : novembre 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide : Boucles d'addition n + (n+1)
    Bonjour, je voudrais faire une suite arithmétique dans une intervalle allant de 1 à 10 c'est à dire additionner 1+2+3+4+5+6+7+8+9+10 en utilisant des boucles, mais je n'y arrive pas du tout je ne comprends pas les boucles je pense

    PS:
    je suis débutant et cest pour ça que je galere sur un truc aussi simple
    j'ai rajouté les WriteLine pour voir ce que ressortait de ce que j'ai écrit pour comprendre mes erreurs sur la console n'y prêtez pas attention

    Voici le code:
    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
     
    static int CalculSommeEntiers(int premier, int dernier)
     
            {
                int zet = 2;
                int somme = premier + zet;
                for (zet = 2; zet <= 10; zet++, premier++)
                {
                    int v = premier + zet;
                    int somme = v;
                    Console.WriteLine(premier +  " " +  dernier+  " "+  zet + " " + somme);
                    Console.WriteLine(somme + zet + premier);
                }
                Console.WriteLine(somme + zet + premier);
                return somme;
     
     
     
            }
    et Dans la méthode Main j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    static public void Main(string[] args)
            {
                CalculSommeEntiers(1, 10);   
            }

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 552
    Points : 10 779
    Points
    10 779
    Par défaut
    Bonjour,
    Je pense que le mieux quand un code ne fait pas ce qu'on attend de lui est de poser un point d'arrêt, d'avancer pas à pas et de surveiller la valeur des variables.
    En attendant, un début de piste : quand une variable est déclarée dans une boucle, elle est "réinitialisée" à chaque itération.
    Je ne sais pas quel IDE tu utilises, mais je suis étonné que tu n'ais pas d'avertissement sur la ligne 10.
    Accessoirement la variable v ne sert à rien ici, tu peux affecter directement premier + zet à somme.
    Et dernier n'est jamais utilisé.

    Mais surtout ton code est inutilement compliqué, une simple boucle avec un compteur (qui va de début à fin), une addition dedans et c'est terminé.
    9 lignes de code en tout avec les accolades.

    Tatayo.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : novembre 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'entends mais c'est surtout que cest pas évident pour moi quoi, je débute le code cest vraiment un monde à part donc oui c'est un truc simple mais pas pour moi.
    J'ai beau avoir relu mille fois ça m'a pris beaucoup d'heures mais je galère toujours j'arrive pas à savoir pourquoi le code est faux quoi, pourquoi ca marche pas et comment l'améliorer, bien évidemment j'aurais juste pu faire la formule qui Sn = nombre de termes * (premier terme + dernier terme)/2 mais je dois utiliser les boucles (histoire de m'améliorer) mais je vois bien que je galère quoi j'ai essayé de faire une liste et tout mais déjà j'arrive même pas à en créer une genre List<int> machin là ça marche meme pas je sais pas pourquoi du coup je pense quil faut faire une liste allant de 1 à 10 et faire en sorte que ça additionne toutes les valeurs de la liste, mais quand on a beaucoup de valeurs dans la liste on fait comment? on les écrit pas toutes quand meme? ya pas un système d'intervalles du genre [1;100]?

  4. #4
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    janvier 2014
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2014
    Messages : 529
    Points : 1 832
    Points
    1 832
    Par défaut
    Bonsoir,

    En effet comme dit tatayo, c'est très compliqué pour rien et comme tu dis toi, je pense que tu as mal compris les boucles. Car le code final de ta méthode ne contient en fin de compte qu'une seule boucle et la déclaration d'une variable somme.

    Voici le code en pseudo-algo :

    - Je déclare une variable somme.
    - Je déclare une boucle for avec une variable i, dont la valeur initiale est premier et dont la condition d'arrêt est supérieur ou égale à dernier, j'incrémente i de 1 à chaque tour de boucle.
    - Je rajoute i à somme pour autant de tour de boucle.
    - Je retourne somme.
    Un petit rappel si jamais => ici

    En ce qui concerne les List, c'est un moyen de garder en mémoire une collection non finie de variables / d'objets (comme les tableaux, sauf que eux sont finis), pas besoin d'en utiliser ici. Les autres problèmes que tu décris et bien sont évités par l'utilisation d'une boucle justement.
    Keep calm and debug it

  5. #5
    Membre expert
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    1 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 1 739
    Points : 3 249
    Points
    3 249
    Par défaut
    Il y a plusieurs problèmes à ton code.

    1.
    La ligne "int zet = 2;" ne sert à rien puisque tu la remplace immédiatement dans la boucle.

    2.
    La somme doit être initialisée à 0.
    Donc il faut écrire "int somme = 0;"
    Sinon tu fausses ton calcul.

    3.
    La boucle doit commencer à "premier" et se terminer à "dernier"
    Et il n'est pas nécessaire d'incrémenter "premier" puisque tu incrémentes déjà "zet" qui au passage va te servir pour calculer la somme.
    Donc " for (zet = premier; zet <= dernier; zet++)"

    Ensuite comme dit PixelJuice, il suffit d'ajouter "zet" à "somme" à l'intérieur de la boucle.
    C'est d'ailleurs la seul chose à faire dans la boucle.

  6. #6
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    juin 2007
    Messages
    850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : juin 2007
    Messages : 850
    Points : 1 820
    Points
    1 820
    Par défaut
    Ça veut dire quoi : "zet" ?

  7. #7
    Membre expert
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    1 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 1 739
    Points : 3 249
    Points
    3 249
    Par défaut
    Google Trad en détection automatique de la langue me met "zet" = "bouge toi" en Néerlandais.
    J'ai supposé que ça avait une signification pour l'auteur alors je l'ai laissé.

  8. #8
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 4 057
    Points : 7 273
    Points
    7 273
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Noxen Voir le message
    Ça veut dire quoi : "zet" ?
    Intuitivement j'ai pensé à Zeta, et certaines formules qu'on trouve sur wiki me confortent dans ce sens...
    https://fr.wikipedia.org/wiki/Foncti...Ata_de_Riemann







    Y'a un truc avec les sommes de nombres consécutifs !
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Membre expert
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    1 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 1 739
    Points : 3 249
    Points
    3 249
    Par défaut
    Si c'est bien cette fonction que Nyudz veux calculer, alors son expression de besoin initiale est loin de le refléter.
    Il va falloir attendre qu'il revienne pour le savoir.

    En tout cas, j'aurais appris quelque chose aujourd'hui...

  10. #10
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    juin 2007
    Messages
    850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : juin 2007
    Messages : 850
    Points : 1 820
    Points
    1 820
    Par défaut
    Citation Envoyé par popo Voir le message
    Google Trad en détection automatique de la langue me met "zet" = "bouge toi" en Néerlandais.
    J'ai supposé que ça avait une signification pour l'auteur alors je l'ai laissé.
    En fait c'est à l'auteur du post que je posais la question, c'est assez incongru comme terme. Il est tout-à-fait normal que tu aies conservé les noms de variable qu'il avait utilisé.

Discussions similaires

  1. Aide boucle for avec condition
    Par guigui33 dans le forum Images
    Réponses: 1
    Dernier message: 06/03/2008, 20h59
  2. besoin d'aide boucle if
    Par jérémy1664 dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 11/01/2008, 11h58
  3. [Débutant] Besoin d'aide boucle multiple
    Par Flaherty Mc Coillean dans le forum MATLAB
    Réponses: 1
    Dernier message: 13/12/2007, 17h48
  4. [VBA-E]Boucle pour addition?
    Par LouBoulpi dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/02/2006, 20h50
  5. Aide pour débutant : addition
    Par playentry dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/03/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo