Valid XHTML     Valid CSS2    

Listing du fichier pmg.php

 

00001     <?php
00002     #   # (gH)   -_-  pmg.php  ;  TimeStamp (unix) : 26 Octobre 2016 vers 18:55
00003     
00004     include(
"std.php") ;
00005     debutPage
("Problème algorithmique PMG","strict") ;
00006     debutSection
() ;
00007     
00008     #" =============================================================================
00009     
00010     h1
("Le problème algorithmique PMG") ;
00011     h1
("(".ghbleu("PMG")." = ".ghbleu("P")."etit ".ghbleu("M")."oyen ".ghbleu("G")."rand)") ;
00012     
00013     pvide
() ;
00014     
00015     p
() ;
00016     nbsp
(20) ;
00017     echo ghVert
("gilles.hunault \"at\" univ-angers.fr") ;
00018     finp
() ;
00019     
00020     pvide
() ;
00021     
00022     ## =============================================================================
00023     
00024     h2
("Présentation du problème") ; $que ;
00025     
00026     $a 
ghrouge("a") ;
00027     $b 
ghrouge("b") ;
00028     $c 
ghrouge("c") ;
00029     $d 
ghrouge("d") ;
00030     $p 
ghrouge("p") ;
00031     $m 
ghrouge("m") ;
00032     $g 
ghrouge("g") ;
00033     $x 
ghrouge("x") ;
00034     $y 
ghrouge("y") ;
00035     $SI    
ghvert("SI") ;
00036     $SINON 
ghvert("SINON") ;
00037     
00038     blockquote
() ;
00039     
00040     p
("texte") ;
00041     echo " On dispose de 3 variables d'entrée 
$a,$b,$c et on veut écrire un algorithme qui met " ;
00042     echo " dans les 3 variables de sortie 
$p,$g,$m respectivement la plus petite valeur, la " ;
00043     echo " plus grande et celle du milieu. On a ici écrit volontairement 
$p,$g,$m au lieu de " ;
00044     echo 
$p,$m,$g. " ;
00045     finp
() ;
00046     
00047     finblockquote
() ;
00048     
00049     # ------------------------------------------------------------------------------
00050     
00051     $que
++ ; h2("Partie $que.") ;
00052     
00053     # ------------------------------------------------------------------------------
00054     
00055     blockquote
() ;
00056     
00057     p
("texte") ;
00058     echo " Fournir au moins les "
.ghbleu("5")." solutions dirigées suivantes dont la progression pédagogique " ;
00059     echo " est imposée." 
;
00060     finp
() ;
00061     
00062     blockquote
() ;
00063     
00064     p
("texte") ;
00065     echo b
(" Solution 1&nbsp;: ")." on n'utilisera que des structures $SI simples, sans $SINON ni imbrication. Pas de tableau. " ;
00066     finp
() ;
00067     
00068     p
("texte") ;
00069     echo b
(" Solution 2&nbsp;: ")." on pourra utiliser des structures $SI plus complexes avec $SINON et imbrications possibles.  " ;
00070     echo " Toujours pas de tableau.  " 
;
00071     finp
() ;
00072     
00073     p
("texte") ;
00074     echo b
(" Solution 3&nbsp;: ")."aucune structure $SI n'est autorisée, mais on dispose des fonctions de deux  " ;
00075     echo " variables "
.b("min($x,$y)")." et ".b("max($x,$y)").". Pas de tableau. Attention, c'est difficile pour la valeur  " ;
00076     echo " du milieu.   " 
;
00077     finp
() ;
00078     
00079     p
("texte") ;
00080     echo b
(" Solution 4&nbsp;: ")." on peut utiliser un tableau mais aucune fonction sur tableau n'est prédéfinie.  " ;
00081     finp
() ;
00082     
00083     p
("texte") ;
00084     echo b
(" Solution 5&nbsp;: ")." on peut utiliser un tableau et toutes les fonctions possibles et  " ;
00085     echo " imaginables sur tableau. " 
;
00086     finp
() ;
00087     
00088     finblockquote
() ;
00089     finblockquote
() ;
00090     
00091     # ------------------------------------------------------------------------------
00092     
00093     $que
++ ; h2("Partie $que.") ;
00094     
00095     # ------------------------------------------------------------------------------
00096     
00097     blockquote
() ;
00098     
00099     p
("texte") ;
00100     echo "On veut généraliser le problème. Réfléchir aux questions suivantes&nbsp;:" 
;
00101     finp
() ;
00102     
00103     blockquote
() ;
00104     
00105     p
("texte") ;
00106     echo " - quelle(s) solution(s) seraient les plus adaptées, quitte à les modifier un peu, si on avait  " 
;
00107     echo " non plus 3 variables 
$a,$b,$c mais 4 variables $a,$b,$c,$d&nbsp;?   " ;
00108     finp
() ;
00109     
00110     /*
00111     p("texte") ;
00112     echo " - quelle(s) solution(s) fonctionnent aussi bien avec des chaines de caractères qu'avec des nombres&nbsp;?  " ;
00113     finp() ;
00114     */
00115     
00116     p
("texte") ;
00117     echo " - quelle est la solution la plus courte à écrire&nbsp;? la plus lisible&nbsp;? la plus simple&nbsp;? la plus rapide&nbsp;?  " 
;
00118     finp
() ;
00119     
00120     div
("invisible") ;
00121     pre_fichier
("pmg-alg.txt") ;
00122     findiv
() ;
00123     
00124     p
("texte") ;
00125     echo " - dans quels langages de programmation a-t-on une fonction de tri native&nbsp;?   " 
;
00126     finp
() ;
00127     
00128     p
("texte") ;
00129     echo " - si on devait utiliser des objets plus compliqués que de simples variables avec des critères   " 
;
00130     echo " de comparaison multiple, que faudrait changer pour trouver le meilleur objet, le pire,  " 
;
00131     echo " et l'objet moyen&nbsp;?  " 
;
00132     finp
() ;
00133     
00134     p
("texte") ;
00135     echo " - comment se définit la "
.em("tendance centrale")." en statistiques&nbsp;?" ;
00136     echo " et les "
.em("multi-centroides pondérés")." en &laquo;Big Data&raquo;&nbsp;?" ;
00137     finp
() ;
00138     
00139     p
("texte") ;
00140     echo " - en admettant qu'on dispose d'une \"liste\" de valeurs (\"vraie\" liste, vecteur, tableau, etc.) " 
;
00141     echo " est-ce que ce serait simple de trouver en plus des "
.em("extrema")." leur nombre d'occurences, " ;
00142     echo " la position de leur première occurence, celle de leur dernière occurence, le tout " 
;
00143     echo b
("en un seul parcours de la liste")." pour des raisons d'efficacité&nbsp;?" ;
00144     finp
() ;
00145     
00146     finblockquote
() ;
00147     finblockquote
() ;
00148     
00149     # ------------------------------------------------------------------------------
00150     
00151     h2
(ghbleu("Quelques remarques")) ;
00152     
00153     # ------------------------------------------------------------------------------
00154     
00155     blockquote
() ;
00156     
00157     p
("texte") ;
00158     echo " Pour savoir si on a réussi l'exercice, il faut tester "
.ghvert("3!=6")." cas selon les valeurs de $a$b et $c quand ces " ;
00159     echo " variables sont toutes distinctes deux à deux. Il faut donc avoir au moins " 
;
00160     echo " 6 lignes avec 
$a,$b,$c en entrée et les bons $p,$m,$g en sortie pour pouvoir conclure. " ;
00161     finp
() ;
00162     
00163     p
("texte") ;
00164     echo "Gr&acirc;ce à l'"
.b("associativité")." des fonctions ".b("min($x,$y)")." et ".b("max($x,$y)").", il est assez facile " ;
00165     echo " de trouver 
$p et $g dans le cadre de la solution 3." ;
00166     finp
() ;
00167     
00168     p
("texte") ;
00169     echo " Comme le typage ne fait pas partie de l'énoncé, en fait toutes les " 
;
00170     echo " solutions doivent s'adresser aussi bien à des chaines de caractères qu'à des " 
;
00171     echo " nombres, entiers ou réels ou même à n'importe quelles données, comme des fractions \"symboliques\", pourvu qu'on  " 
;
00172     echo " ait une relation d'"
.b("ordre total").". " ;
00173     echo " C'est pourquoi il est important de traiter le problème avec des "
.b("valeurs").$a$b et $c, " ;
00174     echo " m&ecirc;me si l'ordre lexicographique pour les lettres françaises accentuées est " 
;
00175     echo em
("\"intrinsèquement rébarbatif\"")." et ".em("\"non conceptuel\"").". " ;
00176     finp
() ;
00177     
00178     p
("texte") ;
00179     echo " Un problème pour public plus averti consiste à comparer des programmes d'optimisation avec plusieurs critères " 
;
00180     echo " d'évaluation. " 
;
00181     finp
() ;
00182     
00183     
00184     p
("texte") ;
00185     echo "Parmi les objectifs pédagogiques visés par cet exercice, on peut noter l'entrainement " 
;
00186     echo " à l'instruction 
$SI et à l'imbrication, l'aptitude à établir des critères de choix pour comparer les solutions, " ;
00187     echo " l'introduction de variables ou de structures de données complémentaires pour résoudre le problème comme ici le tableau, " 
;
00188     echo " la volonté de généricité de code pour faire abstraction du typage." 
;
00189     finp
() ;
00190     
00191     finblockquote
() ;
00192     
00193     ## =============================================================================
00194     
00195     pvide
() ;
00196     
00197     p
() ;
00198     echo href
("montresource.php?nomfic=pmg.php","Code-source PHP de cette page","orange_stim nou")."." ;
00199     finp
() ;
00200     
00201     finSection
() ;
00202     finPage
() ;
00203     ?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)