Probleme avec les fonctions

Fermé
curunir - 27 févr. 2007 à 19:24
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 - 2 mars 2007 à 09:33
j ai du mal avec les parametre des fonction si vous pouviez m expliquez
merci

2 réponses

ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
27 févr. 2007 à 22:58
Bonjour,

Il faudrait connaitre quelques précisions comme le langage....

En C par exemple :
int bonjour(int b) {
b++;
return b;
}


Si tu appelle bonjour(4) alors 4 est recopié dans b.
Attention ce mécanisme est bien une recopie par valeur. Ex :
void echanger(int a,int b) {
int c;
c=a;
a=b;
b=c;
}
int main(void) {
int a,b;
a=1;
b=2;
echanger(a,b) 
return 0;
}

En fin de compte a vaut toujours 1 et b toujours 2 !

Je ne pense pas que ce soit explicable en détail ici, mais tu trouvera plein de tutoriels sur le net.
Un que je trouve sympa : https://openclassrooms.com/fr/courses
(pour du C)
0
Bonsoir,

Merci de m'eclairer ds le bon sens,mais le probleme que j'ai en fait est de savoir comment je vais poser pour que je puisse avoir:
ax+a exp2*x exp2+................+a exp10*x exp10
(les exposant au dessus de a et x vont successivement de 1 a 10)
Avec a=2 et x=3 ,en calculant la reponse de cette equation doit etre 6+36+216+1296+7776+46656+279936+1679616+10077696+
60466176=72559410
Ce qui me complique c'est d'inclure ces exposants ds mon raisonement sans recourir a l'expression pow(a,x) mais par "i++".
P.S:Hier soir apres l'envoi de l'exercice je me suis rendu compte que les exposants se sont deplaces des a et x,c'est ce qui a rendu peut-etre ma question incomprehensible,raison pour laquelle j'ai ecrit les exposants en lettres au lieu de chiffres,donc je presente mes execuses.
Une logique qui se presente ds ces calculs d'en haut est que pour avoir le nombre suivant il faut multiplier par 6 le precedent.

Merci encore de votre temps que vous consacrez a ces exercices.

M.Tharc
0
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342 > MUTHA
2 mars 2007 à 02:19
Re bonsoir,
Voila, je pense que c'est ça. Je ne te garantis pas que ça marche.
int puissance(int a, int n) {
  int resultat;

  if (n>0) {
    for (i=0;i<n;i++) {
      resultat=a*puissance(a,n-1);
    }
    return resultat;
  }
  else {
    return 1;
  }
}



int calculer(int a, int n) {
  int i;
  int resultat;
  const int x=3;

  resultat=0;
  for (i=0;i<n;i++) {
    resultat+=puissance(a*x,i);
  }
  return resultat;
}
0
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342 > ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014
2 mars 2007 à 09:33
Petites corrections :)

int puissance(int a, int n) {
  int resultat;
  int i;

  if (n>0) {
    for (i=0;i<n;i++) {
      resultat=a*puissance(a,n-1);
    }
    return resultat;
  }
  else {
    return 1;
  }
}



int calculer(int a, int x, int n) {
  int i;
  int resultat;

  resultat=0;
  for (i=0;i<n;i++) {
    resultat+=puissance(a*x,i);
  }
  return resultat;
}

C'est juste en relisant ton problème que j'avais vu que tu ne donnais qu'un exemple pour x=3.
0
mounir234 Messages postés 174 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 1 mars 2016 12
1 mars 2007 à 00:44
oui bon ba pour la structure des fonctions c :

EN LANGUAGE C :

type nom_de_fonction(parametres) {
variable locale ;
traitement de la fonction;
return (variable de sortie );
}

pour "type" c le type de la sortie de la fonction càd le type de la variable de sortie.
pour "parametres" tu doit ecrire le type des variable d'entrer de cette fonction ainci que leurs noms.
pour "variable locale" tu doit declarer toutes les variables que tu va utiliser dans la fonction.
si ta fonction n'a pas de parametres on ecris (void) et si elle n'a pas de sortie on ecris void aussi
example 1 :
int example(int a,float b){
float c;
c=a+b;
return(c);
}
example 2 :
void main (void){
printf("slt curunir");
}
si tu n'a pas compris qq chose , fait moi savoir.
et bon courage.
0