1

bsxtl(a)
Prgm
if mod(a,4)=0 and mod(a,400)>0 and mod(a,100)=0 or mod(a,4)>0 then
Text "Année normale"
else
if mod(a,4)=0 and mod(a,400)=0 and mod(a,100)=0 or mod(a,4)=0 and mod(a,400)>0 and mod(a,100)>0
Text "Année bissextile"
endif
endprgm


Y a-t-il un moyen plus simple que ce gros machin ? Merci d'avance...

2

bsxtl(a)
func
if mod(a,400)=0 or (mod(a,4)=0 and mod(a,100)/=0) then
Text "Année bissextile"
else
Text "Année normale"
endif endfunc

Ça ? (si mes souvenirs sur la définition d'une année bissextile sont corrects)
Tu peux même remplacer le "mod(a,4)=0" par "(a and 3)=0" mais je sais pas si ça change grand chose en basic.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

Text "Année "&when(mod(a,4)=0 and mod(a,100)/=0 or mod(a,400)=0,"bissextile","normale")
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

rahhhh le temps d'éditer et il poste, lui !
(cela dit évidement, si tu ne dois qu'afficher le texte et ne faire aucun traitement, encore que je vois mal à quoi ça peut servir, le when est préferable)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Oui, ça marche.
Merci Vertyos wink
Et maintenant le transcrire en CAML...

[edit] : greetz à la bonne personne et cross post

6

C'est plutôt "le temps de poster mon message et Vertyos poste, lui". grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

bah... oué tongue
bon par contre en CAML, heu... je garantis rien grin

# let bissextile = function
   a when (a mod 4) = 0 && ((a mod 100) <> 0 || (a mod 400) = 0) -> "bissextile"
 | _ -> "normale";;

[edit] manquait une parenthèse, là c'est bon (moche, mais correct grin)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

8

houuu... c quoi cette horreur ??
Une année a est bissextile quand a est multiple de 4 ou multiple de 400, mais pas multiple de 100
donc la fonction est vite faite:
if (not mod(a, 4)) and (mod(a,100)) or (not mod(400)) then ...
^^ c ti pas plus bô ? tongue
EDIT: Ouuuuh, ça alors.... Super cross-post grin
EDIT2: Gouré pr le dernier opérateur logique tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

9

alamasse GoldenCrystal grin
heu d'ailleurs il me semble qu'il y a une petite erreur : il faut que l'année soit
• soit multiple de 4 mais pas de 100
• soit multiple de 400
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

10

GoldenCrystal > j'ai pas tout compris à ta fonction neutral ça doit être un multiple de 100 mais pas de 4 confus
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

11

Flanker > Ba si a est multiple de 100, mod(a,100)=0, donc la condition est fausse. Sinon, si a est multiple de 4, not mod(a,4) = -1, et de même pour 400 happy
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

12

double cross edit, il a corrigé (oula ^^)
[edit] et je cross en disant ça... bon ok j'abandonne :d
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

13

GoldenCrystal > T'as corrigé entre-temps tongue
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

14

Vertyos>Par contre, pour CAML, je pensais à

let bsxtl = fun a -> (et une grosse ligne de if);;

15

Euh... when(mod(mod(année,100),4)=0,"Bisextile","normale"), ça marche pas ??
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

16

mod(1900,4) = 0 -> mod(mod(1900,100),4) = 0 -> "bissextile", alors que 1900 n'est pas bissextile
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

17

Pkoi l'année bissextile sauterais en début de siècle ??
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

18

pour la même raison qu'il y a une année bissextile tous les 4 ans : une année fait un peu plus que 365 jours, mais un peu moins que 365,25 (mais un peu plus que 365 + 1/4 - 1/100)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

19

Lol napo : moi qui me demandait où je pouvais utiliser mod(), en voila en bel éxemple smile

20

N'est-ce pas grin ?

21

naPO :
Vertyos>Par contre, pour CAML, je pensais à
let bsxtl = fun a -> (et une grosse ligne de if);;

oui mais tant qu'à faire du CAML, utiliser les if je trouve ça dommage wink
(l'un comme l'autre, ça doit surement pas être des bonnes solutions, mais le caml c'est pas fait pour être performant grin)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

22

Flanker>a, je savais pas.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

23

en caML je passerai par le type bool pour avoir ca... (enfin sous SCILAB oui, sous caML peut etre)

(* remplacez 2002 par l'année que vous souhaitez *)
let a = 2002;;
(* on crée une fonction bisextile avec le numéro de l'année *)
let bis a = a ;;
(* on assigne les textes de résultat dans les variables correspondantes *)
let t = "année bisextile" ;;
let f = "année non bisextile" ;;
(* on assigne a mod le module de a et de 4 *)
let modu a = (a mod 4) ;;
(* on transforme cette valeur en booléen avec true si modu=0 *)
(* on ne peut pas appeller le module "mod" parce que c'est un opérateur *)
let verif = modu a = 0 ;;
(* si le module est nul, on affiche t, sinon, on affiche f *)
if verif = true then t else f ;;
(* programme alternatif

let a = 2002;;
let bis a = a ;;
let t = "année bisextile" ;;
let f = "année non bisextile" ;;
let modu a = (a mod 4) = 0 ;;
if modu = true then t else f ;;

mais dans ce cas, on doit impérativement relancer l'ensemble du programme,
alors que dans le cas précedent, on peut directement réassigner
"modu a", ou même passer a let verif=modu "valeur voulue" si on pose verif
avec le type fun*bool->bool *)


Ce programme est fonctionnel sur la version 0.73... donc il doit marcher partout (sauf sur la toute premiere...)

24

soit tu es un clone, soit tu n'as pas lu le topic roll
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

25

la vache, c'est quoi ce code grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

26

il est presque juste en plus (<=> complètement faux gni)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

27

Ce sombre Darky Elle était facile, DSL utilise trop de ifs et de let à mon goût.

28

naPO :
Et maintenant le transcrire en CAML...

C'est une drôle d'idée d'écrire un programme dans un langage, pour ensuite le traduire dans un langage qui n'a rien à voir...
Vertyos :
oui mais tant qu'à faire du CAML, utiliser les if je trouve ça dommage wink

La programme ici n'est qu'impératif, alors...
(l'un comme l'autre, ça doit surement pas être des bonnes solutions, mais le caml c'est pas fait pour être performant grin)

!slap Vertyos :p
• Hippopotame slaps Vertyos :p around a bit with a large trout !




Enfin bref,
let bissextile a =
     (a mod 4 =0)
  && ( (a mod 100 !=0) or (a mod 400 =0) );;
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

29

Bah quoi, c'est vrai ce que je dis grin
Heu c'est && pour le "et", mais "or" pour le "ou" ? Curieux, je ne me rappellais pas de ça. Sinon ton truc ne fait que retourner un booleen (c'est la même chose que la 2eme ligne de ce que j'ai posté en #6)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

30

sextile";;Bon alors if ... then "bissextile" else "pas bis
smile
Heu c'est && pour le "et", mais "or" pour le "ou" ?

J'utilise or par habitude, mais pour faire homogène, on peut utiliser && pour "et" et || pour "ou".

On peut aussi utiliser & pour "et".

Par contre "and" est un mot réservé pour la structure "let x = ... and y = ..." et "|" est réservé pour le filtrage.


Bref, le plus homogène est "&&" et "||".
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou