Créer une forme géométrique

aya67 Messages postés 3 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 28 décembre 2010 - 20 déc. 2010 à 13:55
aya67 Messages postés 3 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 28 décembre 2010 - 28 déc. 2010 à 10:32
Bonjour,

Je suis débutante en Visual Basic 2005 et je bloque sur un exercice. J'ai créé une procédure qui dessine un carré :
Sub DessineLigneHorizontale(ByVal x As Integer, ByVal y As Integer, ByVal longueur As Integer)
Dim i As Integer
For i = 0 To longueur
Console.SetCursorPosition(x + i, y)
Console.Write("#")
Next
End Sub

Sub DessineLigneVerticale(ByVal x As Integer, ByVal y As Integer, ByVal longueur As Integer)
Dim i As Integer
For i = 0 To longueur
Console.SetCursorPosition(x, y + i)
Console.Write("#")
Next
End Sub

Sub DessineCarre(ByVal x As Integer, ByVal y As Integer, ByVal largeur As Integer)
DessineLigneHorizontale(x, y, largeur)
DessineLigneHorizontale(x, y + largeur, largeur)
DessineLigneVerticale(x, y, largeur)
DessineLigneVerticale(x + largeur, y, largeur)
End Sub

Sub Main()
Dim largeur As Integer
Console.WriteLine("Entrez la largeur du carre: ")
largeur = Console.ReadLine() ?assigne la valeur à la variable?
DessineCarre(5, 5, largeur)
Console.WriteLine()
Console.WriteLine()
End Sub


Mais maintenant je dois créer cette figure la mais je n'y arrive absolument pas :s :

****
* *
* *
****

*****
* *
* *
* *
*****


Pouvez-vous m'aider?


Merci d'avance.


Aya

5 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
21 déc. 2010 à 01:07
Salut
écris une fonction pour * *

Sub DessineLigneHorizontaleEspace(ByVal x As Integer, ByVal y As Integer, ByVal longueur As Integer)
Dim i As Integer
For i = 0 To longueur
Console.SetCursorPosition(x + i*2, y)
Console.Write("#")
Next
End Sub
0
aya67 Messages postés 3 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 28 décembre 2010
22 déc. 2010 à 08:48
Merci pour la rapidité de la réponse :)
Je ne comprend pas très bien comment l'intégrer et lui demander de me créer cette figure (il s'agit de 2 carrés, il y à des espaceds entre les "*"). Serait-il possible de m'expliquer un petit peu plus en détail ?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
22 déc. 2010 à 13:38
Salut
une autre façon
ce que tu dois faire ressemble au carré que tu
as fait sauf la différence c'est la ligne verticale de droite au lieu de la placer à l'extremité du carré on la place au début + 2
voila le code
Module Module1
    Sub DessineLigneHorizontale(ByVal x As Integer, ByVal y As Integer, ByVal longueur As Integer)
        Dim i As Integer
        For i = 0 To longueur - 1
            Console.SetCursorPosition(x + i, y)
            Console.Write("*")
        Next
    End Sub

    Sub DessineLigneVerticale(ByVal x As Integer, ByVal y As Integer, ByVal longueur As Integer)
        Dim i As Integer
        For i = 0 To longueur - 2
            Console.SetCursorPosition(x, y + i)
            Console.Write("*")
        Next
    End Sub

    Sub DessineCarre(ByVal x As Integer, ByVal y As Integer, ByVal largeur As Integer)
        DessineLigneHorizontale(x, y, largeur)
        DessineLigneHorizontale(x, y + largeur - 1, largeur)
        DessineLigneVerticale(x, y, largeur)
        DessineLigneVerticale(x + 2, y, largeur)

    End Sub

    Sub Main()
        DessineCarre(5, 5, 5)
        DessineCarre(5, 10, 4)
    End Sub

End Module

0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
22 déc. 2010 à 13:42
Ah j'ai inversé
le main corrigé
Sub Main()
        DessineCarre(5, 5, 4)
        DessineCarre(5, 12, 5)
    End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aya67 Messages postés 3 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 28 décembre 2010
28 déc. 2010 à 10:32
Merci beaucoup :) désolée du temps de réponse mais avec les fêtes j'ai pris un peu plus de temps ^^" En tout cas mon problème est enfin résolu ;) Un grand merci pour ton aide.
0
Rejoignez-nous