Page 1 sur 1
					
				Procedure à paramètres optionnels.
				Publié : mer. 14/nov./2007 14:19
				par Myshl
				Bonjour.
Je souhaite écrire une procédure à 2 paramètres obligés plus 2 paramètres optionnels : Procedure(a,b [,c,d]).
Je sais bien utiliser une telle  procédure prédéfinie, mais je ne sais pas en écrire une qui traite donc a et b et s'ils existent c et d.
Je veux écrire une procédure qui réduise un quotient d'entiers (2 paramètres) et si besoin un produit de quotients d'entiers.
Si l'un(e) d'entre vous peut et veut bien me dire comment écrire une procédure à paramètres optionnels, je l'en remercie.
Myshl
			 
			
					
				
				Publié : mer. 14/nov./2007 14:39
				par lionel_om
				Code : Tout sélectionner
Procedure Test(a.l, b.l, c.l = 1, d.l = 5)
; ...
EndProcedure
C'est ça que tu cherches ?
Lio  

 
			 
			
					
				
				Publié : mer. 14/nov./2007 14:41
				par brossden
				Pour les paramètres optionnels il te suffit de leur mettre une valeur par defaut dans la syntaxe Procedure MaProc(a,b,c=Valeur1,D=Valeur2)
Exemple :
Code : Tout sélectionner
Procedure test(a,b,c=0,d=0)
  Debug a+b+c+d
EndProcedure
test(10,20)
test(10,20,30)
test(10,20,30,40)
 
			 
			
					
				
				Publié : mer. 14/nov./2007 14:41
				par brossden
				Lio tu as été plus rapide que moi sur ce coup !
 
 
			 
			
					
				
				Publié : mer. 14/nov./2007 14:43
				par lionel_om
				Grillé !  
 
par contre le seul problème par rapport à ce que tu veux faire c'est que tu peux passer que 3 arguments : le 3ème n'implique pas de passer un 4ème.
Mais tout dépend si tu as voulu dire 
ou
Lio
 
			 
			
					
				
				Publié : mer. 14/nov./2007 14:43
				par lionel_om
				Merde tu m'a grillé sur le grillage!  
  
 
			 
			
					
				
				Publié : mer. 14/nov./2007 15:16
				par brossden
				Lionel_om
Sauf erreur de comprenette de ma part, les croches dans la liste des paramètres ça bug !
			 
			
					
				
				Publié : mer. 14/nov./2007 16:58
				par lionel_om
				brossden a écrit :Lionel_om
Sauf erreur de comprenette de ma part, les croches dans la liste des paramètres ça bug !
Je ne comprend pas trop  

  !
Je voulais dire que si Myshl ne veut pas être pas que l'on puisse utiliser sa fonction avec uniquement 3 arguments, mais seulement 2 ou 4...
Lio
 
			 
			
					
				Eureka
				Publié : mer. 14/nov./2007 18:53
				par Myshl
				J'suis con, Brossden m'a ouvert les yeux.
Si je veux réduire un seul quotient d'entiers a/b avec une procédure prévue pour réduire un produit de quotients a/b*c/d, je n'ai qu'à appeler la procédure avec a/b*1/1.
C'est extensible à n produits de quotients !
Merci Brossden, et merci à tous.
Bon je vais quand même chercher plus propre, éviter d'appeler avec 1/1.
			 
			
					
				
				Publié : jeu. 15/nov./2007 15:53
				par Guimauve
				Une solution possible:
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Procédure avec paramètre optionnel
; Fichier : Source principal
; Version : 1.0.0
; Programmation : OK
; Programmé par : Guimauve
; Date : 15-11-2007
; Mise à jour : 15-11-2007
; Codé avec PureBasic V4.10
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure MaProcedure(a.l, b.l, c.l = 0, d.l = 0)
  
  If c = 0 And d = 0 And b <> 0
    Resultat.l = a/b
  Else
    Resultat = a/b * c/d
  EndIf
  ProcedureReturn Resultat
  
EndProcedure
Debug MaProcedure(25,5)
Debug MaProcedure(25,5, 30, 5)
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
A+ 
Guimauve