Bonsoir simplifier une formule

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 07 Nov 2012, 23:50

Archytas a écrit:Non c'est pas encore ça mais ça se rapproche ! Fais le en deux étapes 1) factoriel N et 2) chercher le N à partir duquel N!>100^N
Le problème c'est que tu lui demandes pour 1 à N et il ne sait pas ce que c'est N (après c'est peut être la syntaxe casio j'en sais rien) !

1) Tu cherches A! donc
-Demander A (et on ne touche pas à celui ci cette valeur fera office de limite de ton For)
-Rentrer H=1 (celui ci fera office d'intermédiaire et prendra toutes les valeurs jusqu'à A!)
-Pour N allant de 1 à A (N fais ici office de compteur, c'est aussi un intermédiaire) faire : H prend la valeur H*K (c'est là tout l'interet de la boucle for si tu avais seulement dis H prend la valeur N*(N+1) alors H aurait d'abord valu 1*2 puis 2*3 puis 3*4 etc et il t'aurait afficher (N-1)*N et non 1*2*3*4...) d'où l'interet d'introduire un H)
-Afficher "A!=",H

J'espère avoir été clair dans le détail du programme et que tu as bien compris ! Tu devrais pouvoir l'implémenter sur la caltos pour voir si il marche !

Pour le 2) c'est à toi de me dire ce que tu mets après le Do (; ! Qu'est ce que tu cherches ? Si N!100^N ce qui suppose que tu veux que le programme s'arrete quand cette condition n'est plus réalisée) !

Demander A
H=1
H+1->K
or 1->N to A
H*K->H
"A!=":H
while H<100^N
Do 100^N-H<0
while end
next



Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 00:23

[quote="neordan"]Demander A
H=1
H+1->K
or 1->N to A
H*K->H
"A!=":H
while H15 donc le programme s'arrete et t'affiche K=4 !

Tu devrais avoir directement la notation factorielle ce qui te permet d'écrire plus simplement la condition : voici le chemin pour y accéder sur ta caltos : http://www.commentcamarche.net/forum/affich-6225356-factoriel-avec-casio-graph-35

C'est exactement le même schéma pour ton problème sauf que la condition (fonction booléenne) est différente mais le reste est strictement identique (si tu veux l'essayer tu devrais mettre 2,3 ou 4 voir 5 à la place de 100 parce que la valeur pour 100 est 269 ça veut dire que tu demanderas à la calculatrice de calculer des nombres composés de 270 chiffres ce qu'elle risque de mettre quelques années à faire) !

LeJeu
Membre Irrationnel
Messages: 1141
Enregistré le: 24 Jan 2010, 22:52

par LeJeu » 08 Nov 2012, 08:37

Archytas a écrit:C'est exactement le même schéma pour ton problème sauf que la condition (fonction booléenne) est différente mais le reste est strictement identique (si tu veux l'essayer tu devrais mettre 2,3 ou 4 voir 5 à la place de 100 parce que la valeur pour 100 est 269 ça veut dire que tu demanderas à la calculatrice de calculer des nombres composés de 270 chiffres ce qu'elle risque de mettre quelques années à faire) !


Heureusement on ne demande pas le calcul exact, la machine devrait passer en notation scientifique et réussir le calcul ?
Si ce n'est pas le cas on peut prendre le log et montrer que
log( n!) > log(100^n)
a chaque tour de boucle on ajoute d'un côté log n , de l'autre log 100
on voit bien que la somme des log n rattrapera la somme des log de 100
( le n = 269 annoncé par Archytas)

[edit] - Je dis "on voit bien" mais je l'avais pas vraiment vu en début de post !

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 11:52

LeJeu a écrit:Heureusement on ne demande pas le calcul exact, la machine devrait passer en notation scientifique et réussir le calcul ?
Si ce n'est pas le cas on peut prendre le log et montrer que
log( n!) > log(100^n)
a chaque tour de boucle on ajoute d'un côté log n , de l'autre log 100
on voit bien que la somme des log n rattrapera la somme des log de 100
( le n = 269 annoncé par Archytas)

[edit] - Je dis "on voit bien" mais je l'avais pas vraiment vu en début de post !

Ah oui pas bête du tout le passage au log il passe d'un nombre à 269 chiffres à un nombre à 3 chiffres ce qui est plus supportable pour les caltos (: !

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 16:29

Archytas a écrit:Le problème ici c'est que H te donne A! et donc c'est une constante alors que tu veux qu'un paramètre varie pour ta boucle tant que ! Ensuite ta boucle doit être composée d'une fonction booléenne (une fonction où la réponse est vraie ou faux) ici c'est H15 donc le programme s'arrete et t'affiche K=4 !

Tu devrais avoir directement la notation factorielle ce qui te permet d'écrire plus simplement la condition : voici le chemin pour y accéder sur ta caltos : http://www.commentcamarche.net/forum/affich-6225356-factoriel-avec-casio-graph-35

C'est exactement le même schéma pour ton problème sauf que la condition (fonction booléenne) est différente mais le reste est strictement identique (si tu veux l'essayer tu devrais mettre 2,3 ou 4 voir 5 à la place de 100 parce que la valeur pour 100 est 269 ça veut dire que tu demanderas à la calculatrice de calculer des nombres composés de 270 chiffres ce qu'elle risque de mettre quelques années à faire) !

Demander A
H=1
H+1->K
For 1 -> N To A
H*K -> H
"A!=":H
If HH
While end
If end
Next

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 16:43

neordan a écrit:Demander A
H=1
H+1->K
For 1 -> N To A
H*K -> H
"A!=":H
If HH
While end
If end
Next

Sinon j'ai fait :
demander A
For 1->N to A
If N!<100^N
Then N
If end
Next

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 20:09

neordan a écrit:Sinon j'ai fait :
demander A
For 1->N to A
If N!<100^N
Then N
If end
Next

Tu n'as pas besoin de If ici ! Un simple While suffit !
-K := 1
-While K!<100^K Do
-Afficher "K=",K

C'est tout ni plus ni moins pense toujours avant de faire un programme à où tu veux arriver, pour cela utilise un minimum de variable, ici pour un problème qui semblait compliqué une seule suffit, l'utilisateur n'a rien besoin de rentrer puisque c'est un résultat universel ! Et si possible (comme ici), fais deux programme différents c'est beaucoup plus simple que d'en imbriquer deux ensemble (si tu veux tester ton programme je te conseil de mettre log(K!)<log(100^K) comme l'a très bien conseillé LeJeu le résultat sera le même sinon prend des petites valeurs plutôt que 100 prend 3,4 ou 5 (: )

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 22:21

Archytas a écrit:Tu n'as pas besoin de If ici ! Un simple While suffit !
-K := 1
-While K!<100^K Do
-Afficher "K=",K

C'est tout ni plus ni moins pense toujours avant de faire un programme à où tu veux arriver, pour cela utilise un minimum de variable, ici pour un problème qui semblait compliqué une seule suffit, l'utilisateur n'a rien besoin de rentrer puisque c'est un résultat universel ! Et si possible (comme ici), fais deux programme différents c'est beaucoup plus simple que d'en imbriquer deux ensemble (si tu veux tester ton programme je te conseil de mettre log(K!)<log(100^K) comme l'a très bien conseillé LeJeu le résultat sera le même sinon prend des petites valeurs plutôt que 100 prend 3,4 ou 5 (: )

DO faut le mettre comment parce que ça me met erreur syntaxe n'importe où où je le met !
Et c'est Do log(100^K)-log(K!)<0

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 22:28

neordan a écrit:DO faut le mettre comment parce que ça me met erreur syntaxe n'importe où où je le met !
Et c'est Do log(100^K)-log(K!)<0

Non le do tu le met après
-While log(100^K)-log(K!)<0 Do K:=K+1 !

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 22:34

Archytas a écrit:Non le do tu le met après
-While log(100^K)-log(K!)<0 Do K:=K+1 !

Oui mais lorsque je met Do après le 0 ou quoi ça m'écrit erreur syntaxe quand je lance le programme.

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 22:39

neordan a écrit:Oui mais lorsque je met Do après le 0 ou quoi ça m'écrit erreur syntaxe quand je lance le programme.

Je ne manipule plus de calculatrices mais il me semble qu'il faut que tu ailles à la ligne sur ton programme :
-While condition
-Do action
-End
-End

Essai comme ça !

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 23:00

Archytas a écrit:Je ne manipule plus de calculatrices mais il me semble qu'il faut que tu ailles à la ligne sur ton programme :
-While condition
-Do action
-End
-End

Essai comme ça !

Oui c'était ça ! Je me sens con là xD Je te mets ce que j'ai écrit :
Demander A
For 1->K To A
While log(100^K)-log(K!)K
Afficher K
While end
Next

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 23:04

neordan a écrit:Oui c'était ça ! Je me sens con là xD Je te mets ce que j'ai écrit :
Demander A
For 1->K To A
While log(100^K)-log(K!)K
Afficher K
While end
Next

Il me semble que tu devrais mettre le "Afficher K" après "While end" sinon ta machine va t'afficher K jusqu'au bon K donc 1 , 2 , 3 , etc... Bon et bien on y est arrivé (; ! C'était un exercice à faire en cours ou simplement pour toi ? En tout cas y a du progrés ça se voit !

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 23:08

Archytas a écrit:Il me semble que tu devrais mettre le "Afficher K" après "While end" sinon ta machine va t'afficher K jusqu'au bon K donc 1 , 2 , 3 , etc... Bon et bien on y est arrivé (; ! C'était un exercice à faire en cours ou simplement pour toi ? En tout cas y a du progrés ça se voit !

Je te remercie ! C'est pour les cours. Mais quand je tape A=5 la casio m'affiche en réponse 1 2 3 4 5. c'est pas normal ?

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 23:13

neordan a écrit:Je te remercie ! C'est pour les cours. Mais quand je tape A=5 la casio m'affiche en réponse 1 2 3 4 5. c'est pas normal ?

Oui en fait tu n'as rien à entrer ! Ton programme d'afficheras la liste des entiers de 1 à A et s'arretera avant si ta valeur de N est inférieure à A il faut que tu supprimes ton For et ton demander A tu gardes seulement :
While log(100^K)-log(K!)K
While end
Afficher K
Next
ça devrait suffire ! Ou si comme moi ta machine t'oblige à entrer un argument tu entres n'importe quoi mais tu ne le fais pas intervenir dans ton programme comme apr exemple :
Demander A
While log(100^K)-log(K!)K
While end
Afficher K
Next

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 23:20

Archytas a écrit:Oui en fait tu n'as rien à entrer ! Ton programme d'afficheras la liste des entiers de 1 à A et s'arretera avant si ta valeur de N est inférieure à A il faut que tu supprimes ton For et ton demander A tu gardes seulement :
While log(100^K)-log(K!)K
While end
Afficher K
Next
ça devrait suffire ! Ou si comme moi ta machine t'oblige à entrer un argument tu entres n'importe quoi mais tu ne le fais pas intervenir dans ton programme comme apr exemple :
Demander A
While log(100^K)-log(K!)K
While end
Afficher K
Next

Donc la réponse est 5 ?

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 23:26

neordan a écrit:Donc la réponse est 5 ?

Non je te décris ce que fais ton programme :
-A=5
-K=1
-1!100^K rien de plus donc
-K=1
-While log(K!)<log(100^K)
-K=K+1
-while end
-afficher K

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 23:32

Archytas a écrit:Non je te décris ce que fais ton programme :
-A=5
-K=1
-1!100^K rien de plus donc
-K=1
-While log(K!)<log(100^K)
-K=K+1
-while end
-afficher K

Je comprend pas parce que j'écrit exactement ce que tu viens d'écrire et ça me met erreur math ! :cry:

Archytas
Habitué(e)
Messages: 1223
Enregistré le: 19 Fév 2012, 14:29

par Archytas » 08 Nov 2012, 23:38

neordan a écrit:Je comprend pas parce que j'écrit exactement ce que tu viens d'écrire et ça me met erreur math ! :cry:

Ah... tu n'as pas fais un oubli de "Do" ? "End" ? Parenthèses peut être ?
-K:=1
-While K!<100^K
-Do K:=K+1
-End while
-Afficher K
-End

ça ?

neordan
Membre Naturel
Messages: 66
Enregistré le: 16 Oct 2012, 17:46

par neordan » 08 Nov 2012, 23:40

Archytas a écrit:Ah... tu n'as pas fais un oubli de "Do" ? "End" ? Parenthèses peut être ?
-K:=1
-While K!<100^K
-Do K:=K+1
-End while
-Afficher K
-End

ça ?

Oui ça me met erreur math au niveau de 100^K.

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 62 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite