j'ai une erreur à la ligne 60 : Une variable ne peut pas être nommée comme un mot-clé : If
j'aurais aimé transformer la procedure EstCarre(Id) par une macro, il y a surement une solution, c'est pourquoi que je vous demande vos lumières et je vous en remercie par anticipation.
Code : Tout sélectionner
Structure ObjetRectangle
Id.i
Longueur.d
Largeur.d
Surface.d
EstCarre.b
LongueurDiagonale.d
EndStructure
Global.ObjetRectangle *Rectangle
Procedure CreerRectangle(Id, Largeur.d, Longueur.d)
*Rectangle = AllocateMemory(SizeOf(ObjetRectangle))
*Rectangle\Id = Id
*Rectangle\Largeur = Largeur
*Rectangle\Longueur = Longueur
*Rectangle\Surface = Largeur * Longueur
*Rectangle\LongueurDiagonale = Sqr(Longueur + Largeur)
EndProcedure
Macro Surface(id)
*rectangle\Surface
EndMacro
Macro Longueur(id)
*Rectangle\Longueur
EndMacro
Macro Largeur(Id)
*Rectangle\Largeur
EndMacro
Macro EstCarre(Id)
If Longueur(Id) = Largeur(Id)
"Oui"
Else
"Non"
EndIf
EndMacro
;Procedure.s EstCarre(Id)
; If *Rectangle\Longueur = *Rectangle\Largeur
; ProcedureReturn "Oui"
; Else
; ProcedureReturn "Non"
; EndIf
;EndProcedure
Macro LongueurDiagonale(Id)
*Rectangle\LongueurDiagonale
EndMacro
;***TEST***
CreerRectangle(1, 1, 1)
Debug "Surface: " + Surface(1)
Debug "Longueur: " + Longueur(1)
Debug "Largeur : " + Largeur(1)
Debug "Longueur diagonale; " + LongueurDiagonale(1)
Debug "Est carré " + EstCarre(1)
Debug ""
CreerRectangle(2, 4, 20)
Debug "Surface: " + Surface(2)
Debug "Longueur: " + Longueur(2)
Debug "Largeur : " + Largeur(2)
Debug "Longueur diagonale; " + LongueurDiagonale(2)
Debug "Est carré " + EstCarre(2)