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

Turbo Pascal Discussion :

Donner la hauteur d'une forme et dessiner celle-ci [Turbo Pascal]


Sujet :

Turbo Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 12
    Points
    12
    Par défaut Donner la hauteur d'une forme et dessiner celle-ci
    Comment faire pour trouver la solution de ce programme :
    Ecrire un programme qui sollicite à l'utilisateur la hauteur et imprime une forme, tel que celui-ci :
    - celle de droite : indique la hauteur6
    - gauche : indique la hauteur 10
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Tu as codé quelque chose ? N'espère pas qu'on fasse ton travail à ta place.

    Explique ce que tu as codé et les problèmes que tu as rencontrés.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par wormful_sickfoot Voir le message
    Tu as codé quelque chose ? N'espère pas qu'on fasse ton travail à ta place.

    Explique ce que tu as codé et les problèmes que tu as rencontrés.

    c est pas juste ce que tu as dis , mais bon , voila ce que j'ai fait : mais le probleme c'est j'ai fait ça en langage C , mais pas en pascal ,(c est juste 1/2 de code)
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    Console.Write("Please inpout a number: ");
                string str = Console.ReadLine();
                int number = Convert.ToInt32(str);
     
                if ((number % 2) == 0)
                    number = number - 1;
     
                int i = 0;
                int odd = -1;
                    while (i < (number / 2))
                    {
                        
                        for (int k = i; k < (number/2)-1; k++)
                        {
                            Console.Write("  ");
                        }
                        Console.Write("**");
                        for (int j = 0; j < odd; j++)
                        {
                            Console.Write("  ");
                        }
     
                        if (i > 0)
                        {
                            Console.WriteLine("**\r\n");
                        }
                        else
                            Console.WriteLine();
     
                        i++;
                        odd += 2;
                    }

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Jai,

    Puisque tu l'as fait en C, tu connais l'algorithme, tu as donc l'essentiel, et l'implémenter en Pascal ne devrait pas te poser de problème.

    Montre-nous ce que tu as fait pour ça, dis-nous ce qui ne va pas, te bloque...

    Comme l'a déjà dit wormful_sickfoot, personne ici ne fera ton travail à ta place.

    ps : nous sommes sur un forum, pas sur un chat, tu peux donc prendre le temps d'écrire correctement.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par droggo Voir le message
    Jai,

    Puisque tu l'as fait en C, tu connais l'algorithme, tu as donc l'essentiel, et l'implémenter en Pascal ne devrait pas te poser de problème.

    Montre-nous ce que tu as fait pour ça, dis-nous ce qui ne va pas, te bloque...

    Comme l'a déjà dit wormful_sickfoot, personne ici ne fera ton travail à ta place.

    ps : nous sommes sur un forum, pas sur un chat, tu peux donc prendre le temps d'écrire correctement.
    voila le code entier , en pascal, mais il me compile toujours pas.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    program hauteur(input,output);
     var
     number,i,j,k,l,m,odd,bottomWidth : integer; 
     
     
     begin
    	Write('Please input a number: ');
    	Readln(number);
     
                if (number MOD 2) < 1 then
                    number := number - 1;
     
                i := 0;
                odd := -1;
                    while (i < (number / 2)) do
                    begin                    
                    for k := i to (number/2)-2 do
     
                        Write('**');
     
                        for j := 0 to odd-1 do
     
                            Write('  ');
     
     
                        if (i > 0) then                    
                            Write('**')                   
     
                         else             
    						Writeln('');
    						i:=i+1;
    						odd := odd + 2;
                    end;
     
                { mid line}
     
                    Write('  ');
                    for l := 0 to odd-3 do                
                        Write('**');               
     
                Writeln('');
     
                bottomWidth := odd ;
     
                {bottom part...}
                odd := odd - 2;
     
                while (i<(number-1)) do
                begin
                    for m := 0 to (((ancho_fondo-odd)/2)-1) do
     
                        Write('**');
     
     
                    odd := odd- 2;
     
                    if (i < (number - 2)) then
                        Write('  ');
     
                    for m := 0 to (odd-1) do
     
                        Write('**');
     
     
                    if (i < number - 3) then
                        Write('  ');
     
                    if i = (number - 2) then
                        odd := odd+ 2;
     
                    for m := 0 to (((bottomWidth - (odd + 2)) / 2)-1) do
     
                        Write('**');
    					i := i+1;
    					Writeln('');
                end;
    end .

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Qia,

    Mets-nous les messages de ton compilateur.

    Juste en jetant un rapide coup d'oeil, je vois la dernière ligne
    il ne faut pas d'espace entre end et le point.

    Côté présentation du code, il y a des lignes vides pour aérer, c'est bien, MAIS il ne faut pas en abuser.

    Voici un exemple de présentation de ton code, vite fait sur le coin du bureau
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    program hauteur(input, output);
     
    var
      number, i, j, k, l, m, Odd, bottomWidth : integer; 
     
     begin
      Write('Please input a number: ');
      Readln(number);
     
      if (number mod 2) < 1 then
        number := number - 1;
     
      i := 0;
      Odd := -1;
      while (i < (number / 2)) do
      begin                    
        for k := i to (number / 2) - 2 do
          Write('**');
     
        for j := 0 to Odd - 1 do
          Write('  ');
     
        if (i > 0) then                    
          Write('**')                   
        else             
          Writeln('');
        i := i + 1;
        Odd := Odd + 2;
      end;
     
      { mid line}
     
      Write('  ');
      for l := 0 to Odd - 3 do 
        Write('**');               
     
      Writeln('');
      bottomWidth := Odd;
     
      {bottom part...}
      Odd := Odd - 2;
     
      while (i < (number - 1)) do
      begin
        for m := 0 to (((ancho_fondo - Odd) / 2) - 1) do
          Write('**');
     
        Odd := Odd - 2;
        if (i < (number - 2)) then
          Write('  ');
     
        for m := 0 to (Odd - 1) do
          Write('**');
     
        if (i < number - 3) then
          Write('  ');
     
        if i = (number - 2) then
          Odd := Odd + 2;
     
        for m := 0 to (((bottomWidth - (Odd + 2)) / 2) - 1) do
          Write('**');
     
        i := i + 1;
        Writeln('');
      end;
    end.
    Ce code n'est pas corrigé (à l'exception de l'erreur signalée plus haut), et je n'ai même pas regardé ce qu'il fait, il faut déjà supprimer toutes les erreurs qui l'empêchent de compiler (en faisant ça, on retrouve assez souvent les erreurs de logique).

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par droggo Voir le message
    Qia,

    Mets-nous les messages de ton compilateur.

    Juste en jetant un rapide coup d'oeil, je vois la dernière ligne
    il ne faut pas d'espace entre end et le point.

    Côté présentation du code, il y a des lignes vides pour aérer, c'est bien, MAIS il ne faut pas en abuser.

    Voici un exemple de présentation de ton code, vite fait sur le coin du bureau
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    program hauteur(input, output);
     
    var
      number, i, j, k, l, m, Odd, bottomWidth : integer; 
     
     begin
      Write('Please input a number: ');
      Readln(number);
     
      if (number mod 2) < 1 then
        number := number - 1;
     
      i := 0;
      Odd := -1;
      while (i < (number / 2)) do
      begin                    
        for k := i to (number / 2) - 2 do
          Write('**');
     
        for j := 0 to Odd - 1 do
          Write('  ');
     
        if (i > 0) then                    
          Write('**')                   
        else             
          Writeln('');
        i := i + 1;
        Odd := Odd + 2;
      end;
     
      { mid line}
     
      Write('  ');
      for l := 0 to Odd - 3 do 
        Write('**');               
     
      Writeln('');
      bottomWidth := Odd;
     
      {bottom part...}
      Odd := Odd - 2;
     
      while (i < (number - 1)) do
      begin
        for m := 0 to (((ancho_fondo - Odd) / 2) - 1) do
          Write('**');
     
        Odd := Odd - 2;
        if (i < (number - 2)) then
          Write('  ');
     
        for m := 0 to (Odd - 1) do
          Write('**');
     
        if (i < number - 3) then
          Write('  ');
     
        if i = (number - 2) then
          Odd := Odd + 2;
     
        for m := 0 to (((bottomWidth - (Odd + 2)) / 2) - 1) do
          Write('**');
     
        i := i + 1;
        Writeln('');
      end;
    end.
    Ce code n'est pas corrigé (à l'exception de l'erreur signalée plus haut), et je n'ai même pas regardé ce qu'il fait, il faut déjà supprimer toutes les erreurs qui l'empêchent de compiler (en faisant ça, on retrouve assez souvent les erreurs de logique).


    merci, j ai resolu les problems , voila la sortie :
    Images attachées Images attachées  

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

Discussions similaires

  1. [WD-2003] Centrage en hauteur d'une forme automatique
    Par bolide7 dans le forum Word
    Réponses: 3
    Dernier message: 08/06/2011, 22h04
  2. Resize - hauteur d'une form
    Par mosquitout dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/02/2008, 14h08
  3. rendre une form visible sans lui donner le focus
    Par kchrel dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2006, 15h37
  4. [VS 2003][dessin] synchronizer un thread avec une forme
    Par Harry_polin dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/10/2005, 10h31
  5. Dessiner un rectangle sur une forme
    Par Neo41 dans le forum MFC
    Réponses: 6
    Dernier message: 13/08/2005, 01h08

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