Petit programme en Octave
Discutez d'informatique ici !
-
FunkyAnts
- Membre Naturel
- Messages: 77
- Enregistré le: 07 Jan 2014, 19:08
-
par FunkyAnts » 14 Juin 2014, 16:32
Bonjour, je sollicite votre aide car je bloque dans la rédaction d'un programme en Octave.
Voici l'énoncé : Ecrire un programme en Octave qui demande un entier à l'utilisateur, puis qui calcule et affiche la factorielle de cet entier.
Voici ce que j'ai fait et qui ne fonctionne pas évidemment :hum:
A=input('Entrez un entier :');
P=A;
while (B != 0 )
B=A-1;
P=A*(B);
endwhile
disp(P)
:help:
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 14 Juin 2014, 16:46
hello,
cet exercice se prete bien au pseudo code. donc commence par ecrire du pseudo code.
Si tu veux troller, tu peux utiliser factorial(A) qui te retourne la factorielle de A :ptdr:
la vie est une fête

-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 14 Juin 2014, 16:47
Bonjour,
Pour vérifier ce qui ne fonctionne pas. Essaye dexécuter ton code sur une feuille de papier avec par exemple A = 4. Cela te permettra de comprendre ce qui ne va pas dans ton code.
-
lulubibi28
- Membre Relatif
- Messages: 240
- Enregistré le: 10 Nov 2013, 11:18
-
par lulubibi28 » 14 Juin 2014, 17:20
Tu pourrais trouver pleins de code qui remplissent le boulot sur Google :ptdr: ...
-
FunkyAnts
- Membre Naturel
- Messages: 77
- Enregistré le: 07 Jan 2014, 19:08
-
par FunkyAnts » 15 Juin 2014, 14:15
Bonjour,
je n'arrive pas à voir où ça cloche :hein:
ps: de quoi parles-tu lulubibi28 ?
-
lulubibi28
- Membre Relatif
- Messages: 240
- Enregistré le: 10 Nov 2013, 11:18
-
par lulubibi28 » 15 Juin 2014, 14:41
FunkyAnts a écrit:Bonjour,
je n'arrive pas à voir où ça cloche :hein:
ps: de quoi parles-tu lulubibi28 ?
Rien , je rigole (c'est juste une rhétorique assez connue ^^)
-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 15 Juin 2014, 15:32
Je connais pas Octave, mais à mon avis, faire une boucle avec dans sa condition une variable qui n'a pas encore été déclaré ça risque pas de marcher^^
Il manque au moins une initialisation.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
FunkyAnts
- Membre Naturel
- Messages: 77
- Enregistré le: 07 Jan 2014, 19:08
-
par FunkyAnts » 15 Juin 2014, 16:45
A=input('Entrez un entier:');
P=0;
while ((A-1)!=0)
P=A*(A-1);
endwhile
disp(P)
J'initialise mais cela ne fonctionne tjrs pas.
-
joel76
- Membre Relatif
- Messages: 230
- Enregistré le: 11 Fév 2013, 15:31
-
par joel76 » 15 Juin 2014, 18:58
Pose-toi ces questions :
Quand est-ce que je sors de la boucle ?
Qu'elle est la valeur de A à l'entrée du premier tour de boucle ?
Quelle est la valeur de A à l'entrée du deuxième tour de boule ?
Que dois-je faire pour que ça change ?
-
FunkyAnts
- Membre Naturel
- Messages: 77
- Enregistré le: 07 Jan 2014, 19:08
-
par FunkyAnts » 16 Juin 2014, 14:28
C'est bon, problème résolu :
A=input('Entrez un entier:');
P=1;
while (A-1 != 0)
P=P*A
A=A-1;
endwhile
disp(P)
Merci pour votre aide.
-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 16 Juin 2014, 23:28
FunkyAnts a écrit:C'est bon, problème résolu :
A=input('Entrez un entier:');
P=1;
while (A-1 != 0)
P=P*A
A=A-1;
endwhile
disp(P)
Merci pour votre aide.
Tu es sur ? Il se passe quoi si A=-1 par exemple ?
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
FunkyAnts
- Membre Naturel
- Messages: 77
- Enregistré le: 07 Jan 2014, 19:08
-
par FunkyAnts » 17 Juin 2014, 07:50
En fait, t'as raison il ne fonctionne que partiellement :
pas si l'on donne un nombre décimal ou un nombre entier négatif !
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 17 Juin 2014, 07:55
Rockleader a écrit:Tu es sur ? Il se passe quoi si A=-1 par exemple ?
En même temps, que dire d'une factorielle d'un nombre négatif ou d'un nombre décimal ?
-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 17 Juin 2014, 10:27
ampholyte a écrit:En même temps, que dire d'une factorielle d'un nombre négatif ou d'un nombre décimal ?
J'entends bien^^
Juste pour faire remarquer que l'utilisateur si tu lui dis entrer un entier il entrera pas forcement un entier positif
SI c'est juste un truc perso comme ça c'est bon tu sauras t'en servir, mais si c'est un taf à faire moi j'aurais rajouté une boucle sur A tant qu'il nest pas positif
truc du style
A=-1
while(A<0)
demander A
end while
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
joel76
- Membre Relatif
- Messages: 230
- Enregistré le: 11 Fév 2013, 15:31
-
par joel76 » 17 Juin 2014, 11:31
C'est tout le problème de la saisie "humaine" des données !
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 17 Juin 2014, 15:11
Tu es sur ? Il se passe quoi si A=-1 par exemple ?
ahah, Rockleader a choisi son
école
la vie est une fête

-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 17 Juin 2014, 16:30
fatal_error a écrit:ahah, Rockleader a choisi son
école
Ahah c'est vieux ça =) enfin pas si vieux que ça quand j'y repense.
N'empêche c'est en codant qu'on prend de bonnes habitudes

Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 17 Juin 2014, 22:24
Rockleader a écrit:Ahah c'est vieux ça =) enfin pas si vieux que ça quand j'y repense.
N'empêche c'est en codant qu'on prend de bonnes habitudes

Tout à fait à condition d'avoir eu des règles lors de l'apprentissage. Quand je lis des vieux codes C de collègue, je m'arrache souvent les cheveux sur des codes très mal indentés et non commentés.
-
joel76
- Membre Relatif
- Messages: 230
- Enregistré le: 11 Fév 2013, 15:31
-
par joel76 » 18 Juin 2014, 08:48
-
lulubibi28
- Membre Relatif
- Messages: 240
- Enregistré le: 10 Nov 2013, 11:18
-
par lulubibi28 » 18 Juin 2014, 11:02
PS : le langage C n'est pas évident à saisir (enfin les algos ) donc @FunkyAnts faut apprendre aussi "à buter" les codes ... ^^
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités