[Tutoriel] Les fonctions avec DEF

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Tutoriel] Les fonctions avec DEF

Message par Kuroshitsu le Dim 21 Déc - 15:24

Premier tutoriel sur Petit Computer 3 ! Bien d'autres suivront, mais j'ai choisi pour le moment de traiter d'une commande qui m'a vraiment séduite car présente dans de nombreux langages informatiques. La commande DEF permet comme nom l'indique de définir... une fonction. Si vous ne savez pas encore ce que c'est, je vous invite à lire ce tutoriel en entier, c'est un outil de programmation très puissant !


I) Qu'est ce qu'une fonction ?

Une fonction est d'une certaine manière une commande avec des attributs. Prenons pour exemple la commande POW (ou puissance) : celle-ci possède deux attributs, la puissance et le nombre, que l'on précise lors de son utilisation.
POW(10,2)=100
Et si cette commande n'avait pas existé ? Eh bien grâce à DEF, nous pouvons la créer nous-même !


II) Créer une fonction

Pour définir une fonction, on utilise un schéma bien particulier :

DEF NOM_FONCTION(attribut1 , attribut2...) // On définit une fonction qui travaillera avec une ou plusieurs variables : attribut1, attribut2...
Instructions diverses utilisant les attributs // On réalise diverses opérations avec (ou sans) ces variables
RETURN resultat // On renvoie le résultat
END // On marque la fin de la définition de la fonction


Tout cela peut paraître un peu flou, alors illustrons ce schéma avec une fonction "addition".

DEF ADDITION(A,B) // On définit la fonction addition avec les variables A et B
RETURN A+B // On renvoie l'addition de A et B
END // On marque la fin de la définition de la fonction


Et voilà, vous avez créé la fonction addition ! Bien sûr, on peut penser à bien d'autres applications plus complexes. A noter que les fonctions marchent aussi avec les chaînes de caractères. Attention, pour être activée, la définition d'une fonction doit être lue au moins une fois ! Ces quelques lignes ne perturbant pas l’exécution de votre programme, je vous conseille de les placer dans l'en-tête de votre programme, ou dans une sous-partie dédiée à l'initialisation.

Note : Vous pouvez tout aussi bien créer une fonction sans attribut ! Pour cela, laissez les deux parenthèses à côté du nom de fonction sans rien mettre à l'intérieur. Exemple : "RNDF()"


III) Utiliser les fonctions dans le programme

Maintenant que nous avons créé notre fonction, il ne reste plus qu'à l'utiliser. On veut additionner deux variables C et D, avec E le résultat de l'addition :

C=2
D=3
E=ADDITION(C,D)


Si l'on affiche E, on obtiendra 5, autrement dit 2+3. C'est aussi simple que ça ! Par ailleurs, lorsque vous utilisez une fonction, vous n’êtes pas obligé d'utiliser les mêmes noms de variable que dans la définition. C'est d'ailleurs bien là que réside le côté universel de ces fonctions.


IV) Des fonctions qui renvoient plusieurs résultats

Avant de lire cette partie, assurez-vous d'avoir bien maîtrisé les précédentes, au risque de vous emmêler les pinceaux ! Le cas des fonctions renvoyant plusieurs variables est en effet assez particulier, car définir et appeler la fonction se fait d'une autre façon.
D'une manière imagée, les fonctions à un seul résultat "renvoyaient" ce résultat, ce qui permettait de l'utiliser directement dans les opérations. Or, avec les fonctions à plusieurs résultats, on dirait plutôt que la fonction fait "sortir" ces résultats, et il faut les récupérer avant de les utiliser dans des opérations.
Analysons tout d'abord comment on définit ces fonctions. Pour cela, on va utiliser une fonction qui renverra la multiplication et la division de deux nombres, que nous nommerons CALC (comme calcul) :

DEF CALC A,B OUT M,D // On définit la fonction CALC avec deux attributs A et B et deux résultats M et D
M=A*B // M est la multiplication de A et B
D=A/B // D est la division de A et B
END // On ferme la définition


Plus de RETURN, on définit les résultats à renvoyer sur la même ligne que les attributs. Voyez "OUT" comme une indication des variables qui vont "sortir". De plus, les attributs ne sont plus placés entre parenthèses. Voyons maintenant comment utiliser ces fonctions :

A=4
B=2
CALC A,B OUT C,D // C prend la valeur A*B et D prend la valeur A/B
PRINT C,D // On obtient respectivement 8 et 2


Vous verrez ce type de fonction partout dans Petit Computer 3, même dans les commandes officielles ! Le principe du "OUT" est au final très logique, il suffit de s'entraîner un peu et de faire quelques essais pour comprendre naturellement son fonctionnement. De même que pour les attributs, les noms de variable des résultats peuvent être différents de ceux donnés dans la définition, ça ne pose aucun problème.

Bien sûr, si vous avez des questions, j'y répondrais sans problème Wink


Dernière édition par Kuroshitsu le Sam 3 Jan - 21:09, édité 9 fois (Raison : Présentation insipide et esprit pointilleux)

_________________
Kuro, Kuro, Kuro... L'aventure commence cheers
avatar
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 18

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Adriendu92 le Dim 21 Déc - 18:03

Tu as fait une faute (hé oui j'ai l'œil cyclops  )
Tu as marqué out M,D mais dans l'exemple tu utilise C et D bounce
Petit probleme de concordance !
Sinon super tuto !
Avant pour "créer des fonctions" on utilisait les labels ça va nous en libérer !!!

_________________
Le monde se partage en 10 ! Ceux qui connaissent le binaire et ceux qui ne le connaissent pas ! study
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Kuroshitsu le Dim 21 Déc - 18:15

Eh ben non c'est pas une faute Razz 

En fait les variables que tu mets dans ta définition n'ont pas besoin d'être les mêmes que celles que tu utilises lorsque tu invoques la fonction, et c'est justement pour ça que j'ai tenu à mettre des lettres différentes Wink

Tu pourrais tout aussi bien mettre ADD(3,5) et obtenir 8, ou mettre CALC 3,5 OUT M,D et obtenir M=15 et D=1,6. En fait les attributs prennent la valeur des variables que tu as mis entre parenthèses, pour pouvoir les utiliser dans la fonction

_________________
Kuro, Kuro, Kuro... L'aventure commence cheers
avatar
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 18

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Adriendu92 le Dim 21 Déc - 18:16

Ah cool tu devrais le préciser Wink


Dernière édition par Adriendu92 le Dim 21 Déc - 20:20, édité 1 fois

_________________
Le monde se partage en 10 ! Ceux qui connaissent le binaire et ceux qui ne le connaissent pas ! study
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Kuroshitsu le Dim 21 Déc - 19:34

Oui tu as raison, je l'ai ajouté ^^

_________________
Kuro, Kuro, Kuro... L'aventure commence cheers
avatar
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 18

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par CounterClockWize le Dim 21 Déc - 21:04

Nice job!
Donc on peut ce faire une sorte de librairie de fonction à déclarer en début de programme!
En plus des labels c'est bien patrique!
le language évolue!
C'est moi ou dans ptc5 on finira par faire du C++!

_________________
If dindon =troue and marron =farce then ?"Chaud les marrons!" clown
avatar
CounterClockWize

Messages : 69
Date d'inscription : 23/08/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Adriendu92 le Dim 21 Déc - 21:44

dans ptc 7 on aurat juste besoin de dire créer un jeu lol!


Dernière édition par Adriendu92 le Lun 22 Déc - 9:53, édité 1 fois

_________________
Le monde se partage en 10 ! Ceux qui connaissent le binaire et ceux qui ne le connaissent pas ! study
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Kuroshitsu le Lun 22 Déc - 8:30

Counter > Haha oui ce principe de fonction se retrouve un peu partout, c'est une bonne chose qu'il soit inclus dans Petit Computer 3 !
Pour le prochain tutoriel, je vais vous dévoiler certaines commandes qui à mon avis nous rapprochent du commentaire d'Adrien...

_________________
Kuro, Kuro, Kuro... L'aventure commence cheers
avatar
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 18

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Adriendu92 le Lun 22 Déc - 9:53

Sérieusement affraid affraid affraid
J'ai trop hâte Twisted Evil Twisted Evil Twisted Evil

_________________
Le monde se partage en 10 ! Ceux qui connaissent le binaire et ceux qui ne le connaissent pas ! study
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par fenixelf le Lun 22 Déc - 12:48

Yep, j'ai hate de l'avoir ce logiciel I love you

_________________
Get Ready... Twisted Evil
avatar
fenixelf

Messages : 226
Date d'inscription : 08/03/2014
Age : 17
Localisation : Île de France - La ville du bois

Voir le profil de l'utilisateur http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Adriendu92 le Mer 14 Jan - 15:52

D'ailleur peut-on utiliser une fonction dans une fonction ?? (Je suis quasi sur que oui)
Combien de fois peut on le faire avant d'obtenir un "OUT OF MEMORY" ??
Question plus a part est-ce qu'il ont changé la limite des out of memory ???

_________________
Le monde se partage en 10 ! Ceux qui connaissent le binaire et ceux qui ne le connaissent pas ! study
avatar
Adriendu92

Messages : 164
Date d'inscription : 07/12/2013
Age : 16
Localisation : Colombes

Voir le profil de l'utilisateur http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Kuroshitsu le Ven 16 Jan - 19:29

Si la fonction insérée dans une autre a été définie avant, y'a aucun souci. J'ai pas fait le test de mémoire par contre...
Mais les OUT OF MEMORY sont bien moins fréquents, même si selon les programmes on trouvera toujours plus ou moins de limites.

_________________
Kuro, Kuro, Kuro... L'aventure commence cheers
avatar
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 18

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [Tutoriel] Les fonctions avec DEF

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum