Logiciel de Scrutin remplaçant la machine à voter J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga +243 - 851278216 - 899508675 - 995624714 - 902263541 813572818 La dernière révision de ce texte est disponible sur CD. Code source de la version 1.0 d’un petit utilitaire JavaScript (EcmaScript) pour le dépouillement automatique en temps réel d’un scrutin. Avant toute chose, signalons que le panneau de la console doit être actif (ouvert) pendant l’exécution de ce programme, car c’est là que s’affichent les résultats partiels au fur et mesure de l’avancement du scrutin. 1. Le ou les utilisateur(s) doivent seulement chacun chiquer sur l’icône ou l’identité du candidat, et la machine recalcule automatiquement tout le scrutin, 2. Quand tout le monde a choisi son candidat, on clique sur le bouton FIN, et la machine donne, sur le champ (donc juste à la fin du processus électoral) le verdict final incontestable. 3. Pour augmenter le nombre de candidats, il suffit d’ajouter d’autres boutons dans le code source. 4. Il n’est pas recommandé d’ajouter des voix après le calcul des résultats finaux (après avoir cliqué sur le bouton FIN). J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Le code source du programme : <html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252" /> <base target="_top"> <title>Utilitaire de Machine à scrutin 1.0</title> <meta content="30 days" name=Revisit-after> <meta name=ROBOTS content="INDEX,FOLLOW"> <meta http-equiv=Page-Enter content="RevealTrans(Duration=3,Transition=23)"> <meta http-equiv=Page-Exit content="RevealTrans(Duration=3,Transition=23)"> <meta http-equiv=Content-Language content=fr-be> <meta name=Title content="Logiciel de Machine à voter|Societe"> <meta name=Created content="Lundi 06 mai 2019 - 09:08:28 (AM)"> <meta name=Modified content="Lundi 06 mai 2019 - 18:10:22 (PM)"> <meta name=description content="Logiciel de Machine à voter"> <meta name=keywords content="machine à voter,vote,élections,scrutin,urnes,candidat,postulant,prétendant,candidats,po stulants,prétendants,scruter"> <meta name="author" content="Dr. Jean-Baptiste Dadet DIASOLUKA Nzoyifuanga Luyalu (CNOM : 0866) - Ophtalmologiste"> <meta name="license" content="gratuit"> <meta name="author-address" content="[email protected]"> <meta name="author-site" content="http://diasmath.blogg.org"> <meta name="author-site2" content="http://www.amessi.org/diasoluka"> <meta name="author-site3" content="https://www.vk.com/diasoluyalu"> <script type = "text/javascript"> "use strict"; const Elus = []; let voix = [], cand, encore="",totvoix=0, cumulcand,tcumulcand,prevcandidat; function scruter(p){ const voted=(p.innerHTML); totvoix++; if(!Elus.includes(voted)){ Elus.push(voted); voix.push(1); cand=Elus.indexOf(voted); console.log(`\n# ${encore} LISTE DES ÉLUS = `); console.log(Elus); console.log("Leurs Voix =",voix); console.log("Donc Nb des candidats déjà élus = ",cand+1); encore="ENCORE UN NOUVEL ÉLU :"; prevcandidat=voted, cumulcand=1; } else { cand=Elus.indexOf(voted); voix[cand]++; if(voted==prevcandidat) ++cumulcand; else cumulcand=1; mardi 7 mai 2019 - 2 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 tcumulcand=cumulcand>1 ?" ("+cumulcand+" fois de suite) " :""; let tcumul=voted+tcumulcand.padEnd(25,"."); console.log(`\n${tcumul} =====> TOUTES LES VOIX = `); for(let k=0;k<voix.length;k++){ console.log("==> ",Elus[k],":",voix[k],"voix"); } prevcandidat=voted; } } function fexit(){ let rep=confirm("Attention, Il ne faudra plus ajouter de données. Finir ?"); if(!rep) return; const dres=document.getElementById("dres"), l=voix.length, ct=' CLASSEMENT ', ls=30, sep=`${ct.padStart(ls,"=").padEnd(ls+ct.length,"=")}`; let narr=Array.from(voix); for(let k=0;k<l;k++) voix[k]=String(voix[k]).padStart(5,"0"); voix.sort().reverse(); console.log(`\n< ${sep} >`); dres.innerHTML+=`<br>< ${sep} >`; let c=0, prev; for(let k=0;k<l;k++){ let vx=voix[k]/1, nivdx=narr.indexOf(vx), sfx="",prefx="",dsfx="",dprefx=""; if(prev!=vx) { sfx=" **\n"; prefx="\n"; dsfx=" **"; dprefx="<br>"; } prev=vx; narr[nivdx]="x"; let res=`${++c}. ${Elus[nivdx]} : ${vx} voix (${(vx/totvoix*100).toFixed(2)}%)`; console.log(prefx,res,sfx); dres.innerHTML+=dprefx+res+dsfx+"<br>"; } console.log(`< ${sep} >`); dres.innerHTML+=`<br>< ${sep} ><br>`; console.log(`TOTAL = ${totvoix} VOIX.`); dres.innerHTML+=`TOTAL = ${totvoix} VOIX.`; console.log(`#`.repeat(47)); dres.innerHTML+=`<br>${"#".repeat(47)}`; for(let k=0;k<l;k++) voix[k]=voix[k]/1; mardi 7 mai 2019 - 3 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 } </script> <body style="padding:5;background:#EB1255;color:yellow"> CANDIDATS : <br>(Cette liste, imuable pendant le vote)<br><br> <button onclick="scruter(this)">CANDIDAT_1</button>&nbsp; <button onclick="scruter(this)">CANDIDAT_2</button>&nbsp; <button onclick="scruter(this)">ABSTENTION</button><br> <!--button onclick="scruter(this)">D'AUTRES CANDIDATS</button><br--> <div style="" id="dres"> </div><br> <button onclick="fexit()" style="margin-top:150pt">FIN</button> </body> Exécution (étape de la saisie) : Ici, nous avons deux candidats en lisse, on prévoit donc deux boutons (un pour chaque candidat), et un troisième bouton pour les abstentions (ceux qui n’ont voté pour aucun candidat, non pas ceux qui sont restés à la maison). Rappelons que pour ajouter d’autres candidats, il faut le faire dans le code source (donc avant le début du scrutin). mardi 7 mai 2019 - 4 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Exécution (étape du scrutin) : Le premier électeur a choisi CANDIDAT_2: Le système affiche 1. la liste des déjà élus et qui ne comporte jusque là que le nom du seul élu jusqu’ici. 2. Les voix de chacun des élus, dans le même ordre. 3. Le nombre total des voix (élus) jusque là, ici 1. Le deuxième électeur élit aussi CANDIDAT_2, et le système affiche les résultats contextuels : Il affiche donc CANDIDAT_2, élu deux fois de suite, et totalise 2 voix (CANDIDAT_2 (2 fois de suite)). Le troisième votant élit CANDIDAT_1, et le système affiche : mardi 7 mai 2019 - 5 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Il signale qu’un candidat vient de recevoir sa première voix. Deux candidats au total ont déjà reçu de voix, et leurs noms sont affichés dans leur ordre d’apparition ((2) ["CANDIDAT_2", "CANDIDAT_1"] ). Les voix de chacun jusque là sont affichés dans l’ordre d’affichage de leurs nom (Leurs Voix = (2) [2, 1]). Le nombre des différents élus jusque là est aussi affiché : Donc Nb des candidats déjà élus = 2. La 4è personne choisit de nouveau CANDIDAT_2 : CANDIDAT_2 est de nouveau élu, mais cette dois-ci pas deux fois de suite: CANDIDAT_2......... ===> TOUTES LES VOIX =. Le détail du scrutin à ce point est affiché (CANDIDAT_2 a déjà 3 voix, CANDIDAT_1 une seule voix) : ==> CANDIDAT_2 : 3 voix ==> CANDIDAT_1 : 1 voix La 5è personne choisit l’abstention : Le système signale qu’un autre candidat a été lu pour la première fois, bien que ça ne soit qu’une abstention. # ENCORE UN NOUVEL ÉLU : LISTE DES ÉLUS = Il signale aussi que trois candidats ont déjà reçu au moins une voix : (3) ["CANDIDAT_2", "CANDIDAT_1", "ABSTENTION"] mardi 7 mai 2019 - 6 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Il donne ensuite les voix de chacun dans l’ordre respectif de leur affichage : Leurs Voix = (3) [3, 1, 1] Ensuite il donne le nombre total des candidats ayant jusqu’à présent reçu des voix : Donc Nb des candidats déjà élus = 3 La 6è personne personne elle aussi choisit l’abstention : ABSTENTION vien donc d’être choisi deux fois de suite : ABSTENTION (2 fois de suite) ... ==> TOUTES LES VOIX = Ensuite vient la liste en temps réel des candidats ayant déjà reçu de voix, avec leurs voix : ==> CANDIDAT_2 : 3 voix ==> CANDIDAT_1 : 1 voix ==> ABSTENTION : 2 voix Les 7è, 8è et 9è personnes votent successivement pour CANDIDAT_1 : mardi 7 mai 2019 - 7 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Well, arrêtons notre scrutin ici, en cliquant sur le bouton FIN. Ce bouton est placé un peu plus bas pour minimiser les risques d’être coché par accident : Quelqu’en soit, le système demande la confirmation si le scrutin est vraiment terminé : Si on veut continuer, on clique sur CANCEL, et on peut alors continuer avec le scrutin. Si on a vraiment fini, on clique alors sur OK, et le système donne instantanément le verdit final : mardi 7 mai 2019 - 8 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Nous avons donc (affiché dans la console et le navigateur) un total de 9 VOIX, dont : 4 voix (44.44%) pour CANDIDAT_1, 3 voix (33.33%) pour CANDIDAT_2, et 2 voix (22.22%) ABSTENTIONs. Kinshasa, le 7 mai 2019 (5:31:00 ). mardi 7 mai 2019 - 9 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Mots-clés : machine à voter, processus électoral, vote, scrutin, élections, électeur, élus, verdict, voix, candidats, confirmation, minimiser, risques, abstention, éligible, javascript, ecmascript DIASOLUKA Nz. Luyalu Docteur en Médecine, Chirurgie & Accouchements (1977), CNOM : 0866 - Spécialiste en ophtalmologie (1980) Études humanités : Scientifique - Mathématiques & Physique. Informaticien-amateur, Programmeur et WebMaster. Chercheur indépendant, autonome et autofinancé, bénévole, sans aucun conflit d’intérêt ou liens d'intérêts ou contrainte promotionnelle avec qui qu’il soit ou quelqu’organisme ou institution / organisation que ce soit, étatique, paraétatique ou privé, industriel ou commercial en relation avec le sujet présenté. +243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818 [email protected] Autre Lecture : https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-Creation D’autres publications pouvant aussi intéresser : • https://www.scribd.com/document/377036251/Le-Dosage-Des-Medicaments-enCac-Cas • https://www.scribd.com/document/377035454/Le-Hasard-Des-ThermometresNon-contact-a-Infrarouge • https://www.scribd.com/document/376222482/Petite-Introduction-Aux-FonctionsJavaScript • https://www.scribd.com/document/376221919/La-Foi-en-Jesus-Christ-Pour-Quoi- mardi 7 mai 2019 - 10 / 11 - 5:31:00 J.D.B. DIASOLUKA Nz. Luyalu Calcul des RDVs, version 3 Faire • https://www.scribd.com/document/375689778/Lacuite-visuelle-angulaire • https://www.scribd.com/document/375349851/La-variable-This • https://www.scribd.com/document/375024162/Fonctions-Imbriquees-en-JS • https://www.scribd.com/document/374789297/Format-Interne-Des-ObjetsJavaScript • https://www.scribd.com/document/374788758/Iterations-en-JavaScript • https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation • https://www.scribd.com/document/374597969/Nouvelle-Formule-d-IMC-indicede-doduite-Selon-Dr-Diasoluka • https://www.scribd.com/document/373847209/Property-Descriptors • https://www.scribd.com/document/373833282/l-Objet-Global-Window • https://www.scribd.com/document/372665249/Javascript-Tome-II • https://www.scribd.com/document/355291488/motilite-oculaire-2 • https://www.scribd.com/document/355291239/motilite-oculaire-I • https://www.scribd.com/document/355290248/Script-d-Analyses-Des-ReflexesPupillomoteurs • https://www.scribd.com/document/321168468/Renseignements-Id-etAnthropometriques • https://www.scribd.com/document/320856721/Emission-31-Jul-2016 • https://www.scribd.com/document/318182982/Complication-Visuelle-duTraitement-de-La-Malaria • https://www.scribd.com/document/318180637/Rapport-Entre-Oxymetrie-Et-TypeRespiration • https://www.scribd.com/document/315746265/Classification-Des-Medicaments • https://www.scribd.com/document/315745909/Incongruences-Heresies-etHeterodoxies-de-la-Notion-de-Laboratoire • https://www.scribd.com/document/315745725/Rapport-Entre-Oxymetrie-Et-TypeRespiration mardi 7 mai 2019 - 11 / 11 - 5:31:00