Vos identifiants
Bienvenue
Voir tous les scripts
Pour mirc 6.1 et moins
Pour mirc 6.2
Pour mirc 6.3
Pour mirc 7.1
Top 10
Vous aimez ou détestez
Soumettre un script
Foire aux questions
Forum de discussion



Les bases du Scripting
Le virus "irc.worm.gen"
Le mIRC D'Or
Snippets
ScreenShots
Tag-moi-ça
Le Pire de l'IRC
L'IRC pour les nuls
Tutoriaux
Configurer UnrealIRCD
Configurer votre box
Attention à l'arnaque!
Usenet et les News
Arrêter de fumer
Un peu d'orthographe
Unreal/Anope Admin
mIRC Script Server
Proxy Web Chat
Magneto for Unreal
Super Poupées
Tour de cartes
L'Equipe
Partenariat
Administration

Web Of Trust
www.chat.exolia.net (Francophone)
fantasya.org (Francophone)

                                            

Résultats du défi du 01/08/03: Calculateur Algébrique

Tout d'abord j'aimerais préciser une petite erreur dans le défi précédent : Toutes les mesures de temps étaient erronées car j'ai bêtement utilisé $ctime au lieu de $ticks. Je m'en excuse.
Ce mois-ci, j'ai l'intension de tester un nouveau type de défi, vous devrez en effet corriger un code et l'optimiser.
Le code en question est un code permettant d'effectuer des calculs algébriques.
Syntaxe : $algebre( calcul , valeurs )
Exemple : $algebre(2a*b/c=r,a=5;b=3;c=2)
Retourne : Valeur de r : 15


L :Code :
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
alias algebre {
;Nom : $algebre
;Syntaxe : $algebre(calcul,valeurs)
;Exemple : $algebre(a+b=c,a=2;b=6)
;Retourne : Valeur de c : 8
var %partiecalculun $gettok($$1,1,61)
var %partiecalculdeux $gettok($$1,2,61)
var %maximum $len(%partiecalculun)
var %index 1
while (%index <= %maximum) {
var %lettreactive $mid(%partiecalculun,%index,1)
var %lettresuivante $mid(%partiecalculun,$calc(%index + 1),1)
var %ascactive $asc(%lettreactive)
var %ascsuivante $asc(%lettresuivante)
var %activelettre $false
var %suivantelettre $false
if (%ascactive >= 65) && (%ascactive <= 90) var %activelettre $true
if (%ascactive >= 97) && (%ascactive <= 122) var %activelettre $true
if (%ascactive >= 48) && (%ascactive <= 57) var %activelettre $true
if (%ascsuivante >= 65) && (%ascsuivante <= 90) var %suivantelettre $true
if (%ascsuivante >= 97) && (%ascsuivante <= 122) var %suivantelettre $true
if (%ascsuivante >= 48) && (%ascasuivante <= 57) var %suivantelettre $true
if (%suivantelettre == $true) && (%activelettre == $true) {
var %partiecalculun $mid(%partiecalculun,1,%index)
var %partiedeux $mid(%partiecalculun,$calc(%index + 1),$len(%partiecalculun))
var %partiecalculun %partiune $+ * $+ %partiedeux
}
inc %index 1
}

var %index 1
while (%index <= $gettok($$2,0,59)) {
var %egalite $gettok($$2,%index,59)
var %lettre = $gettok(%egalite,1,61)
var %chiffre = $gettok(%egalite,2,61)
var %partiecalculun = $replace(%partiecalculun,%lettre,%chiffre)
inc %index 1
}
var %reponse $calc(%partiecalculun)
return Valeur de %partiecalculdeux : %reponse
}


Règlement
  • Doit fonctionner sous mirc 6.03
  • Doit être le plus légé possible, tout en restant fonctionnel.
  • Doit remplir les mêmes fonctions que le code ci-dessus.
  • Vous pouvez renommer les variables, supprimer/remplacer des lignes de codes inutiles, créer des alias, etc.
  • Pas de DLL.





  • Cliquer ici pour connaître le gagnant (ou la gagnante)




    Liste des participants (7)

    Nom du script Auteur Commentaire
    Super algèbre 5000 tiot
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/) et les lettres accolées (multiplication)


  • Points faibles:

  • Calculs ratés : "a+ 5=c,a =3" & "x +3= r,x= 5" & "x+ y=d,x=3;y = 5" & "x *z= d,x = 3 ;z = 5" & "x/ z=e,x = 5 ; z = 3" > À quelques problèmes avec les espaces.


  • Conclusion:

    Temps $algebre: 0.333 ms
    Taille du fichier: 233 bytes
    $algebre Sanaell
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/) et les lettres accolées (multiplication)


  • Points faibles:

  • Calculs ratés : "a+ 5=c,a =3" & "x+ y=d,x=3;y = 5" & "x *z= d,x = 3 ;z = 5" & "x/ z=e,x = 5 ; z = 3" > À quelques problèmes avec les espaces.


  • Conclusion:

    Temps $algebre: 0.5 ms
    Taille du fichier: 391 bytes
    $algebre |PaRa-BoL
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/) et les lettres accolées (multiplication)


  • Points faibles:

  • Calculs ratés : a+ 5=c,a =3 & x+ y=d,x=3;y = 5 & x *z= d,x = 3 ;z = 5 & x/ z=e,x = 5 ; z = 3 > À quelques problèmes avec les espaces.


  • Conclusion:

    Temps $algebre: 1.2 ms
    Taille du fichier: 382 bytes
    Alg Goulagman
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/)
  • Supporte bien les espaces


  • Points faibles:

  • Ne marche pas lorsque 2 lettres sont accolées (multiplication)


  • Conclusion:

    Temps $algebre: 0.2 ms
    Taille du fichier: 131 bytes
    Bien que ce code soit le plus légé, je tiens à favoriser les codes ayant les mêmes fonctions que le code de départ, sinon ce code aurait été le gagnant.
    Algebre de boule :p ToXyKoPaTh
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/)


  • Points faibles:

  • Calculs ratés : x+ y=d,x=3;y = 5 et x +3= r,x= 5 > A quelques problèmes avec les espaces.
  • Ne marche pas lorsque 2 lettres sont accolées (multiplication)


  • Conclusion:

    Temps $algebre: 0.5 ms
    Taille du fichier: 427 bytes
    algebre 1.0 et 2.0 aerith
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/)
  • Supporte bien les espaces


  • Points faibles:

  • Ne marche pas lorsque 2 lettres sont accolées (multiplication)


  • Conclusion:

    Temps $algebre: 6.51 ms
    Taille du fichier: 1096 bytes
    Algebre S4turn
    Points forts:

  • Prend en charge toutes les opérations (+,-,*,/)
  • Supporte bien les espaces


  • Points faibles:

  • Ne marche pas lorsque 2 lettres sont accolées (multiplication)


  • Conclusion:

    Temps $algebre: 1.77 ms
    Taille du fichier: 1321 bytes


    Le gagnant du défi: Super algèbre 5000 de tiot

    Ce code remplit toutes les fonctions du code de base, est légé et assez rapide.
    Dommage pour Goulagman que sont code ne prenne pas en charge les lettres accolées (multiplication).



    Autres défis archivés
    Titre Date Participants
    Un convertisseur binaire 20/02/02 5
    Client Mail mIRC 25/3/2 1
    Un jeu graphique sous mirc 18/7/2 3
    Un nettoyeur d'emails 24/10/2 1
    Un colorieur de nicks 15/12/2 3
    Un Log Viewer 18/01/3 1
    récupérateur de couleurs 15/2/3 2
    SmilesViewer 29/3/3 0
    Animation 8/5/3 2
    Résolveur d'Équations 30/06/03 3
    Calculateur Algébrique 01/08/03 7
    Reproduction de $base 20/09/03 4
    /picfindtext 24/01/04 2
    /breplacestring 28/02/04 2
    Un notifieur de privates 1/12/4 3
    Un détecteur de Net-splits 23/5/5 3


    Retour au défi du moment