AutumnCreed wrote:Est-ce que la transformation sur TI 89 sera la suivante ?
- Code: Select all
Bac()
Prgm
Input M
If M8
Then "recalé"
Else
If M ou = 10 (je connais pas le signe sur le clavier ;])
Then "admis"
Else "Oral"
EndIf(Je ne sais pas comment faire EndIf :P: )
EndIf
EndPrgm
C'est ça ?
Si tu remplaces le "Prgm" par "Func" et le "EndPrgm" par "EndFunc", c'est presque bon.
1) Dans une fonction, tu ne peux pas demander la valeur de M par un "Input". Il faut le placer en paramètre. Il faut donc commencer la fonction par :
- Code: Select all
Bac(M)
Func
...
2) Le "Then" se met sur la même ligne que le "If" et il faut penser à retourner à la ligne après les "Then" et "Else" sinon la calculette ne comprend pas l'instruction. Tu peux aussi utiliser "ElseIf" pour éviter les instructions emboîtées.
3) Enfin, pour retourner une valeur, la calculatrice choisira le dernier résultat "calculé". Ici, elle renverra bien un des résultats parmi "recalé", "admis" et "oral". Cependant, pour la lisibilité et pour plus de sécurité (si tu modifiais ton programme) il est préférable d'utiliser "Return" qui sert justement à demander à la calculette de renvoyer un résultat.
Dans ton cas, cela donnerait ceci :
- Code: Select all
Bac(M)
Func
If M8 Then
Return "recalé"
Else
If M = 10 Then
Return "admis"
Else
Return "Oral"
EndIf
EndIf
EndFunc
ou plus simplement, avec "ElseIf" :
- Code: Select all
Bac(M)
Func
If M8 Then
Return "recalé"
ElseIf M = 10 Then
Return "admis"
Else
Return "Oral"
EndIf
EndFunc
4) Pour les instructions, tu peux tout taper avec le clavier, en toutes lettres, si tu connais le nom des instructions par coeur et sans faute d'orthographe. Sinon, dans l'éditeur de programmes, les menus te permettent d'accéder aux fonctions de programmation les plus courantes. Pour les tests, tu trouveras les symboles =, [Test].
Par ailleurs, même si ce n'est sans doute pas l'objet de ton étude pour l'instant, il faut savoir que la calculette dispose de "fonctions de choix" (la fonction "when(...)" pour la citer) qui permettent de raccourcir encore énormément ton code en renvoyant directement un résultat issu d'un test.
- Code: Select all
Bac(M)
Func
Return when(M8,"recalé",when(M=10,"admis","Oral"))
EndFunc
et en plus, ici, comme il n'y a plus qu'une seule instruction, les "Func", "EndFunc" et "Return" ne servent à rien, ce qui donne finalement :
- Code: Select all
Bac(M)
when(M8,"recalé",when(M=10,"admis","Oral"))