Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1233 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Programme somme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programme somme

n°1989320
belettete
qui ne tête plus :'(
Posté le 01-05-2010 à 11:38:49  profilanswer
 

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 !
 
 
P.S. : j'espère que c'est ici qu'il faut poster, et pas en section aide aux devoirs... (et je précise, c'est une annale, pas un truc que je dois rendre ^^)


---------------
今日事,明日毕
mood
Publicité
Posté le 01-05-2010 à 11:38:49  profilanswer
 

n°1989350
boblenain2​00
Posté le 01-05-2010 à 16:50:06  profilanswer
 

Deja tu devrais initialiser S à 0 sinon t'auras pas ce que tu veux (enfin t'auras la somme + la valeur initiale à cet endroit de la mémoire ...)
 
Le nombre d'instructions est 2 (somme + retour), mais la somme est execute m-n fois .  
 
Après tu peux eviter de te servir de i, puisque il te suffit d'incrementer n jusqu'à <= m .
 
Pour la question sur la "classe de mémorisation", je comprend pas ce que tu veux dire, (enfin plus exactement j'ai peur que tu fasses une confusion avec de la poo)
 
Pour pouvoir inverser, il te suffit de faire une recherche du max des deux avant.

n°1989359
belettete
qui ne tête plus :'(
Posté le 01-05-2010 à 18:04:04  profilanswer
 

Merci pour ta réponse :)
Oui effectivement j'ai oublié d'initialiser s à 0.
Le programme était à trou, donc je pense que j'étais obligée d'introduire i. Mais c'est vrai que c'est pas mal d'incrémenter n !
Je ne sais pas ce que c'est que la poo :( à part la signification en anglais XD
Ensuite pour pouvoir inverser, on me parle de rajouter une instruction, sans variable supplémentaire et sans modifier les autres instructions :s Apparemment c'est spécifique au langage C, mais je vois vraiment pas.
 
Est-ce que la boucle est comptée comme une instruction ? Ou même ce qu'il y a dans la boucle ? Puisque ça finit par un ;
 
Merki encore :)


Message édité par belettete le 01-05-2010 à 18:04:21

---------------
今日事,明日毕
n°1989360
belettete
qui ne tête plus :'(
Posté le 01-05-2010 à 18:06:08  profilanswer
 

Ah vi, est-ce que en C, un booléen vaut 0 ou 1, ou bien est-ce que ce sont des TRUE ou FALSE ?


---------------
今日事,明日毕
n°1989487
boblenain2​00
Posté le 02-05-2010 à 18:40:50  profilanswer
 

Les booléens n'existent que en C99. Donc c'est toi qui choisis comment les représenter.
 
Dans une boucle for, le dernier "argument" (ici i++) est une instruction oui (réécris le avec un while pour compter plus facilement le nombre d'instructions)
 
Est ce que tu peux réexpliquer plus clairement cette phrase : "- est-ce que l'indicateur de classe de mémorisation par défaut pour une variable locale est bien "auto" ? " ????

n°1989489
belettete
qui ne tête plus :'(
Posté le 02-05-2010 à 19:00:50  profilanswer
 

La question exacte c'est "quel est l'indicateur de classe de mémorisation (ici par défaut) de s ?" s, qui est une variable locale

Message cité 1 fois
Message édité par belettete le 02-05-2010 à 19:01:24

---------------
今日事,明日毕
n°1989491
boblenain2​00
Posté le 02-05-2010 à 19:26:25  profilanswer
 

belettete a écrit :

La question exacte c'est "quel est l'indicateur de classe de mémorisation (ici par défaut) de s ?" s, qui est une variable locale


Oui. Sa portée est le bloc au sein duquel elle est déclarée.

n°1989496
belettete
qui ne tête plus :'(
Posté le 02-05-2010 à 20:05:58  profilanswer
 

Yep, mais dans ce cas, l'indicateur c'est quoi (indicateur = static, ou d'autres choses)


---------------
今日事,明日毕

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Programme somme

 

Sujets relatifs
Lire et écrire dans un fichier Excel avec un programme c++Aide pour un programme en C/C++ (compression en rar)
Programme de saisietrouver un programme en c qui lit des codes provenant d'un interface j
[pascal] programme pascal qui transforme "123" en "102030" résoluprogramme c pour entrer un code
Faire une somme en phpCréer un programme de génération de fichiers son
Programme simple vbamodification d'un petit programme
Plus de sujets relatifs à : Programme somme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR