bonjour, j'ai un dm a faire mais j ai un exercice ou je ne comprend pas ,cela fait deux jours que je buche dessus mais je ne sais pas comment faire c'est celui la:
15 | ( on compte en diagonale)
10 |
6 | 11
3 | 7 12
1 | 4 8 13
0 ---------------
0 2 5 9 14
on associe aux points du plan à coordonnées entière et positives un nombre entier de la façon suivante :
au point (0;0) on associe le nombre 0
au point (0;1) on associe le nombre 1
au point (1;0) on associe le nombre 2
au point (0;2) on associe le nombre 3
au point (1;1) on associe le nombre 4 etc...
en continuant ainsi, quel nombre associe t on au points de coordonnées:
a- (4;3) b- (0;10) c- (10;0) d-(0;100) e- (100;0)
FAIRE UN ALGORITHME
merci a ceux qui pourraient m'aider a comment faire l'algorithme
Bonjour,
Plutôt que de te donner une réponse toute faite, je te propose un algorithme qui fait le contraire de ce que tu demandes :
1) l'utilisateur entre un entier n
2) l'algorithme calcule les coordonnées (x, y) correspondant à l'entier n
3) l'algorithme affiche les coordonnées (x, y).
Toi tu veux, si j'ai bien compris, rédiger l'algorithme réciproque : l'utilisateur entre les coordonnées (x,y) d'un point et l'algorithme calcule le nombre entier n qui correspond.
Voici l'algorithme "réciproque" qui te donnera sûrement des idées pour construire ton propre algorithme :
DÉBUT
LIRE n
x = 0
y = 0
k = 0
TANTQUE k < n FAIRE
SI y = 0 ALORS
y = x+1
x = 0
SINON
y = y-1
x = x+1
FINSI
k = k+1
FINTANTQUE
ÉCRIRE x, y
FIN
Cet algorithme est le "pseudo-code" rédigé par le logiciel gratuit "LARP" que je recommande vivement au passage, comme alternative à Algobox dans les classes de lycée
Voici ce même algorithme présenté par Larp sous forme d'organigramme (j'ai triché un peu pour que l'image ne soit pas trop grande) :
merci et sur algobox j ai du mal : quelles sont les variables et comment ecrire les calculs les x=0...
x=0 signifie ici qu'on affecte la valeur 0 à la variable x.
L'affectation sur Algobox est obtenue en cliquant sur le bouton "Affecter valeur à variable". Elle se traduit par "x prend_pour_valeur 0".
Les variables à déclarer sont n, x, y, k. Ce sont des variables de type "nombre" en Algobox.
Encore une fois, l'algorithme que j'ai écrit ne correspond pas à celui que tu cherches. Toi tu dois écrire un algorithme qui demande en entrée x et y et qui affiche en sortie n...
Voici une traduction de mon algorithme sur Algobox :
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 x EST_DU_TYPE NOMBRE
4 y EST_DU_TYPE NOMBRE
5 k EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE n
8 x PREND_LA_VALEUR 0
9 y PREND_LA_VALEUR 0
10 k PREND_LA_VALEUR 0
11 TANT_QUE (k<n) FAIRE
12 DEBUT_TANT_QUE
13 SI (y==0) ALORS
14 DEBUT_SI
15 y PREND_LA_VALEUR x+1
16 x PREND_LA_VALEUR 0
17 FIN_SI
18 SINON
19 DEBUT_SINON
20 y PREND_LA_VALEUR y-1
21 x PREND_LA_VALEUR x+1
22 FIN_SINON
23 k PREND_LA_VALEUR k+1
24 FIN_TANT_QUE
25 AFFICHER "x="
26 AFFICHER x
27 AFFICHER "; y="
28 AFFICHER y
29 FIN_ALGORITHME
merci beaucoup je comprend mieux mais je ne vois vraiment pas se que sa peut me donner pour mon algorithme desoler
Essaie de tester cet algorithme sur Algobox. Par exemple, tu rentres n=13 et l'algorithme affiche x=3; y=1.
Ensuite il te faut décortiquer les étapes pour comprendre comment ça marche.
Enfin, il te restera à écrire l'algorithme "dans l'autre sens", dans lequel en entrée tu pourras saisir x=3 et y=1 et tu obtiendras en sortie n=13...
Dans l'autre sens, il faut entrer x et y.
Ensuite il faut initialiser n à zéro.
Puis, il faut initialiser (a,b) à (0,0) et parcourir dans une boucle le chemin dans le plan jusqu'à ce que (a,b)=(x,y). À chaque passage dans la boucle, il faut augmenter n de 1. Au sortir de la boucle, lorsque (a,b)=(x,y), il suffit d'afficher la valeur de n.
Voici le début du chemin à parcourir :
Je ne veux pas faire l'exercice à ta place. Normalement, en regardant comment est construit le premier algorithme, tu dois pouvoir écrire le second.
Disons que la boucle principale peut s'écrire :
Tant que (ax)ou(b
y)
...
...
Fin tant que
et si je fais cela:
variables: n est du type nombre
x est du type nombre
y est du type nombre
a est du type nombre
b est du type nombre
début algorithme: lire x
lire y
x prend la valeur 1
y prend la valeur 1
tant que (n+1) faire
début tant que
afficher calcul (a,b)=(x,y)
fin tant que
afficher n
fin algorithme
Bon, visiblement, tu n'as pas compris grand chose à toutes mes explications ... alors, voici une solution, mais comme je me refuse de te donner la réponse sous forme algorithmique classique, je te donne la solution sous forme d'organigramme (ou de logigramme si tu préfères). Il faut bien qu'il te reste un peu de travail non ?
Il ne te reste plus qu'à traduire tout ça
ah d accord mais cela me dit: ***Algorithme interrompu ligne 26 : dépassement de la capacité autorisée pour les boucles***
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :