Algobox soucis programme boucles
Résolu/Fermé
A voir également:
- Algobox soucis programme boucles
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Programme démarrage windows 10 - Guide
12 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
15 sept. 2011 à 22:46
15 sept. 2011 à 22:46
Tu mélanges k et U0. Quand tu calcules U0, U1... Uk... Un, c'est k que tu fais varier de 0 à n, pas Uk ! La formule avec Uk tu l'as c'est Uk+1 = 1/(1+3*Uk) donc tu ne dois pas modifier k, mais Uk au fur et à mesure.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 15/09/2011 à 23:00
Modifié par KX le 15/09/2011 à 23:00
Tu prends une variable Uk qui sera ton résultat final à afficher.
Pour k=0, au tout début donc, tu as Uk=U0=1 au vu de ton problème.
Après pour k qui va de 1 (on a déjà réglé le cas 0) à n, tu fais ton calcul Uk=1/(1+3.Uk) et une fois que tu as égrainé tous les k, tu te retrouves donc avec Un que tu cherchais...
Pour k=0, au tout début donc, tu as Uk=U0=1 au vu de ton problème.
Après pour k qui va de 1 (on a déjà réglé le cas 0) à n, tu fais ton calcul Uk=1/(1+3.Uk) et une fois que tu as égrainé tous les k, tu te retrouves donc avec Un que tu cherchais...
VARIABLES n EST_DU_TYPE NOMBRE k EST_DU_TYPE NOMBRE Uk EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n Uk PREND_LA_VALEUR 1 POUR k ALLANT_DE 1 A n DEBUT_POUR Uk PREND_LA_VALEUR 1/(1+3*Uk) FIN_POUR AFFICHER Uk FIN_ALGORITHMELa confiance n'exclut pas le contrôle
Merci pour cette explication.
Je pense au final que le problème viens de mon logiciel car là en utilisant ce que tu me propose il me donne les mêmes résultats qu'avant (exemple pour n=0 Uk=0.25 au lieu de 1).
Pourrais-tu vérifier si chez toi il fonctionne, histoire de voir si le problème vien de moi (j'utilise Algobox c'est peut-être là le soucis??)
Je pense au final que le problème viens de mon logiciel car là en utilisant ce que tu me propose il me donne les mêmes résultats qu'avant (exemple pour n=0 Uk=0.25 au lieu de 1).
Pourrais-tu vérifier si chez toi il fonctionne, histoire de voir si le problème vien de moi (j'utilise Algobox c'est peut-être là le soucis??)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
15 sept. 2011 à 23:12
15 sept. 2011 à 23:12
Moi je n'ai rien testé du tout, je n'ai pas Algobox, et d'ailleur je ne garantit pas que mon code soit effectivement correct, c'est le principe qui compte ;-)
Si je comprend bien Algobox que je ne connais pas du tout, pour n=0 ta boucle POUR va faire un calcul à reculons pour aller de 1 à 0, tu vas donc faire un calcul et obtenir la valeur de U1=0.25 !
Dans ce cas la boucle TANT_QUE (k<=n) était peut-être plus adapté que la boucle POUR, je te laisse essayer, normalement les premières valeurs sont 1, 0.25, 0.571, 0.368, 0.475... le tout convergeant à l'infini vers (RacineCarré(13)-1)/6 = 0.434258454591...
Si je comprend bien Algobox que je ne connais pas du tout, pour n=0 ta boucle POUR va faire un calcul à reculons pour aller de 1 à 0, tu vas donc faire un calcul et obtenir la valeur de U1=0.25 !
Dans ce cas la boucle TANT_QUE (k<=n) était peut-être plus adapté que la boucle POUR, je te laisse essayer, normalement les premières valeurs sont 1, 0.25, 0.571, 0.368, 0.475... le tout convergeant à l'infini vers (RacineCarré(13)-1)/6 = 0.434258454591...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je précise qu'il arrive a calculer U0=1 (donc n=0) et après il plante comme décrit ci dessus a partir de n=1 donc.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 15/09/2011 à 22:23
Modifié par KX le 15/09/2011 à 22:23
C'est ton programme... k doit être incrémenté de 1 en 1 pour atteindre n, or vu l'affectation que tu lui donnes, k est toujours inférieur à n, donc ton programme ne se termine jamais... enfin si, quand le nombre de boucles autorisées est dépassé !La confiance n'exclut pas le contrôle
Le problème c'est que j'ai fait un autre programme :
VARIABLES
2 n EST_DU_TYPE NOMBRE
3 U0 EST_DU_TYPE NOMBRE
4 k EST_DU_TYPE NOMBRE
5 x EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE n
8 k PREND_LA_VALEUR 1
9 POUR k ALLANT_DE 0 A n
10 DEBUT_POUR
11 x PREND_LA_VALEUR k
12 k PREND_LA_VALEUR 1/(1+3*x)
13 FIN_POUR
14 AFFICHER k
15 FIN_ALGORITHME
Bon au final je crois qu'en fait il me faut une autre variable.
Vous pourriez m'éclaircir?
La il me donne quand n=0 k (donc Un) = 2 au lieu de 1 ^^
VARIABLES
2 n EST_DU_TYPE NOMBRE
3 U0 EST_DU_TYPE NOMBRE
4 k EST_DU_TYPE NOMBRE
5 x EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE n
8 k PREND_LA_VALEUR 1
9 POUR k ALLANT_DE 0 A n
10 DEBUT_POUR
11 x PREND_LA_VALEUR k
12 k PREND_LA_VALEUR 1/(1+3*x)
13 FIN_POUR
14 AFFICHER k
15 FIN_ALGORITHME
Bon au final je crois qu'en fait il me faut une autre variable.
Vous pourriez m'éclaircir?
La il me donne quand n=0 k (donc Un) = 2 au lieu de 1 ^^
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
15 sept. 2011 à 22:34
15 sept. 2011 à 22:34
C'est parce que tu confond k et Un donc pour toi Uk=k ce qui est absurde !
Il ne te faut pas une autre variable, mais juste que tu comprennes à quoi te sert x...
Il ne te faut pas une autre variable, mais juste que tu comprennes à quoi te sert x...
Ben x c'est une mémoire pour permettre de calculer
U0
U1
U2
U3
etc etc
Non?
Il faudrait que je change quoi?
J'ai modifier un peu mais c'est toujours pas ce que je recherche :
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 U0 EST_DU_TYPE NOMBRE
4 k EST_DU_TYPE NOMBRE
5 x EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE n
8 k PREND_LA_VALEUR 1
9 POUR U0 ALLANT_DE 0 A n
10 DEBUT_POUR
11 U0 PREND_LA_VALEUR 0
12 x PREND_LA_VALEUR k
13 k PREND_LA_VALEUR 1/(1+(3*x))
14 FIN_POUR
15 AFFICHER k
16 FIN_ALGORITHME
PS/ les lettre de l'algo ne corresponde a rien c'est juste de variable hein ^^!
U0
U1
U2
U3
etc etc
Non?
Il faudrait que je change quoi?
J'ai modifier un peu mais c'est toujours pas ce que je recherche :
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 U0 EST_DU_TYPE NOMBRE
4 k EST_DU_TYPE NOMBRE
5 x EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE n
8 k PREND_LA_VALEUR 1
9 POUR U0 ALLANT_DE 0 A n
10 DEBUT_POUR
11 U0 PREND_LA_VALEUR 0
12 x PREND_LA_VALEUR k
13 k PREND_LA_VALEUR 1/(1+(3*x))
14 FIN_POUR
15 AFFICHER k
16 FIN_ALGORITHME
PS/ les lettre de l'algo ne corresponde a rien c'est juste de variable hein ^^!
C'est ce que je croyais faire mais au final c'est vrai que c'est stupide ce que je fais.
Le truc c'est que je ne sais pas faire.
Pourrais-tu m'expliquer brièvement? Je me débrouillerais après je penses :) .
Le truc c'est que je ne sais pas faire.
Pourrais-tu m'expliquer brièvement? Je me débrouillerais après je penses :) .