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 :

Questions sur un programme de somme


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut Questions sur un programme de somme
    Bonjour,

    Bon ça peut paraître vraiment bête comme questions, mais j'suis pas informaticienne de formation...

    On a un programme :

    int somme(int n, int m){
    int s ..., ... ;
    for (...) ... ;
    return ... ;
    }

    qui retourne la somme des entiers compris entre n et m.

    - quel est le nombre d'instructions ? Je dirais 3, mais je ne suis pas sûre
    - si on suppose que n<m, compléter.
    Alors j'ai beaucoup de mal quant à la disposition des points des "trous" : j'aurais mis
    int s, i ;
    for (i=n; i<=m; i++) s+=i ;
    return s ;
    dans le corps de la fonction

    mais justement dans la première ligne, ça ne correspond pas au "trou". Suis-je partie sur la mauvaise piste ?

    - quelles sont les variables locales ? s et i, non ?
    - est-ce que l'indicateur de classe de mémorisation par défaut pour une variable locale est bien "auto" ?
    - est-ce que c'est possible de le remplacer par static pour la variable s ? A mon avis oui, mais je ne sais pas quoi dire quand on demande ce que ça change pour la suite...
    - quelle instruction rajouter pour que la fonction soit commutative ? En d'autres termes, quelle ligne rajouter pour que le programme soit valable, que n soit inférieur ou supérieur à m ?

    Ca fait beaucoup de questions, mais si vous pouvez m'aider sur seulement quelques-unes d'entre elles, ça m'aidera déjà pas mal...


    Merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Un petit tour par la FAQ C ou les tutoriels pour apprendre le C répondra à toutes tes questions ! Je te rajoute deux questions qui te mettront sur la piste: quelle est la valeur de s avant qu'elle ne rentre dans la boucle for ? La boucle for est.elle une instruction, ou plusieurs?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut
    Bonjour,

    Oh boudiou !!! Je viens de comprendre, faut initialiser s -____- dsl ça c'est de l'inattention pure

    Pour le fait de mettre static, je ne vois pas comment formuler ce que ça change. En gros : "si on appelle une fois la fonction somme, la variable s sera définie tout au long du reste du programme". C'est bon de dire ça comme ça ?

    Pour les instructions, j'ai du mal. J'ai lu qu'un bloc d'instructions est lui-même une instruction. Ah, faut-il compter ce qu'il y a à l'intérieur ? i=n; i<=m; i++ ça fait trois instructions ? Faut-il compter i++ comme une instruction, même si ça ne se finit pas par un ; ?
    Donc ça ferait 6 en tout ?

    En fait, j'avais juste besoin d'être rassurée sur toutes les questions (sauf la dernière), merci beaucoup lol!

    Par contre pour la dernière question, pour rendre la somme commutative, I'm drawing a blank :s (je veux même pas la solution, juste une piste ou un indice )

    Encore merci !

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    la variable s ne doit pas être static. Cela empêcherait la réentrance ou le multi thread sur cette fonction.

    Essaye d'imagine avec "s static" ce que donnerait le résultat de :
    somme(somme(0,4), somme(20,25))
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut
    Ok, ça j'ai compris. C'était tout bête en fait ! merci

Discussions similaires

  1. question sur un programme
    Par salseropom dans le forum C
    Réponses: 0
    Dernier message: 19/11/2007, 16h08
  2. question sur mon programme
    Par PHPkoala dans le forum Réseau
    Réponses: 5
    Dernier message: 01/06/2007, 23h40
  3. question sur le programme eclipse
    Par jayjay.f dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 24/02/2007, 00h43
  4. Questions sur la programmation objet en Delphi
    Par Manopower dans le forum Débuter
    Réponses: 20
    Dernier message: 15/06/2005, 15h39
  5. Questions sur la programmation Api de windows
    Par ApolloCrid dans le forum MFC
    Réponses: 7
    Dernier message: 22/02/2004, 01h43

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