• PG et la prog

    Graaaaaaah ! Déjà qu'elle y connait rien en info, maintenant elle se mêle de programmation... Snif.
    Déjà on programme avec Maple. Pour ceux qui connaissent pas, Maple c'est un formidable outil de calcul formel, associé à un piteux langage de programmation. Toutes sortes d'instructions non standard, une gestion des boucles... pathétique, et une syntaxe générale qui me rappelle le pascal. (vous savez, ce truc qu'on utilisait il ya longtemps)
    Pour un soft qui sort régulièrement avec des versions de plus en plus performantes, c'est déprimant.

    Bon, ça c'est l'intro.

    La nouvelle marotte de PG, c'est de dire qu'il ne faut pas se servir des fonctions natives de Maple. (en gros de se priver de son seul intérêt)
    Mais le pire, c'est le pourquoi de cette étrange décision.
    "C'est plus rapide de recoder les fonctions, le programme sera plus rapide" (sic!)
    Donc, pour résumer, voilà le fonctionnement de Maple.
    Il parse le code pour repérer les erreurs.
    Il l'interprète, le compile et enfin l'exécute.
    Par quel MIRACLE, utiliser une fonction native précompilée et over optimisée serait-il plus lent que de
    faire interpréter puis compiler puis utiliser une fonction. Ca implique que le temps d'interprétation et de compilation soit négatif. Problème.

    Deuxièmement, sur un plan moins technique, je voulais parler du comportement général du programmeur.
    Un comportement bien (que je m'efforce de respecter) consiste à aérer son code, indenter, éviter les astuces™ foireuses de programmation, de faire des bouts de code réutilisables, mettre des noms de variables explicites, bien sûr à commenter, bref respecter le lecteur éventuel.

    Le programmeur qui code pour lui pourrait à la limite ne pas suivre ces conventions (bien que je ne lui conseille pas), mais quand on est professeur, ça devient indispensable.
    Surtout que la majorité des élèves ne connaissait pas la programmation avant le premier cours de cette année.

    En gros, voilà ce qu'il ne faut pas faire (en règle générale, mais surtout lorsque c'est un "corrigé") :

    Racine_carré :=proc(a,e)
    local p,c,q,em,b,n,f,u;
    p:=0; c:=1; while c<a do p:=p+1; u=2*u od;
    u:=1; q:=0; while 2*q<p-2 do q:=q+1; c=2*c od;
    em:=e/(3*u); b:=1/5;f:=proc(x,a)  ;(x*x+a)/(2*x) end;
    print(p,q,'valeurs_initiales_choisies u0_et_u1_sont', u, 'et', evalf(f(u,a)));
    u:=f(u,a); n:=1;while b>em do n:=n+1;b:=b*b;u:=f(u,a) od;
    print('valeur_approchée de_racine_de_',a,'est', evalf(u));
    print('valeur_obtenue_en_',n,'_iterations');
    print('valeur_approchée_donnée_par_maple', evalf(sqrt(a)));
    end;


    Voilà le code à la PG, featuring plusieurs instructions par ligne, la proc sous définie en plein milieu d'autres
    instructions, aucune indentation, aucun commentaire.
    Comment donner envie aux gens de programmer. Bravo. Clap Clap.

    Racine_carré :=proc(a,e)
    local p,c,q,em,b,n,f,u;
    p:=0;
    c:=1;
    while c<a do# On approxime rapidement le premier terme de la suite par des puissances de 2
    p:=p+1; c=2*c
    od;
    u:=1;
    q:=0;
    while 2*q<p-2 do# On calcule u0=2^E(p/2)
    q:=q+1; c=2*c
    od;
    em:=e/(3*u);#Calcul visant à obtenir la précision de l'approximation
    b:=1/5;
    f:=proc(x,a) # Fonction dépendant d'un paramètre
    (x*x+a)/(2*x);
    end;
    print(p,q,'valeurs_initiales_choisies u0_et_u1_sont', u, 'et', evalf(f(u,a)));
    u:=f(u,a);
    n:=1;
    while b>em do#Tant que la précision voulue n'a pas été atteinte
    n:=n+1;b:=b*b;u:=f(u,a)
    od;
    print('valeur_approchée de_racine_de_',a,'est', evalf(u));
    print('valeur_obtenue_en_',n,'_iterations');
    print('valeur_approchée_donnée_par_maple', evalf(sqrt(a)));
    end;
    Voilà un code un peu plus clair
    Enfin bon c'est pas à moi de faire son boulot, mais ya des fois ça m'énerve
    « Beryl-SuiteArchos POWER »

    Tags Tags : , , ,
  • Commentaires

    1
    Dimanche 11 Février 2007 à 21:24
    Oulah c'est pathétique...
    Rien à redire sur ton article.
    Pourquoi mettre plusieurs instructions sur une seule ligne ? Pour faire croire qu'on a un code simple qui prend peu de lignes ?
    2
    Mardi 20 Février 2007 à 13:47
    Es ce que tu connait Matlab ?
    Pakeu je croit (je dit bien "je crois")q ue ca fait des truc incompreansible et inexpliqauble tel que ce que tu a écrit dans ton article ...
    3
    Mercredi 21 Février 2007 à 23:43
    ça dépend plus du codeur que du langage (sauf bien sur si tu t'amuses à faire du BrainF*ck)
    4
    Jeudi 8 Mars 2007 à 18:58
    du brainkoi ??? Roooo je veut pas savoir !!!
    5
    Jeudi 8 Mars 2007 à 20:33
    Le BF est un langage de programmation qui tient en 8 caractères.
    Un truc codé en brainf*ck c'est tellement incompréhensible que ça bouzille le cerveau...
    Suivre le flux RSS des commentaires de cet article


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :