#176 Le 10/12/2010, à 09:59
- grim7reaper
Re : Windev et Webdev, c'est super ou c'est super nul?
Je n'avais pas parlé des fonctions car ça me semblait évident (c'est quand même la base, le genre de truc que tu fais même en assembleur…).
C'est ce genre de chose qu'on n'apprend pas facilement en auto didacte et qu'on apprend dans une école.
Ouais, enfin faut relativiser aussi. Ce n'est pas parce que tu le vois à l'école que tu sais le faire.
C'est typiquement le truc qui vient avec l'expérience ça.
Le switch c'est spécifique au langage effectivement
Oui, mais tout les langages (généralistes) sérieux que je connais l'ont (sous une forme ou une autre).
mais même si les tables de hashage, les arbres binaires, les arbres équilibrés, les tas, les piles, les files etc. n'existent pas de base, il est assez simple de les implémenter soi-même.
Encore faut-il que le langage le permette…
Et non, certaines structures sont assez hard à coder de manière efficace.
Enfin, sauf si on ne connaît par leur existence au préalable, ce qui est le cas quand on n'a pas suivi de formation
Connerie. Une personne peut très bien apprendre ça en auto-formation, faudrait voir à pas trop les prendre pour des cons non plus…
Dernière modification par grim7reaper (Le 10/12/2010, à 10:00)
Hors ligne
#177 Le 10/12/2010, à 11:07
- Mathieu147
Re : Windev et Webdev, c'est super ou c'est super nul?
Je n'avais pas parlé des fonctions car ça me semblait évident (c'est quand même la base, le genre de truc que tu fais même en assembleur…).
C'est sûr que le développeur qui ne sait pas ce qu'est une fonction a des questions à se poser
!
Mathieu147 a écrit :C'est ce genre de chose qu'on n'apprend pas facilement en auto didacte et qu'on apprend dans une école.
Ouais, enfin faut relativiser aussi. Ce n'est pas parce que tu le vois à l'école que tu sais le faire.
C'est typiquement le truc qui vient avec l'expérience ça.
Effectivement, mais dans une vraie formation avec de vrais profs qui corrigent des exercices et des projets, on acquiert quand-même pas mal d'automatismes qu'on aurait peut-être mis beaucoup de temps à avoir autrement.
Mathieu147 a écrit :mais même si les tables de hashage, les arbres binaires, les arbres équilibrés, les tas, les piles, les files etc. n'existent pas de base, il est assez simple de les implémenter soi-même.
Encore faut-il que le langage le permette…
Et non, certaines structures sont assez hard à coder de manière efficace.
Bah, quand on sait comment ça marche… Le plus compliqué dans ce que j'ai cité ce sont les arbres équilibrés mais même ça, avec les algorithmes sous les yeux tu peux les refaire assez facilement dans n'importe quel langage.
Tous les langages permettent ça, il suffit de savoir faire des structures ou des objets, et de gérer des pointeurs ou des références. J'espère quand-même que c'est le cas de Windev! Ce serait dommage sinon…
Mathieu147 a écrit :Enfin, sauf si on ne connaît par leur existence au préalable, ce qui est le cas quand on n'a pas suivi de formation
Connerie. Une personne peut très bien apprendre ça en auto-formation, faudrait voir à pas trop les prendre pour des cons non plus…
Ouais mais en fait j'ai usé mes fesses pendant pas mal de temps dans des amphithéâtres et donc j'aime bien dire que c'est utile
Pffff…
Hors ligne
#178 Le 10/12/2010, à 11:25
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
Heu, ok. Mais j'ai jamais parler de BDD !
Oui j'ai cité les B-arbres (qui sont effectivement utilisé dans les BDD entre autre), mais j'aurais pu aussi bien parler des arbres rouge-noire, des tas et autres trucs du genre.
En gros, j'aimerais savoir ce que supporte Windev au niveau structures de données ?
Peut être une réponse ici mais, ça date de 2005
Par curiosité va au TDFtech 2011, c'est gratuit mais faut s'incrire. Il est pas encore programmé mais d'habitude c'est autour de juin juillet, il me semble.
Une des alternatives possibles (dans certains cas) aux interminables suites de if-else.
Un truc pas tout jeune (existe depuis le C).
Certains langages le limite aux entiers (comme le C par exemple), d'autres sont plus polyvalent (comme en Java par exemple).Ok, mais là je parle pas de truc super spécialisé. Enfin surtout les switch, c'est du niveau débutant en développement ça (moins d'un an d'expérience ou de cours).
Je vois maintenant que ce que tu appelles switch, je connais très bien en faite, sous Windev c'est SELON CAS. Je les utilise pas sur base de donnée, mais pourquoi pas essayer.
Je n'avais pas parlé des fonctions car ça me semblait évident (c'est quand même la base, le genre de truc que tu fais même en assembleur…).
Les procédures, j'en fait, c'est clair que ça éclairci le code. J'aurai pu aussi mais quand je suis parti dans mon enchaînement de logique, j'y ai pas vraiment pensé. Je suis développeur à mi temps et j'ai d'autre fonction.
Mais rien ne m'empêche de le faire aujourd'hui, sauf que j'en ai tellement bavé que je vais laisser ça de côté.
Ce que je n'utilise pas c'est le HashTable et la POO.
Dernière modification par sebz_ (Le 10/12/2010, à 11:45)
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne
#179 Le 10/12/2010, à 11:50
- HP
Re : Windev et Webdev, c'est super ou c'est super nul?
Ce que je n'utilise pas c'est le HashTable et la POO.
Ah ok ! On comprend mieux…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#180 Le 10/12/2010, à 11:53
- The Uploader
Re : Windev et Webdev, c'est super ou c'est super nul?
Mais rien ne m'empêche de le faire aujourd'hui, sauf que j'en ai tellement bavé que je vais laisser ça de côté.
c'est justement en laissant ton code de côté que tu en baves..
"Je factoriserai mon code demain" c'est jamais bon.. (bon faut pas tomber dans l'excès inverse non plus)
Dernière modification par The Uploader (Le 10/12/2010, à 11:53)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#181 Le 10/12/2010, à 12:06
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
Mais rien ne m'empêche de le faire aujourd'hui, sauf que j'en ai tellement bavé que je vais laisser ça de côté.
c'est justement en laissant ton code de côté que tu en baves..
"Je factoriserai mon code demain" c'est jamais bon.. (bon faut pas tomber dans l'excès inverse non plus)
Voilà le code du bouton ajouter selon 2 cas, ajout pour un utilisateur ou plusieurs en même temps avec controle congé, RTT, Maladie, Maladie Enfant.
C'est pas parfait mais ça fonctionne.
// Recherche l'enregistrement
Jc est un entier
Dc est une Date = SAI_DateA
Sannée est une Date =Gauche(SAI_DateA, 4)
Sannée..Année-=1
Sai_année_suivant est une Date = Gauche(SAI_DateA, 4)
DateDebutConge est une Date = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge est un Date = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
M est une chaîne = Gauche(Date, 6)
d est un entier = Droite(DateFinMois(M),2)
param_mois,Param_annee sont des chaînes
ChaineJourMois est une chaîne = Droite(Date,4)
ChaineMois est une chaîne = Gauche(ChaineJourMois,2)
Param_annee = Gauche(Date, 4)
param_mois = ChaineMois
DateDebut est une Date = Param_annee+param_mois+"01"
DateFin est une Date = Param_annee+param_mois+d
SELON SEL_Ajout
// ------------------------------- Ajouter un ou plusieurs événements à un Utilisateur --------------------------------
CAS 1
// Evenement CONGE N
SI COMBO_Evénement..ValeurAffichée = "CONGE JOURNEE" OU COMBO_Evénement..ValeurAffichée ="CONGE DEMI JOURNEE" ALORS
POUR Jc = 1 A SAI_JourC
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
SI Dc > dateFinConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sai_année_suivant..Année++
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
SI Dc < DateDebutConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sannée..Année-=1
Sai_année_suivant = Gauche(SAI_DateA, 4)
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
HExécuteRequête(REQ_Conge_restant,hRequêteDéfaut,SAI_Employé,DateDebutConge,dateFinConge)
SI REQ_Conge_restant.CongéN_Restant > 0 ALORS
// on enlève un jour de congé N
// Recherche l'enregistrement
HLitRecherchePremier(Conge,IDConge,REQ_Conge_restant.IDConge)
SI HTrouve() ALORS
resN est un numérique = Conge.CongéN_Restant
resMN est un numérique
SI COMBO_Evénement..ValeurAffichée = "CONGE JOURNEE" ALORS
resMN = resN-1
FIN
SI COMBO_Evénement..ValeurAffichée = "CONGE DEMI JOURNEE" ALORS
resMN = resN-0.5
FIN
Conge.CongéN_Restant = resMN
Conge.Total_conge_restant = resMN+Conge.CongéN_1_Restant
HModifie(Conge)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
Dc..Jour+=1
SINON
Info("Plus ou Pas de congé N disponible")
FIN
FIN
FIN
PageFermeDialogue()
SINON
// Evenement CONGE N-1
SI COMBO_Evénement..ValeurAffichée ="C N-1 JOURNEE" OU COMBO_Evénement..ValeurAffichée ="C N-1 DEMI JOURNEE" ALORS
POUR Jc = 1 A SAI_JourC
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
SI Dc > dateFinConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sai_année_suivant..Année++
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
SI Dc < DateDebutConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sannée..Année-=1
Sai_année_suivant = Gauche(SAI_DateA, 4)
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
HExécuteRequête(REQ_Conge_restant,hRequêteDéfaut,SAI_Employé,DateDebutConge,dateFinConge)
SI REQ_Conge_restant.CongéN_1_Restant > 0 ALORS
// on enlève un jour de congé N-1
// Recherche l'enregistrement
HLitRecherchePremier(Conge,IDConge,REQ_Conge_restant.IDConge)
SI HTrouve() ALORS
resN1 est un numérique = Conge.CongéN_1_Restant
resMN1 est un numérique
SI COMBO_Evénement..ValeurAffichée = "C N-1 JOURNEE" ALORS
resMN1 = resN1-1
FIN
SI COMBO_Evénement..ValeurAffichée = "C N-1 DEMI JOURNEE" ALORS
resMN1 = resN1-0.5
FIN
Conge.CongéN_1_Restant = resMN1
Conge.Total_conge_restant = resMN1+Conge.CongéN_Restant
HModifie(Conge)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
Dc..Jour+=1
SINON
Info("Plus ou Pas de congé N-1 disponible")
FIN
FIN
FIN
PageFermeDialogue()
SINON
// Evenement RTT
SI COMBO_Evénement..ValeurAffichée ="RTT JOURNEE" OU COMBO_Evénement..ValeurAffichée ="RTT DEMI JOURNEE" ALORS
POUR Jc = 1 A SAI_JourC
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
HExécuteRequête(REQ_RTT_restant,hRequêteDéfaut,SAI_Employé,Dc..Année)
SI REQ_RTT_restant.RTT_Restant > 0 ALORS
// on enlève un jour de RTT
// Recherche l'enregistrement
HLitRecherchePremier(RTT,IDRTT,REQ_RTT_restant.IDRTT)
SI HTrouve() ALORS
resRTT est un numérique = RTT.RTT_restant
resMRTT est un numérique
SI COMBO_Evénement..ValeurAffichée = "RTT JOURNEE" ALORS
resMRTT = resRTT-1
FIN
SI COMBO_Evénement..ValeurAffichée = "RTT DEMI JOURNEE" ALORS
resMRTT = resRTT-0.5
FIN
RTT.RTT_restant = resMRTT
HModifie(RTT)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
Dc..Jour+=1
SINON
Info("Plus ou Pas de RTT disponible")
FIN
FIN
FIN
PageFermeDialogue()
SINON
// Evenement MALADIE
SI COMBO_Evénement..ValeurAffichée ="MALADIE" ALORS
POUR Jc = 1 A SAI_JourC
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
HExécuteRequête(REQ_Maladie_Pris,hRequêteDéfaut,SAI_Employé,Dc..Année)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
// on ajout un jour de congé Maladie
// Recherche l'enregistrement
HLitRecherchePremier(Maladie,IDMaladie,REQ_Maladie_Pris.IDMaladie)
SI HTrouve() ALORS
resMALADIE est un numérique = Maladie.Maladie_pris
ResMMALADIE est un numérique = resMALADIE+1
Maladie.Maladie_pris = ResMMALADIE
HModifie(Maladie)
SINON
Maladie.Année = Gauche(SAI_DateA,4)
Maladie.IDUtilisateur = SAI_Employé
Maladie.Maladie_pris = "1"
HAjoute(Maladie)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
Dc..Jour+=1
FIN
FIN
PageFermeDialogue()
SINON
// Evenement MALADIE ENFANT
SI COMBO_Evénement..ValeurAffichée ="MALADIE ENFANT" ALORS
POUR Jc = 1 A SAI_JourC
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
HExécuteRequête(REQ_MaladieEnfant_Pris,hRequêteDéfaut,SAI_Employé,Dc..Année)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
// on ajout un jour de congé Maladie
// Recherche l'enregistrement
HLitRecherchePremier(Maladie_Enfant,IDMaladieEnfant,REQ_MaladieEnfant_Pris.IDMaladieEnfant)
SI HTrouve() ALORS
resMALADIEENFANT est un numérique = Maladie_Enfant.MaladieEnfant_pris
ResMMALADIEENFANT est un numérique = resMALADIEENFANT+1
Maladie_Enfant.MaladieEnfant_pris = ResMMALADIEENFANT
SI ResMMALADIEENFANT <= 6 ALORS HModifie(Maladie_Enfant)
SINON
Maladie_Enfant.Année = Gauche(SAI_DateA,4)
Maladie_Enfant.IDUtilisateur = SAI_Employé
Maladie_Enfant.MaladieEnfant_pris = "1"
HAjoute(Maladie_Enfant)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
SI ResMMALADIEENFANT <= 6 ALORS
HAjoute(Lieu)
SINON
Info("On ne peut pas prendre plus de 6 congés CONGE MALADIE par an")
FIN
Dc..Jour+=1
FIN
FIN
PageFermeDialogue()
SINON
// Evenement autre
POUR Jc = 1 A SAI_JourC
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
Dc..Jour+=1
FIN
FIN
PageFermeDialogue()
FIN
FIN
FIN
FIN
FIN
// ------------------------------- Ajouter un événement à Tous les Utilisateurs --------------------------------
CAS 2
POUR Jc = 1 A SAI_JourC
SI DateVersJour(Dc) > 5 ALORS
Dc..Jour+=1
SINON
HExécuteRequête(REQ_Utilisateur_présent,Cadil,hRequêteDéfaut,DateDebut,DateFin)
HLitPremier(REQ_Utilisateur_présent,IDUtilisateur)
TANTQUE PAS HEnDehors()
sIdU est une chaîne = REQ_Utilisateur_présent.IDUtilisateur
// Evenement CONGE N
SI COMBO_Evénement..ValeurAffichée ="CONGE JOURNEE" OU COMBO_Evénement..ValeurAffichée ="CONGE DEMI JOURNEE" ALORS
SI Dc > dateFinConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sai_année_suivant..Année++
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
SI Dc < DateDebutConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sannée..Année-=1
Sai_année_suivant = Gauche(SAI_DateA, 4)
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
HExécuteRequête(REQ_Conge_restant,hRequêteDéfaut,sIdU,DateDebutConge,dateFinConge)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI REQ_Conge_restant.CongéN_Restant > 0 ALORS
// on enlève un jour de congé N
// Recherche l'enregistrement
HLitRecherchePremier(Conge,IDConge,REQ_Conge_restant.IDConge)
SI HTrouve() ALORS
resN_ est un numérique = Conge.CongéN_Restant
resMN_ est un numérique
SI COMBO_Evénement..ValeurAffichée = "CONGE JOURNEE" ALORS
resMN_ = resN-1
FIN
SI COMBO_Evénement..ValeurAffichée = "CONGE DEMI JOURNEE" ALORS
resMN_ = resN-0.5
FIN
Conge.CongéN_Restant = resMN_
Conge.Total_conge_restant = resN_+resMN_
HModifie(Conge)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = sIdU
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
SINON
Info("Plus ou Pas de congé N disponible")
FIN
SINON
// Evenement CONGE N-1
SI COMBO_Evénement..ValeurAffichée ="C N-1 JOURNEE" OU COMBO_Evénement..ValeurAffichée ="C N-1 DEMI JOURNEE" ALORS
SI Dc > dateFinConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sai_année_suivant..Année++
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
SI Dc < DateDebutConge ALORS
Sannée = Gauche(SAI_DateA, 4)
Sannée..Année-=1
Sai_année_suivant = Gauche(SAI_DateA, 4)
DateDebutConge = ChaîneVersDate("01/06/"+Sannée,"JJ/MM/AAAA")
dateFinConge = ChaîneVersDate("31/05/"+Sai_année_suivant,"JJ/MM/AAAA")
FIN
HExécuteRequête(REQ_Conge_restant,hRequêteDéfaut,sIdU,DateDebutConge,dateFinConge)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI REQ_Conge_restant.CongéN_1_Restant > 0 ALORS
// on enlève un jour de congé N-1
// Recherche l'enregistrement
HLitRecherchePremier(Conge,IDConge,REQ_Conge_restant.IDConge)
SI HTrouve() ALORS
resN_1 est un numérique = Conge.CongéN_1_Restant
ResMN_1 est un numérique
SI COMBO_Evénement..ValeurAffichée = "C N-1 JOURNEE" ALORS
ResMN_1 = resN_1-1
FIN
SI COMBO_Evénement..ValeurAffichée = "C N-1 DEMI JOURNEE" ALORS
ResMN_1 = resN_1-0.5
FIN
Conge.CongéN_1_Restant = ResMN_1
Conge.Total_conge_restant = ResMN_1+resN_1
HModifie(Conge)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = sIdU
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
SINON
Info("Plus ou Pas de congé N-1 disponible")
FIN
SINON
// Evenement RTT
SI COMBO_Evénement..ValeurAffichée ="RTT JOURNEE" OU COMBO_Evénement..ValeurAffichée ="RTT DEMI JOURNEE" ALORS
HExécuteRequête(REQ_RTT_restant,hRequêteDéfaut,sIdU,Dc..Année)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
SI REQ_RTT_restant.RTT_Restant > 0 ALORS
// on enlève un jour de congé N-1
// Recherche l'enregistrement
HLitRecherchePremier(RTT,IDRTT,REQ_RTT_restant.IDRTT)
SI HTrouve() ALORS
resRTT_ est un numérique = RTT.RTT_restant
ResMRTT_ est un numérique
SI COMBO_Evénement..ValeurAffichée = "RTT JOURNEE" ALORS
ResMRTT_ = resRTT_-1
FIN
SI COMBO_Evénement..ValeurAffichée = "RTT DEMI JOURNEE" ALORS
ResMRTT_ = resRTT_-0.5
FIN
RTT.RTT_restant = ResMRTT_
HModifie(RTT)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = sIdU
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
SINON
Info("Plus ou Pas de RTT disponible")
FIN
SINON
// Evenement Maladie
SI COMBO_Evénement..ValeurAffichée ="MALADIE" ALORS
HExécuteRequête(REQ_Maladie_Pris,hRequêteDéfaut,sIdU,Dc..Année)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
// on ajout un jour de congé Maladie
// Recherche l'enregistrement
HLitRecherchePremier(Maladie,IDMaladie,REQ_Maladie_Pris.IDMaladie)
SI HTrouve() ALORS
resMALADIE_ est un numérique = Maladie.Maladie_pris
ResMMALADIE_ est un numérique = resMALADIE_+1
Maladie.Maladie_pris = ResMMALADIE_
HModifie(Maladie)
SINON
Maladie.Année = Gauche(SAI_DateA,4)
Maladie.IDUtilisateur = SAI_Employé
Maladie.Maladie_pris = "1"
HAjoute(Maladie)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = sIdU
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
SINON
// Evenement MALADIE ENFANT
SI COMBO_Evénement..ValeurAffichée ="MALADIE ENFANT" ALORS
HExécuteRequête(REQ_MaladieEnfant_Pris,hRequêteDéfaut,SAI_Employé,Dc..Année)
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
// on ajout un jour de congé Maladie
// Recherche l'enregistrement
HLitRecherchePremier(Maladie_Enfant,IDMaladieEnfant,REQ_MaladieEnfant_Pris.IDMaladieEnfant)
SI HTrouve() ALORS
resMALADIEENFANT_ est un numérique = Maladie_Enfant.MaladieEnfant_pris
ResMMALADIEENFANT_ est un numérique = resMALADIEENFANT_+1
Maladie_Enfant.MaladieEnfant_pris = ResMMALADIEENFANT_
SI ResMMALADIEENFANT_ <= 6 ALORS HModifie(Maladie_Enfant)
SINON
Maladie_Enfant.Année = Gauche(SAI_DateA,4)
Maladie_Enfant.IDUtilisateur = SAI_Employé
Maladie_Enfant.MaladieEnfant_pris = "1"
HAjoute(Maladie_Enfant)
FIN
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = SAI_Employé
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
SI ResMMALADIEENFANT_ <= 6 ALORS
HAjoute(Lieu)
SINON
Info("On ne peut pas prendre plus de 6 congés CONGE MALADIE par an")
FIN
SINON
// Autre Evenement
EcranVersFichier(PAGE_Fiche_AjoutModifSup_Action)
Lieu.DateA = Dc
Lieu.Année = DateVersChaîne(Dc,"AAAA")
Lieu.IDUtilisateur = sIdU
Lieu.LieuSujet = SAI_Lieu
Lieu.IDEvenement = COMBO_Evénement..ValeurMémorisée
HAjoute(Lieu)
FIN
FIN
FIN
FIN
FIN
HLitSuivant(REQ_Utilisateur_présent,IDUtilisateur)
FIN
Dc..Jour+=1
FIN
FIN
PageFermeDialogue()
AUTRE CAS
FIN
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne
#182 Le 10/12/2010, à 12:39
- valAa
Re : Windev et Webdev, c'est super ou c'est super nul?
Le switch c'est spécifique au langage effectivement
Oui, mais tout les langages (généralistes) sérieux que je connais l'ont (sous une forme ou une autre).
Python n'a pas de switch.
Mais on obtient le même comportement très facilement avec un dictionnaire de fonctions (lambda ou pas).
Je sais pas si c'est plus clair pour un novice, mais ce qui est sûr c'est que ça limite beaucoup le code spaghetti.
Les hashtables c'est bon, mangeons en
Hors ligne
#183 Le 10/12/2010, à 13:31
- grim7reaper
Re : Windev et Webdev, c'est super ou c'est super nul?
grim7reaper a écrit :Encore faut-il que le langage le permette…
Et non, certaines structures sont assez hard à coder de manière efficace.Bah, quand on sait comment ça marche… Le plus compliqué dans ce que j'ai cité ce sont les arbres équilibrés mais même ça, avec les algorithmes sous les yeux tu peux les refaire assez facilement dans n'importe quel langage.
Non, pas n'importe quel langage. Certains ne propose pas ce qu'il faut pour.
Savoir comment ça fonctionne est une chose (d'ailleur je dis bien savoir comment ça fonctionne, recopier un algo n'a aucun intérêt), le coder de manière optimale en est une autre.
grim7reaper a écrit :En gros, j'aimerais savoir ce que supporte Windev au niveau structures de données ?
Ouais, c'est pas la joie quoi (bien qu'en 5 ans ça a dû pas mal evolué, j'espère…)
Python n'a pas de switch.
Mais on obtient le même comportement très facilement avec un dictionnaire de fonctions (lambda ou pas).
Je sais pas si c'est plus clair pour un novice, mais ce qui est sûr c'est que ça limite beaucoup le code spaghetti.
Les hashtables c'est bon, mangeons en
Ouais, bah Python en même temps… (oui, je ne suis pas fan de ce langage ).
M'enfin, oui on peut obtenir la même chose avec un dico mais j'aime bien mes switch quand même.
Par contre, le switch n'a rien a voir avec le code spaghetti (goto je veux bien, mais switch n'y incite pas plus que le reste).
Dernière modification par grim7reaper (Le 10/12/2010, à 13:32)
Hors ligne
#184 Le 10/12/2010, à 13:46
- valAa
Re : Windev et Webdev, c'est super ou c'est super nul?
valAa a écrit :Python n'a pas de switch.
Mais on obtient le même comportement très facilement avec un dictionnaire de fonctions (lambda ou pas).
Je sais pas si c'est plus clair pour un novice, mais ce qui est sûr c'est que ça limite beaucoup le code spaghetti.
Les hashtables c'est bon, mangeons enOuais, bah Python en même temps… (oui, je ne suis pas fan de ce langage
).
M'enfin, oui on peut obtenir la même chose avec un dico mais j'aime bien mes switch quand même.Par contre, le switch n'a rien a voir avec le code spaghetti (goto je veux bien, mais switch n'y incite pas plus que le reste).
Nan mais j'ai rien contre le switch, je dis pas qu'il incite plus qu'autre chose à faire du spaghetti ou quoi.
Je dis juste qu'on s'en passe très bien quand on ne l'a pas sous la main. (ce qui arrive dans des langages "sérieux", oh my god)
Et que mettre les différents 'case' dans des fonctions oblige ceux qui seraient tentés par du code spaghetti (ça m'arrive des fois d'être tenté) à faire autrement.
Après, quand je fais du C++, j'utilise aussi le switch, et je le vis très bien.
Bref, ce qui fait le "sérieux" d'un langage, ce n'est pas sa ressemblance ou pas avec les autres, et est-ce qu'il a la même structure de contrôle de tel autre langage "sérieux"... c'est ce qu'on peut faire avec de manière propre et maintenable.
Hors ligne
#185 Le 10/12/2010, à 13:51
- HP
Re : Windev et Webdev, c'est super ou c'est super nul?
exemple :
def switch(arg):
if arg == 1:
return do_something()
if arg == 2:
return do_other()
if arg == 3:
return do_another()
if arg in [4, 5, 6]:
return do_wow()
return do_unexpected()
c'est pas forcément génial, mais je ne vois pas en quoi le switch avec un syntaxe de type C serait mieux… m'est avis que le switch est un structure assez peu utile.
Dernière modification par HP (Le 10/12/2010, à 13:53)
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#186 Le 10/12/2010, à 13:58
- grim7reaper
Re : Windev et Webdev, c'est super ou c'est super nul?
Je dis juste qu'on s'en passe très bien quand on ne l'a pas sous la main. (ce qui arrive dans des langages "sérieux", oh my god)
…
@HP : Il n'est pas mieux, je n'ai jamais dit ça !
Et il n'est pas inutile, je rappelle que certains langage n'ont pas de hashmap de base et que j'ai pas forcément envie de me palucher le codage à chaque fois qu'un switch peut suffire.
Hors ligne
#187 Le 10/12/2010, à 14:37
- Mathieu147
Re : Windev et Webdev, c'est super ou c'est super nul?
Mathieu147 a écrit :grim7reaper a écrit :Encore faut-il que le langage le permette…
Et non, certaines structures sont assez hard à coder de manière efficace.Bah, quand on sait comment ça marche… Le plus compliqué dans ce que j'ai cité ce sont les arbres équilibrés mais même ça, avec les algorithmes sous les yeux tu peux les refaire assez facilement dans n'importe quel langage.
Non, pas n'importe quel langage. Certains ne propose pas ce qu'il faut pour.
Savoir comment ça fonctionne est une chose (d'ailleur je dis bien savoir comment ça fonctionne, recopier un algo n'a aucun intérêt), le coder de manière optimale en est une autre.
Y a-t-il beaucoup de langages qui n'ont aucune notion de référence vers un objet ou une structure?
J'ai dans mes cours d'algorithmique des explications sur les arbres équilibrés: ça fait seulement 9 pages, avec les explications, pas mal de schémas, et une implémentation en pseudo code. Avec ça tu peux implémenter des arbres équilibrés dans n'importe quel langage.
Une fois que c'est fait, t'es pas obligé de connaître la théorie sur le bout des doigts, tu dois juste utiliser tes fonctions add(), remove(), search() etc.
exemple :
def switch(arg): if arg == 1: return do_something() if arg == 2: return do_other() if arg == 3: return do_another() if arg in [4, 5, 6]: return do_wow() return do_unexpected()
c'est pas forcément génial, mais je ne vois pas en quoi le switch avec un syntaxe de type C serait mieux… m'est avis que le switch est un structure assez peu utile.
Le switch n'est pas très utile puisqu'il peut être émulé avec des if…elseif…else, mais parfois c'est pas plus mal, ça fait plus clair.
Idem pour le for, il ne sert à rien puisqu'il peut être émulé par une boucle while:
for (A;B;C) {
…
}
⇓
A;
while (B) {
…
C;
}
for (int i=0;i<10;i++) {
…
}
⇓
int i=0;
while (i<10) {
…
i++;
}
Pffff…
Hors ligne
#188 Le 10/12/2010, à 14:53
- grim7reaper
Re : Windev et Webdev, c'est super ou c'est super nul?
Y a-t-il beaucoup de langages qui n'ont aucune notion de référence vers un objet ou une structure?
Beaucoup non, mais il y en a (c'est pas parce qu'ils sont une minorité, comme les utilisateurs d'OS libre, qu'il faut les négliger ou les oublier).
J'ai dans mes cours d'algorithmique des explications sur les arbres équilibrés: ça fait seulement 9 pages, avec les explications, pas mal de schémas, et une implémentation en pseudo code. Avec ça tu peux implémenter des arbres équilibrés dans n'importe quel langage.
Encore une fois, entre l'implémentation théorique et celle pratique il y a parfois un monde.
En théorie, l'optimisation de Sedgewick sur le tri rapide est cool, en pratique elle l'est beaucoup moins (voire elle à l'effet inverse) de la notion de caches matériels.
Une fois que c'est fait, t'es pas obligé de connaître la théorie sur le bout des doigts, tu dois juste utiliser tes fonctions add(), remove(), search() etc.
Dans la mesure du possible, j'aime comprendre ce que j'utilise. Question de principe…
Le switch n'est pas très utile puisqu'il peut être émulé avec des if…elseif…else
Idem pour le for, il ne sert à rien puisqu'il peut être émulé par une boucle while:
Ces 2 affirmations sont fausses, il faudrait voir à ne pas laisser la sémantique de côté.
Un for n'est pas un while, et un switch n'est pas une suite d'if-else car la sémantique est différente. D'ailleurs, en général, les compilos n'optimise pas de la même manière (un switch est plus performant qu'une suite d'if-else, et un for s'optimise plus facilement qu'un while il me semble).
Alors oui, ok au niveau action ça rend pareil, mais au niveau sens pas vraiment.
C'est comme les gens qui font
printf("Hello Wolrd!\n");
au lieu de faire
puts("Hello World!\n");
printf à une sémantique de chaîne formatée, si on ne formate pas la chaîne c'est un non-sens de l'utiliser.
Dernière modification par grim7reaper (Le 10/12/2010, à 14:54)
Hors ligne
#189 Le 10/12/2010, à 14:58
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
Idem pour le for, il ne sert à rien puisqu'il peut être émulé par une boucle while:
for (A;B;C) { … }
⇓
A; while (B) { … C; }
for (int i=0;i<10;i++) { … }
⇓
int i=0; while (i<10) { … i++; }
⇓
i est un entier = 5
BOUCLE
// blablabla
i++
A FAIRE TANTQUE i<15
Je suis d'accord pour dire que for et while comme POUR et BOUCLE se complètent, ils ont l'un et l'autre une utilité bien distincte.
i est un entier
POUR i=5 A 15
// blabla
FIN
Dernière modification par sebz_ (Le 10/12/2010, à 15:05)
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne
#190 Le 10/12/2010, à 15:03
- HP
Re : Windev et Webdev, c'est super ou c'est super nul?
i est un entier = 5 BOUCLE // blablabla i++ A FAIRE TANTQUE i<15
Quelle horreur…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#191 Le 10/12/2010, à 15:14
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
sebz_ a écrit :i est un entier = 5 BOUCLE // blablabla i++ A FAIRE TANTQUE i<15
Quelle horreur…
int i=0;
while (i<10) {
…
i++;
}
Ce code est plus lisible isolé, mais ça doit faire mal au yeux à la longue toutes ces accolades et parenthèses.
Moi c'est les accolades qui me saoule.
Dernière modification par sebz_ (Le 10/12/2010, à 15:16)
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne
#192 Le 10/12/2010, à 15:18
- Kanor
Re : Windev et Webdev, c'est super ou c'est super nul?
for i in range(11):
print i
c'est vrai les accolade c'est chiant
Hors ligne
#193 Le 10/12/2010, à 15:18
- The Uploader
Re : Windev et Webdev, c'est super ou c'est super nul?
Ce code est plus lisible isolé, mais ça doit faire mal au yeux à la longue toutes ces accolades et parenthèses.
au pire tu prends python!
Et puis, en W-Langage tu as des parenthèses, tout de même!
Y'a bien pire niveau parenthèses :
;; Tabulation of Hofstadter's male and female sequences
(letrec ((female (lambda(n)
(if (= n 0) 1
(- n (male (female (- n 1)))))))
(male (lambda(n)
(if (= n 0) 0
(- n (female (male (- n 1))))))))
(display "i male(i) female(i)")(newline)
(do ((i 0 (+ i 1)))
((> i 8) #f)
(display i) (display " ")(display (male i))(display " ")(display (female i))
(newline)))
Vive Scheme! \o/
Dernière modification par The Uploader (Le 10/12/2010, à 15:23)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#194 Le 10/12/2010, à 15:23
- grim7reaper
Re : Windev et Webdev, c'est super ou c'est super nul?
Ce code est plus lisible isolé, mais ça doit faire mal au yeux à la longue toutes ces accolades et parenthèses.
Moi c'est les accolades qui me saoule.
Moi j'aime bien les accolades et les parenthèses (mais à petite dose, faut pas que ça devienne du Lisp non plus).
Mais si tu n'aimes pas, alors tu devrais adorer Python.
@The Uploader : *PAN*, tu me rappelles de mauvais souvenir là…
Dernière modification par grim7reaper (Le 10/12/2010, à 15:24)
Hors ligne
#195 Le 10/12/2010, à 15:27
- Mathieu147
Re : Windev et Webdev, c'est super ou c'est super nul?
Le switch n'est pas très utile puisqu'il peut être émulé avec des if…elseif…else
Idem pour le for, il ne sert à rien puisqu'il peut être émulé par une boucle while:
Ces 2 affirmations sont fausses, il faudrait voir à ne pas laisser la sémantique de côté.
Je me suis pas très bien exprimé, je voulais juste dire que switch n'est pas nécessairement indispensable.
un switch est plus performant qu'une suite d'if-else, et un for s'optimise plus facilement qu'un while il me semble
Honnêtement, je n'en sais rien, mais je trouverais ça étonnant. Peut-être que pour le switch il y a des astuces, mais un for c'est vraiment un while comme j'ai montré plus haut.
sebz_ a écrit :i est un entier = 5 BOUCLE // blablabla i++ A FAIRE TANTQUE i<15
Quelle horreur…
Tu l'as dit…
Je continue quand-même à me poser la question: il n'y a pas moyen de mettre de gardien de boucle avant ladite boucle?
Ce code est plus lisible isolé, mais ça doit faire mal au yeux à la longue toutes ces accolades et parenthèses.
Moi c'est les accolades qui me saoule.
Non pas du tout… Je préfère des accolades que des mots-clés si longs. Mais je crois que finalement c'est une question d'habitude.
@The Uploader : *PAN*, tu me rappelles de mauvais souvenir là…
re-*PAN* parce que Scheme, merci, j'ai déjà donné… Beurk…
Pffff…
Hors ligne
#196 Le 10/12/2010, à 15:28
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
for i in range(11): print i
c'est vrai les accolade c'est chiant
Pas besoin de déclarer i ?
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne
#197 Le 10/12/2010, à 15:29
- The Uploader
Re : Windev et Webdev, c'est super ou c'est super nul?
@The Uploader : *PAN*, tu me rappelles de mauvais souvenir là…
Ouais ben j'en bouffe avec l'écriture d'un script-fu pour GIMP... alors pas la peine de me remercier.
Dernière modification par The Uploader (Le 10/12/2010, à 15:30)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#198 Le 10/12/2010, à 15:31
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
Ce code est plus lisible isolé, mais ça doit faire mal au yeux à la longue toutes ces accolades et parenthèses.
au pire tu prends python!
Et puis, en W-Langage tu as des parenthèses, tout de même!
Y'a bien pire niveau parenthèses :;; Tabulation of Hofstadter's male and female sequences (letrec ((female (lambda(n) (if (= n 0) 1 (- n (male (female (- n 1))))))) (male (lambda(n) (if (= n 0) 0 (- n (female (male (- n 1)))))))) (display "i male(i) female(i)")(newline) (do ((i 0 (+ i 1))) ((> i 8) #f) (display i) (display " ")(display (male i))(display " ")(display (female i)) (newline)))
Vive Scheme! \o/
Au secours lol
C'est pire que SI SINON quand t'oublie une parenthèse, tu t'arraches les cheveux.
Mais comme j'ai lu plus haut VIM les surlignes heureusement.
Oui dans Windev y a des parenthèses mais sur la même ligne, c'est pas comparable.
Dernière modification par sebz_ (Le 10/12/2010, à 15:32)
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne
#199 Le 10/12/2010, à 15:35
- Mathieu147
Re : Windev et Webdev, c'est super ou c'est super nul?
@The Uploader : *PAN*, tu me rappelles de mauvais souvenir là…
Ouais ben j'en bouffe avec l'écriture d'un script-fu pour GIMP... alors pas la peine de me remercier.
![]()
Ouais moi aussi j'en avais fait un une fois. Pourquoi les développeurs de Gimp ont-ils choisi ce langage?
Au secours lol
C'est pire que SI SINON quand t'oublie une parenthèse, tu t'arraches les cheveux.
Ouais, avec Scheme, dans tous les cas, tu chies des barres carrées.
Ça doit être simple à parser pour l'interpréteur mais punaise c'est mille fois trop chiant à écrire!
Pffff…
Hors ligne
#200 Le 10/12/2010, à 15:38
- sebz_
Re : Windev et Webdev, c'est super ou c'est super nul?
HP a écrit :sebz_ a écrit :i est un entier = 5 BOUCLE // blablabla i++ A FAIRE TANTQUE i<15
Quelle horreur…
Tu l'as dit…
Je continue quand-même à me poser la question: il n'y a pas moyen de mettre de gardien de boucle avant ladite boucle?
C'est quoi que t'appelle un gardien de boucle ?
Edit : A FAIRE TANTQUE c'est ça que t'appelle gardien de boucle. Je pense que c'est logique, i++ incrément et tombe sur i<15 à chaque fois, si i<15 il boucle sinon ça s'arrête. C'est une logique de français que veux tu.
les ['Quote'] du BBcode sont chiantes aussi lol.
Edit : Pour revenir au "gardien" de boucle, on peut faire ça aussi.
i est un entier = 5
TANTQUE i<15
i++
//Blabla
FIN
Dernière modification par sebz_ (Le 13/12/2010, à 15:21)
Desktop : 14.04 LTS 64 bits / ASUS M4A89GTD PRO / DDR3 8Go / Phenom II 4x 955 Black Edition / ATI HD6870 / DLINK Airplus Xtrem 108mb/s
Hors ligne