Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

tI 83+

Posté par
Lewandowski
28-05-11 à 16:20

Bonjour je vais aller droit au but comment fait on en algo si ce nombre peut diviser l'autre alors...

Posté par
azalee
re : tI 83+ 28-05-11 à 16:38

peux-tu ête un tout petit peu plus précis(e) !

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 16:41

Oui biensûr alors j'ai un exercice où il faut donner les diviseurs dun nombre N pour ensuite faire un algorithme mais j'ai besoin de savoir si un nombre est divisible par tels nombres. Un exemple Si 6 est divisible par 3 alors ..

Posté par
azalee
re : tI 83+ 28-05-11 à 16:47

a divisible par b si a/b est égal à la partie entière de a/b.
Plus généralement, un nb est entier s'il est égal à sa partie entière

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 16:54

Ok et ensuite donc si je met
For (I,1,N)
If PartEnt(N/I)=N/I
Then
Apres je doit additionner les diviseurs et voir si le nombre N est parfait comment faire ?

Posté par
azalee
re : tI 83+ 28-05-11 à 16:57

tu initialises la somme à 0 avant de rentrer dans la boucle.  et si PartEnt(N/I)=N/I, alors S prend pour valeur S+I

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 16:59

Ah oui ok donc juste après le debut

Posté par
azalee
re : tI 83+ 28-05-11 à 17:01

oui, juste au début du programme

Tout dépend si ton programme teste un nb N ou plusieurs ; il faut réinitialiser S pour chaque nb N

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:04

Oui nan 1 nombre
Merci

Posté par
azalee
re : tI 83+ 28-05-11 à 17:09

de rien
bonne soirée

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:11

J'ai fait l'algorithme mais j'ai l'impression que ça ne continue pas après ça fait que 1 (exemple pour le nombre 6) ça ne le divise pas ensuite par 2,3

Posté par
azalee
re : tI 83+ 28-05-11 à 17:15

donne l'algorithme que tu as écrit

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:17

Input N
For (I,1,N)
O->S
If int(N/I)=N/I
Then
S+I->C
Then
If C=N
EndFor
Disp"Nombre Parfait",N

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:23

Alors je ne vois pas du tout ma faute, normalement...

Posté par
azalee
re : tI 83+ 28-05-11 à 17:25

Citation :
Input N
For (I,1,N)
O->S
If int(N/I)=N/I
Then
S+I->C
Then
S+I->C
Then
If C=N
EndFor
Disp"Nombre Parfait",N


l'initialisation de S doit se faire au début, sinon, pour chaque entier de 1 à N, tu repars d0 S+0

Citation :
S+I->C
je suppose que c'est une faute de frappe, sinon, cela ne servait à rien de prendre une variable S dont tu ne fais rien.
Le deuxième test "If C=N" doit se faire après la boucle, pas dedans ; de plus tu as mis le "then" avant le "if"

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:30

Donc ça donnerait:
Input N
O->S
For (I,1,N)
If int(N/I)=N/I
Then
S+I->S
EndFor
If S=N
Then
Disp "Nombre Parfait",N


c'est ça donc ?

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:32

Je test avec le nombre 6 mais ça me met Done alors que c'est un nombre parfait il y a donc un problème

Posté par
azalee
re : tI 83+ 28-05-11 à 17:36

il ne faut pas une pause à la fin du programme pour l'affichage ?
Sinon, après l'exécution du programme, regarde ce qu'il y a dans la variable S

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:37

Nous n'avons pas appris la fonction "Pause" et ni comment regarder ce qu'il y a dans la variable S mais je ne comprend pas je travaille toute cette aprem' et je ne sais pas du tout où est la faute...

Posté par
azalee
re : tI 83+ 28-05-11 à 17:39

tapes juste S puis entrée

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:40

Je tape S ils me disent parfait ... je suis perdu

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:43

Je sais pas du tout encore en y réfléchissant où est la faute qui pénalise tout l'algorithme..

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:44

Sinon on ne pourrait pas utiliser la fonction While ?

Posté par
azalee
re : tI 83+ 28-05-11 à 17:45

je ne connais pas la TI83, donc je ne peux pas vraiment t'aider.
Mais, qd tu es sorti du programme et que tu tapes S,(au besoin éteins et rallume la calculatrice) il te dis "parfait " ?

Si tu ne trouves pas "pause", tu peux aussi le faire compter jusqu'à 1000 (ou 10 000), le temps que tu voies l'affichage (for k=1 to 1000 endfor)

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:46

Je sais où est la fonction "Pause" mais je ne sais pas à quoi ça sert..

Posté par
azalee
re : tI 83+ 28-05-11 à 17:49

tu mets pause, après le disp, pour que tu aies le temps de lire ce qu'il affiche.
ensuite, tu appuies sur entrée et il continue le programme (qui ici, sera fini)

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:55

Ok dac' j'essaye

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 17:56

ça ne marche toujours pas je met 6 un nombre parfait il me met done et rien ne s'affiche...

Posté par
azalee
re : tI 83+ 28-05-11 à 17:58

et tu as réessayé, en sortant du mode programme, de faire afficher S ?

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:03

Oui et ça me met parfait

Posté par
azalee
re : tI 83+ 28-05-11 à 18:13

je ne comprends pas ; il ne fait qu'une boucle ; si tu lui demande d'afficher I, (en dehors du programme) que trouve-t-il ? 1 ?
sinon, il  faut essayer une autre boucle (tant que I²<N par exemple, en ajoutant 1 à I dans la boucle)

Posté par
azalee
re : tI 83+ 28-05-11 à 18:24

je viens de tester avec algobox et ça marche, SAUF qu'il faut arrêter la boucle à N-1 et non N

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:26

Comment ça ?

Posté par
azalee
re : tI 83+ 28-05-11 à 18:28

sur ma calculatrice, il faut rajouter un end pour le SI

Donc ça donnerait:
Input N
O->S
For (I,1,N)
If int(N/I)=N/I
Then
S+I->S
*******************   ajouter "finsi"  ; endif sur ta calculatrice ?
EndFor
If S=N
Then
Disp "Nombre Parfait",N

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:30

Ok je teste de suite

Posté par
azalee
re : tI 83+ 28-05-11 à 18:30

il faut arrêter à N-1 car N est un diviseur de N et si tu le rajoutes à la somme tu obtiens (dans le cas d'un nb parfait) 2N au lieu de N
essaie avec 6 :
1+2+3+6 !!

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:32

ça me met toujours done .......

Posté par
azalee
re : tI 83+ 28-05-11 à 18:36

et si tu regardes ce qu'il y a dans S et dans I (tjs en dehors du programme)

Posté par
azalee
re : tI 83+ 28-05-11 à 18:37

remplace, dans le programme, disp "parfait" par
disp S
disp I

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:39

Je met aussi disp I ? Pourquoi ?

Posté par
azalee
re : tI 83+ 28-05-11 à 18:43

pour voir s'il fait bien toutes les boucles du "for(I,1,N-1)"  tu l'as bien mis à N-1 ?

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:43

Ah nan pour mettre N-1 ?

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:44

Je suis bête j'ai oublié ça c'etait pourtant évident.. ça marche maintenant

Posté par
azalee
re : tI 83+ 28-05-11 à 18:46

ouf !!
autres questions ?
sinon, bonne soirée, bien méritée

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:51

Je croyais pourtant que je l'avais mis j'ai galérer tout ce temps pour un -1 oublier
En tout cas je te remercie pour ton aide

Posté par
Lewandowski
re : tI 83+ 28-05-11 à 18:51

Non c'est finis les questions :p



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1736 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !