IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres IDE Pascal Discussion :

Dessin d'un carré de x étoiles de côté, x entré par l'utilisateur


Sujet :

Autres IDE Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Dessin d'un carré de x étoiles de côté, x entré par l'utilisateur
    Bonjour tout le monde,

    J'ai récemment débuté en Pascal et j'ai un petit truc à faire mais je cale, j'ai tout essayé mais ça ne marche pas. Le but du programme est que l'utilisateur entre un chiffre et que le programme affiche le carré de ce chiffre en '*'. Exemple :

    L'utilisateur entre 10 , le programme écrit :
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    Donc un carré de 10 sur 10.

    Voici où j'en suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    program lecarre(input,output);
    var a:string;
    var cpt:integer;
    var b:integer;
    begin
    repeat
    a:='*';
    cpt:=0;
    writeln('Entrez un chiffre');
    readln(b);
    readln();
    while cpt<b do
    begin
    writeln(a);
    a:=a * '*';
    inc(cpt);
    end
    until b=0;
    readln;
     
    end.
    Le compilateur me donne l'erreur "Operator is not overloaded" à la ligne "a:=a * '*';"

    Voilà, merci d'avance pour vos réponses.

  2. #2
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Points : 683
    Points
    683
    Par défaut
    Bonsoir,

    Mon pascal remonte à quelques années mais si mes souvenirs sont bons, avec

    Tu multiplies une chaîne de caractères (string) par une autre...
    Si tu veux concaténer tes chaînes, il faut que tu utilises + ou concat()

    J'ai testé ton programme, ça marche pas trop

    A bientôt,
    Alexis
    J'aimerais mieux être le premier dans ce village que le second à Rome. (Caius Julius Caesar)

    J'ai aussi un site sur la Grande Guerre: Histoires de Poilus

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    C'est assez logiquement l'opérateur + qui permet d'ajouter une chaîne à une autre :
    Sans te donner une solution toute faite, voici une piste de réflexion : l'utilisateur a entré un nombre b, qui est à la fois la largeur et la hauteur du carré.
    Donc, tu peux une première fois faire une boucle qui construit une chaîne de b étoiles, puis une seconde boucle qui affiche b fois la chaîne que tu as construite.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Points : 683
    Points
    683
    Par défaut
    Bonsoir,

    J'ai pensé la même chose, mais je pensais pouvoir trouver une solution un peu plus simple.

    A bientôt,
    Alexis
    J'aimerais mieux être le premier dans ce village que le second à Rome. (Caius Julius Caesar)

    J'ai aussi un site sur la Grande Guerre: Histoires de Poilus

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour , merci beaucoup de vos reponses. J'avais finallement trouver le moyen de creer le programme mais j'ai utilisé des commandes que je ne connaissai pas ,je les vu sur un tutoriel puis je les est utilisé mais je ne le connais pas. La commande que je ne comprend pas est le suivant "Inc" . Par example comme dans le programme que j'ai fait "Inc(g)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    Program Devoir (input,output);
    Var t,g,lq: integer;
     
    begin
    writeln( 'Entrez un nombre' );
    readln (lq);{Enregistre la valeur que l'utilisateur a entrer dans la variable "lq"}
    t:=1;{La valeur de t prend "1"}
    While t<=lq do {tant que "t" est plus petit ou egal a "lq" faire:}
          Begin
          g:=1;{g prend la valeur 1}
          While g<=lq do {tant que "g" est plus petit ou egale a "lq" faire }
          Begin
          Write('x');{Ecrire "X"}
          Inc (g);
          End;
          Writeln ;
          Inc(t);
          End;
    Readln;
    end.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Lie,

    Un simple petit (tout petit) programme de test aurait répondu à ta question, il faut savoir se prendre en mains !

    Inc pour incrémente.

    Avec la forme que tu utilises, ça ajoute 1 à la variable passée en argument, une autre forme permet de forcer une autre valeur pour l'incrémentation : Inc(la_variable,increment).
    Si les cons volaient, il ferait nuit à midi.

Discussions similaires

  1. [Turbo Pascal] Fonction qui remplace les caractères entrés par des étoiles (*)
    Par Dr.Mimo dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2012, 21h51
  2. Afficher un carré creux d'étoile !
    Par Bargain dans le forum Débuter
    Réponses: 7
    Dernier message: 15/11/2011, 17h01
  3. Dessiner une spirale carrée
    Par Rekin85 dans le forum Langage
    Réponses: 8
    Dernier message: 18/07/2010, 21h36
  4. Réponses: 4
    Dernier message: 25/07/2007, 10h29
  5. [Débutant] dessiner des carrés
    Par Dark-Lab dans le forum 2D
    Réponses: 13
    Dernier message: 27/08/2004, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo