Appel d'une fonction - C++ - Programmation
Marsh Posté le 05-08-2012 à 15:23:25
Ta question me donne l'impression que tu n'as pas cerné exactement l'énoncé. Vraisemblablement, tu voudrais itérer sur tes valeurs à l'extérieur de ta fonction, mais une fonction avec ce prototype a pour rôle d'itérer sur les valeurs.
Marsh Posté le 05-08-2012 à 16:22:57
Une connerie du genre:
Code :
|
ca te convient pas? (en dehors des calculs faitaisistes!)
Marsh Posté le 05-08-2012 à 16:57:15
breizhbugs a écrit : Une connerie du genre:
|
Marsh Posté le 05-08-2012 à 18:00:53
Lu comme ça on dirait presque que tu veux faire une fonction récursive en fait non ?
Marsh Posté le 06-08-2012 à 01:39:01
Non ce n'est pas une fonction récursive.
Je m'explique encore: si j'ai pas exemple un tableau tab de 100 éléments et je veux à chaque appel de ma fonction calculer la somme de 10 éléments de ce tableau c'àd
1/ lors du 1er appel je fais la somme des 10 premiers éléments et j'ai comme valeur de retour cette somme et je sauvegarde dans ptr l'adresse de tab[0]
2/ si je fais un 2eme appel de cette je ferais la somme des 10 deuxièmes éléments (sans avoir à le préciser au complilateur) et j'ai comme valeur de retour cette somme et je sauvegarde dans ptr l'adresse de tab[9]
ainsi de suite
et à partir du 10 ème appel j'afficherai un msg d'erreur.
Marsh Posté le 06-08-2012 à 21:32:26
dans ce cas, il y a deux possibilités :
- utiliser des variables statiques (mais ce n'est pas terrible)
- ajouter des variables de sauvegarde de contexte
Je ne vais donc parler que du deuxième point. Le prototype de la fonction pourrait être :
Code :
|
un exemple d'appel pourrait être le suivant
Code :
|
La fonction va juste contrôler l'état du pointeur à chaque appel pour savoir d' où "repartir". Il faut juste mettre null dans le pointeur quand le tableau a été entièrement traité ou alors sauvegarder le pointeur d'où repartir au prochain appel si il reste des éléments à traiter.
je te laisse chercher un peu pour le code de la fonction
@+
Marsh Posté le 05-08-2012 à 14:10:23
Salut !
J’ai une fonction " int calcul_somme (int * ptr, int nb_el) " et je veux qu’à chaque appel de cette fonction je sauvegarde les valeurs de *ptr et nb_el pour les utiliser lors de l’appel suivant jusqu’à un nombre n d’appels déterminé.
Mais je n’arrive pas à sauvegarder les nouvelles valeurs à chaque appel (à chaque appel la fonction prend les valeurs initiales ) ni à connaître et gérer le nombre d’appel de la fonction.