Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

algorithme

Posté par
lolotep
08-11-13 à 23:07

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

Posté par
patrice rabiller
re : algorithme 09-11-13 à 07:00

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) :

algorithme

Posté par
lolotep
algorithme 09-11-13 à 20:24

merci beaucoup mais n et k correspondent a quoi

Posté par
lolotep
algorithme 10-11-13 à 11:21

quelqu'un pourrait m'aider ses urgent sil vous plait

Posté par
patrice rabiller
re : algorithme 10-11-13 à 11:24

Citation :
n et k correspondent a quoi ?


Dans l'algorithme que je t'ai proposé, n est un entier entré par l'utilisateur. L'algorithme calcule et affiche les coordonnées (x,y) du point correspondant à n.
k est un entier qui parcourt tous les entiers de 0 jusqu'à n.

Posté par
lolotep
algorithme 10-11-13 à 11:49

merci et sur algobox j ai du mal : quelles sont les variables et comment ecrire les calculs les x=0...

Posté par
patrice rabiller
re : algorithme 10-11-13 à 11:59

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...

Posté par
lolotep
algorithme 10-11-13 à 12:06

ah bon , je ai donc pas compris et je n arrive pas a le faire sur algobox

Posté par
patrice rabiller
re : algorithme 10-11-13 à 12:11

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

Posté par
lolotep
algorithme 10-11-13 à 12:48

merci beaucoup je comprend mieux mais je ne vois vraiment pas se que sa peut me donner pour mon algorithme desoler

Posté par
patrice rabiller
re : algorithme 10-11-13 à 13:05

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...

Posté par
lolotep
algorithme 10-11-13 à 13:41

je l ai fait c'est bon mais dans l autre sens j ai un peu de mal car je ne trouve pas

Posté par
patrice rabiller
re : algorithme 10-11-13 à 14:08

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 :

algorithme

Posté par
lolotep
algorithme 10-11-13 à 14:26

bien résumé mais dans l algorithme comment l écrire

Posté par
patrice rabiller
re : algorithme 10-11-13 à 14:44

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(by)
...
...
Fin tant que

Posté par
lolotep
algorithme 11-11-13 à 10:47

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

Posté par
lolotep
algorithme 11-11-13 à 11:26

est ce que c'est cela ?

Posté par
lolotep
algorithme 11-11-13 à 12:16

aider moi sil vous plait ses pour demain et je n ai toujours pas compris la solution

Posté par
patrice rabiller
re : algorithme 11-11-13 à 14:16

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

algorithme

Posté par
lolotep
algorithme 11-11-13 à 17:59

ah merci beaucoup maintenant je vais essayer de trouver du premier coup

Posté par
lolotep
algorithme 11-11-13 à 18:27

j ai un petit soucis, sur algobox ou se trouve le "sinon"

Posté par
lolotep
algorithme 11-11-13 à 18:45

cela ne marche pourtant pas

algorithme

algorithme

Posté par
patrice rabiller
re : algorithme 11-11-13 à 18:45

Il faut cliquer sur "si...alors" puis cocher la case "ajouter sinon" ...

Posté par
patrice rabiller
re : algorithme 11-11-13 à 18:48

Pour indiquer "a différent de x" il faut écrire a!=x avec Algobox ...

Posté par
lolotep
algorithme 11-11-13 à 20:37

ah d accord mais cela me dit: ***Algorithme interrompu ligne 26 : dépassement de la capacité autorisée pour les boucles***

Posté par
lolotep
algorithme 11-11-13 à 20:57

pourquoi cela ne marche pas ?

Posté par
lolotep
algorithme 11-11-13 à 21:53

est ce un probleme avec mon logiciel ou avec mon programme?

Posté par
patrice rabiller
re : algorithme 12-11-13 à 04:29

Il faut lire le mode d'emploi d'Algobox ! L'instruction Si (b=0) Alors doit s'écrire Si (b==0) Alors...
Je sais que ça paraît bizarre d'écrire "==" au lieu de "=" mais cela vient du fait qu'Algobox a sans doute été écrit dans un langage qui dérive du langage C (Java ou Python par exemple).



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 1730 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 !