BonsoirShidate Kunan a écrit:Awé d'accord, mais tu ne m'expliques pas comment je dois l'utiliser ...
Shidate Kunan a écrit:... car 51 n'est pas un carré d'un nombre entier
...car 25 est un carré d'un nombre entier"
en calculant R = V(N) à part on peut même améliorer :paquito a écrit:Sur TI82, ça donne:rompt N
:If INT(V(n))=V(n)
:Thenisp "OUI ON PEUT EN EMPILER",N
:Elseisp "NON"
:End
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 nb_rangée EST_DU_TYPE NOMBRE
4 nb_triangle_dans_1ère_rangée EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 LIRE n
7 SI (floor(sqrt(n))==sqrt(n)) ALORS
8 DEBUT_SI
9 AFFICHER "Pour un nombre entier n égal à "
10 AFFICHER n
11 AFFICHER " , on peut empiler exactement "
12 AFFICHER n
13 AFFICHER " triangles."
14 FIN_SI
15 SINON
16 DEBUT_SINON
17 AFFICHER "On ne peut pas emplier exactement "
18 AFFICHER n
19 AFFICHER " triangles."
20 FIN_SINON
21 nb_rangée PREND_LA_VALEUR n
22 nb_rangée PREND_LA_VALEUR sqrt(n)
23 AFFICHER "Le grand triangle comprend donc "
24 AFFICHER nb_rangée
25 AFFICHER " rangées."
26 nb_rangée PREND_LA_VALEUR nb_rangée-1
27 nb_rangée PREND_LA_VALEUR pow(nb_rangée,2)
28 nb_triangle_dans_1ère_rangée PREND_LA_VALEUR n-nb_rangée
29 AFFICHER "Il y a "
30 AFFICHER nb_triangle_dans_1ère_rangée
31 AFFICHER " dans la première rangée du grand triangle."
32 FIN_ALGORITHME
dans le cas d'une réponse positive, il doit afficher le nombre de triangles que doit comporter la première rangée.
21 nb_rangée PREND_LA_VALEUR n
22 nb_rangée PREND_LA_VALEUR sqrt(n)
On te demande :dans le cas d'une réponse positive, il doit afficher le nombre de triangles que doit comporter la première rangée.
toi tu sors un nombtre pas entier si la réponse est négative. puisque tu fais ce calcul là quelle que soit la réponse.
dans le cas de la réponse négative il ne faut rien sortir du tout.
ensuite il y a pas mal de "lourdeurs" dans le calcul de ce nombre de triangles de la 1ère rangée.
la première affectation ne sert à rien du tout puisque la valeur est immédiatement "écrasée" par autre chose
- Code: Tout sélectionner
21 nb_rangée PREND_LA_VALEUR n
22 nb_rangée PREND_LA_VALEUR sqrt(n)
la suite du calcul me semble bien compliquée car tu devrais déja étudier le problème "mathématiquement " avant d'écrire l'algorithme Si T[n] est le nombre de triangles, T[n] = n² donc tu écris toi que le nombre de triangles de la première rangée est T[n] - T[n-1] c'est juste, mais du coup ça t'oblige à calculer T[n-1] "de façon compliquée" (avec une élévation au carré etc) peut être bien que ce nombre de triangles dans la première rangée est une expression disons beaucoup plus simple directement du nombre de rangées
mathématiquement que vaut n² - (n-1)² ?
déplacer le calcul à l'interrieur d'un SI / SINON précédent ?Shidate Kunan a écrit:Oui, ça je viens de le remarquer à l'instant. J'étais justement en train de chercher comment je peux faire pour changer ça
faux problème. la raison de tes soucis n'était pas làLe soucis, c'est qu'avant que je ne mette cette première affectation, le calcul final avec n et nb_rangée était faussé par les autres valeurs prises. J'ai donc décidé que nb_rangée prendrait la valeur de n pour éviter ce soucis.
Citation:
mathématiquement que vaut n² - (n-1)² ?
et que je ne sais pas trop où tu veux en venir
mathafou a écrit:déplacer le calcul à l'interrieur d'un SI / SINON précédent ?
bref avant d'écrire un algo "dans le langage algobox avec les détails de programmtion", commencer par un algorithme de principe en langage naturel, complet ...
le "bidouillage" d'un programme tout écrit "jusqu'à ce que ça marche" n'est jamais la bonne solution
il faut commencer par réfléchir sérieusemnt au problème avant : quelles sont les opérations qu'il faut faire et quand.
faux problème. la raison de tes soucis n'était pas là
cette ligne là est inutile quand elle est suivie immédiatement de
nb_rangée PREND_LA_VALEUR sqrt(n)
point barre
(il n'en était peut être pas de même avant lorsque ces deux lignes étaient séparées par "des trucs" disparus depuis après "bidouillage", voir remarque précédente)
edit :
à développer cette expression et à la simplifier
n² - (n² -2n + 1) = 2n - 1
le nombre de triangles dans la première rangée est tout simplement 2*nb_rangée - 1
j'ai bien dit un algorithme en langage naturelShidate Kunan a écrit:algorithme écrit sur papier .... Sauf que je n'ai pas encore fait assez d'algorithme pour connaitre toutes les commandes
entrer n
si racine de n est un nombre entier (*)
nb de rangées = racine carrée de n
nb de triangles première rangée = 2*nb de rangées - 1
afficher "oui on peut", nb de rangées, nb de triangles première rangée
sinon
afficher "on ne peut pas"
fin si
fin algo
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 nb_rangée EST_DU_TYPE NOMBRE
4 nb_triangle_dans_1ère_rangée EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 LIRE n
7 SI (floor(sqrt(n))==sqrt(n)) ALORS
8 DEBUT_SI
9 AFFICHER "Pour un nombre entier n égal à "
10 AFFICHER n
11 AFFICHER " , on peut empiler exactement "
12 AFFICHER n
13 AFFICHER " triangles."
14 nb_rangée PREND_LA_VALEUR sqrt(n)
15 AFFICHER "Le grand triangle comprend donc "
16 AFFICHER nb_rangée
17 AFFICHER " rangées."
18 nb_triangle_dans_1ère_rangée PREND_LA_VALEUR 2*nb_rangée-1
19 AFFICHER "Il y a "
20 AFFICHER nb_triangle_dans_1ère_rangée
21 AFFICHER " dans la première rangée du grand triangle."
22 FIN_SI
23 SINON
24 DEBUT_SINON
25 AFFICHER "On ne peut pas emplier exactement "
26 AFFICHER n
27 AFFICHER " triangles."
28 FIN_SINON
29 FIN_ALGORITHME
Shidate Kunan a écrit: j'ai essayé d'utiliser une chaîne pour l'améliorer
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 35 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :