Maple :=création d'un "9" de dimension "n"
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Maple :=création d'un "9" de dimension "n"



  1. #1
    invitee740c5d3

    Lightbulb Maple :=création d'un "9" de dimension "n"


    ------

    Bonjour, j'essaye de résoudre un exercice me demandant d'afficher un 9 de dimension "n" avec un caractère (ici "o") servant de "pixel"
    Je dois utiliser des boucles ( c'est la consigne )

    représentation :

    oooo
    o__o
    o__o
    oooo
    ___o
    ___o
    ___o
    Voilà ce que j'ai fais, mais ca ne fonctionne pas

    restart;
    > etoile := `o` ;
    espace := ` ` ;

    > Neuf :=proc(n, etoile)
    local ligne, colonne, m, buff:
    buff=`buff`:
    n=m :
    for ligne from 1 to m do buff :=` `:
    for colonne from 1 to m do buff:= cat(buff, etoile):
    If : m:=2 then for colonne from 1 to m by m-1 do buff:= cat(buff, etoile) else espace; od; end if;
    If : m:=m-1 then for colonne from 1 to m by m-1 do buff:= cat(buff, etoile) else espace; od; end if;
    od:
    od:
    for ligne from (m+1) to (2m-1) do buff :=` `:
    for colonne m do buff:= cat(buff, etoile):
    for colonne 1 to m-1 do buff:= cat(buff, espace):
    od:
    od:
    print (buff);
    od:
    end proc:
    Error, reserved word `then` unexpected

    > Neuf(3, etoile);

    -----

  2. #2
    NicoEnac

    Re : Maple :=création d'un "9" de dimension "n"

    Bonjour,
    Citation Envoyé par gwenatoo Voir le message
    > Neuf :=proc(n, etoile)
    local ligne, colonne, m, buff:
    buff=`buff`:
    n=m :
    Pourquoi "n=m" et pas "m=n" ? n est paramètre de la fonction tandis que m est une variable locale...

    Ensuite, précise ce que tu entends par "de dimension n". n est-il la largeur de ton neuf en nombre de "etoile" ?
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  3. #3
    invite14e03d2a

    Re : Maple :=création d'un "9" de dimension "n"

    D'après le message d'erreur, le problème est dans une structure "if... then...fi"

    C'est en recopiant que tu as mis un I majuscule à tes "If"? Parce que la syntaxe Maple est "if" sans majuscule.

  4. #4
    NicoEnac

    Re : Maple :=création d'un "9" de dimension "n"

    Re,

    Ton algorithme ne fera pas ce que tu souhaites. En effet, d'après ce que j'ai compris, tu construits d'abord le carré de côté n. Mais pour cela, tu remplis chaque ligne avec m caractères "etoile", puis tu distingues les lignes n°2 et l'avant dernière (m-1) pour y mettre des espaces.
    Or tu devrais plutôt faire : pour chaque ligne, tu mets un caractère "etoile" puis m-2 espaces puis un caractères "etoile" sauf pour la première et la dernière pour lesquelles tu mets m caractères "etoile".
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  5. A voir en vidéo sur Futura
  6. #5
    NicoEnac

    Re : Maple :=création d'un "9" de dimension "n"

    Citation Envoyé par gwenatoo Voir le message
    If : m:=2
    If : m:=m-1
    En fait, je crois que tu t'emmêles pinceaux entre les différentes variables. Comment m peut-il être égal à m-1 ? Ne serait-ce pas plutôt If colonne = m-1 ? Ou ligne = m-1 ?
    De plus, tu utilises la variable "colonne" dans 2 boucles for imbriquées ce qui n'est évidemment pas du tout conseillé !
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  7. #6
    invitee740c5d3

    Re : Maple :=création d'un "9" de dimension "n"

    Ok,
    En faite c'est la première fois que l'on fait du maple,

    Je me suis effectivement trompé pour le if (et non pas IF)

    ensuite je me suis trompé aussi pour le m=m-1
    ce serait plutôt ligne=m-1

    Pour finir, je suis obliger de faire des boucles dans les boucles avec colonne ligne m, Mon professeur m'a dit que j'avais compris le gros du problème
    mais qu'il y avait pas mal d'erreurs..

    Je vous remercie pour votre aide!

    J'ai fait le 9 en deux parties principales: la première c'est l'équivalent de la matrice de rang n (ou m)
    et la deuxième c'est celle qui permet de faire la "queue" du neuf
    Si on pouvait déjà réussir par exemple la première partie.
    Après vos corrections je suis à nouveau bloqué au "else"
    Le but étant de mettre des espaces si ca ne respecte pas la condition

    restart;etoile := `o` ;
    > espace := ` ` ;
    >
    > Neuf :=proc(n, etoile)
    > local ligne, colonne, m, buff:
    > buff=`buff`:
    > n=m :
    > for ligne from 1 to m do buff :=` `:
    > for colonne from 1 to m do buff:= cat(buff, etoile):
    > if ligne=2 then for colonne from 1 to m by m-1 do buff:= cat(buff, etoile) else espace; od; end if;
    > if ligne=m-1 then for colonne from 1 to m by m-1 do buff:= cat(buff, etoile) else espace; od; end if;
    > od:
    > od:
    > for ligne from (m+1) to (2m-1) do buff :=` `:
    > for colonne m do buff:= cat(buff, etoile):
    > for colonne 1 to m-1 do buff:= cat(buff, espace):
    > od:
    > od:
    > print (buff);
    > od:
    > end proc:
    Error, reserved word `else` unexpected

    > Neuf(3, etoile);

  8. #7
    invitee740c5d3

    Re : Maple :=création d'un "9" de dimension "n"

    A oui d'accord NICOENAC !!

    Citation Envoyé par NicoEnac Voir le message
    Re,
    Or tu devrais plutôt faire : pour chaque ligne, tu mets un caractère "etoile" puis m-2 espaces puis un caractères "etoile" sauf pour la première et la dernière pour lesquelles tu mets m caractères "etoile".
    Ca ne fera pas un 9 pour n>4 Merci!!!

  9. #8
    invitee740c5d3

    Re : Maple :=création d'un "9" de dimension "n"

    J'en suis là
    ca bloque à la TOUTE FIN
    sur le "end proc:"

    restart;etoile := `o` ;
    > espace := ` ` ;
    >
    > Neuf:=proc(n, etoile)
    > local ligne, colonne, m, buff:
    > buff=`buff`:
    > m=n :
    > for ligne from 1 to 1 do buff :=` `:
    > for colonne from 1 to m do buff:= cat(buff, etoile):
    > od:
    > for ligne from m to m do buff :=` `:
    > for colonne from 1 to m do buff:= cat(buff, etoile):
    > od:
    >
    > for ligne from 2 to m-1 do buff :=` `:
    > for colonne from 1,m do buff:= cat(buff, etoile):
    > od:
    > for ligne from 2 to m-1 do buff:= cat(buff, espace):
    > od:
    > for ligne from (m+1) to (2*m-1) do buff :=` `:
    > for colonne from 1 to m-1 do buff:= cat(buff, espace):
    > for colonne from m to m do buff:= cat(buff, etoile):
    > od:
    > od:
    > print (buff);
    > od:
    > end proc:
    Error, reserved word `proc` unexpected

    > Neuf(3, etoile);

  10. #9
    invitee740c5d3

    Re : Maple :=création d'un "9" de dimension "n"

    Là ca va jusqu'au bout mais rien ne s'affiche

    restart;etoile := `o` ;
    > espace := ` ` ;
    > Neuf:=proc(n,etoile)
    > local ligne, colonne, m, buff:
    > buff=`buff`:
    > m=n :
    > for ligne from 1 to 1 do buff :=` `:
    > for colonne from 1 to m do buff:= cat(buff, etoile):
    > od:
    > for ligne from 2 to m-1 do buff :=` `:
    > for colonne from 1 to 1 do buff:= cat(buff, etoile):
    > od:
    > for colonne from 2 to m-1 do buff:= cat(buff, espace):
    > od:
    > for colonne from m to m do buff:= cat(buff, etoile):
    > od:
    > for ligne from m to m do buff :=` `:
    > for colonne from 1 to m do buff:= cat(buff, etoile):
    > od:
    > for ligne from (m+1) to (2*m)-1 do buff :=` `:
    > for colonne from 1 to m-1 do buff:= cat(buff, espace):
    > for colonne from m to m do buff:= cat(buff, etoile):
    > od:
    > od:
    > print (buff);
    > od:
    > endproc:
    > Neuf(3,etoile);
    >
    Warning, premature end of input

Discussions similaires

  1. "fondamentales", "dures", "molles" ... : comment classer les sciences ?
    Par invite3e35cfa1 dans le forum Epistémologie et Logique (archives)
    Réponses: 13
    Dernier message: 22/04/2017, 23h41
  2. Maple :=création d'un "9" de dimension "n"
    Par invitee740c5d3 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 13/04/2011, 14h02