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

Pascal Discussion :

Programme qui affiche un quadrilatère droit


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Par défaut Programme qui affiche un quadrilatère droit
    Comment faire un programme en Pascal qui considère en entrée un entier non nul L et qui affiche en sortie un quadrilatère droit dont les côtés sont de longueur L caractères.

    Je sais qu'il faut utiliser les boucles mais je suis bloqué.
    (pour l'info jvé faire dodo donc je verrai les reponses demain aurevoir)

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Par défaut
    Bonjour (oui ça va de soit)

    je ne pense pas qu'on va te faire ton programme pendant que toi tu dors... si tu ne nous en dis pas un peu plus et notamment où tu bloques (un peu plus précisement..)
    Ne pourrais-tu pas nous donner le code de ce que tu as dejà fait (là ou tu es en panne ?)


    voilà bonne journée.

    JoseF

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Par défaut
    Bonjour
    Ok c'était une façon de parler.
    Sinon, quand je le fais j'ai des problèmes d'alignement des caractères, mon rectangle obtenu à l'écran n'est pas en phase, les arêtes sont décalées.

  4. #4
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    bonjour pourquoi tu hesites a nous montrer ce queut as deja fait pour qu'on voit,
    je pense qu'il suffit de revoir ton algo de revoir tes boucles et tes affichages,
    est ce que tu veux c'est ça?
    lire un entier
    exemple L=4
    et on obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                      aaaa
                      a  a
                      a  a
                      aaaa
    ce que tu veux obtenir?
    pour commencer montre ce que tu as de ja fait
    on vera

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Par défaut
    ok, et c'est exactement ceci que je veux obtenir pour l'info. Voilà ce que j'ai fait, j'obtiens ainsi 2 côtés du rectangle mais mon souci c'est que lorsque je répète l'opération pour obtenir les 2 autres, tout est décalé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var n,i,long : integer;
    begin
    write('donner n');readln(n);
    i:=1;
    while i<=n do begin
    writeln('*':n);
    i:=1;
    while i<= long do begin
    writeln('*':n);
    i:=i+1;
    end;
     
    end;
    end.

  6. #6
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    tu sûr que tu obtient ce que tu dis
    j'obtien ainsi 2 cotés du recangle mais mon souci c'est que lorsque je repete l'operaion pour obtenir les 2 autres bas tous est decalé
    car ton prog m'a tout l'air de s'embarquer dans une boucle inifie
    d'abord il sert a quoi ta variable long,et quand tu l'utilise non seulement il n'est pas initialisé pas en plus il n'est pas incrementé ni decrémenté
    si tu met dans la boucle et si n=4 tu auras
    en plus c'est pas la peine d'utiliser la boucle while une boucle for est plus adaptée
    voila ce que je trouve moi je ne l'ai pas encore testé mais je pense que ça devrait marcher:
    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
     
    Program aff;
         const car='*';
         var ncar,i:integer;
    begin
        write('Entrer entier:');
        readln(ncar);
        for i:=1 to ncar do
            write(car);
        writeln;
        for i:=1 to ncar-2  do   
             writeln(car,car:n-1);
        for i:=1 to ncar do
             write(car);
        readln;
    end.

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Par défaut
    il y a une petite erreur dans le code mais on la trouve facile
    writeln(car,car:n-1);

    voila un programme bien indenté et qui fonctionne !

    une chose est sûre, en posant les bonnes questions (et en français) et avec le code, celà permet d'avancer dans la résolution des problèmes !

    Dans le monde du travail c'est pareil !

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par superdj
    (pour l'info jvé faire dodo donc je verrai les reponses demain aurevoir)
    Je n'avais pas encore lu ton post, ce qui fait que j'arrive en retard.

    C'est bien dommage, car je t'aurais volontier demandé où tu habites, histoire de t'ammener les croissants bien frais pour le petit dejeuner.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Par défaut
    je suis bien d'accord avec vous mais le probleme est que se programme est a faire en boucle while .

    et merci pour les croissants

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Par défaut
    Voila mon nouveau programme , mais le pb c'est que j'ai toujour qu'une partie du rectangle , je narrive pas a avvoir qqch de correct pour le rest,
    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
    var n,i : integer;
    begin
    write('donner n');readln(n);
    i:=1;
    while i<= n do begin
    write('*');
    i:=i+1;
    end;
    i:=1;
    while i<=n do begin
     
    writeln('*');
    i:=i+1;
    end;
    end.

  11. #11
    ALT
    ALT est déconnecté
    Membre Expert
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 383
    Par défaut
    Ton pb, si tu regardes ce que tu as écrit, c'est que tu n'as que la première ligne & la première colonne.

    Pas de pb pour faire la deuxième ligne.
    Reste la deuxième colonne.
    Là, tu as deux solutions :
    • tu crées une ligne (varible de type chaîne) du style '* *" qu'il te suffit de répéter autant de fois que nécessaire (dans ta deuxième boucle, à la place des writeln('*'), ce sera parfait).
    • Ou bien tu utilises les fonctions de console (en particulier : gotoxy(ligne, colonne)), ce qui, accessoirement, devrait te permettre de créer ton carré en deux boucles while imbriquées.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Par défaut
    eu je comprend pas se que tu me dit , moi mon idée est de faire u boucle dans une boucle.
    mais l'ideal saerai de pouvoir mettre une commande qui dirai mettre une etoile en premier puis ensuite un nombre d 'espace a definir puis une etoile a la fin , mais je vois pas comment faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Programme qui affiche le jour à partir d'une date
    Par rafikadel dans le forum Turbo Pascal
    Réponses: 22
    Dernier message: 27/03/2020, 19h33
  2. [DOS] Programme qui affiche l'heure exacte
    Par Dayssam dans le forum Contribuez
    Réponses: 3
    Dernier message: 28/12/2010, 11h37
  3. Réponses: 2
    Dernier message: 13/09/2008, 19h49
  4. Programme qui affiche un carré
    Par jskthebest dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 08/05/2008, 20h21
  5. Réponses: 4
    Dernier message: 13/04/2007, 15h26

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