Ce n'est pas parce qu'en hiver on dit «fermez la porte, il fait froid dehors», qu'il fait moins froid dehors quand la porte est fermée.
Pierre Dac (sur mon T shirt!)
Magic 500 n'est que le jeu où l'on devine un nombre, après essais successifs (trop grand, trop petit...)
Développé par les membres de Microloges, le club d'informatique de Beaumetz les loges, Magic 500 présente l'interêt d'offrir des sources quickbasic qui peuvent servir d'exemples aux débutants...
Le fichier principal:
DECLARE SUB jeu (moinsbon!) DECLARE SUB regle () DECLARE SUB beethov () DECLARE SUB init (e$) DECLARE SUB texte (a$, li!, co!, couleur!, t$) DECLARE SUB espace (w!) DECLARE SUB elise () CONST nbnb = 5 'nb de nb à trouver CONST nbch = 3 'nb de chiffre à trouver CONST nbenr = 30 TYPE sov chnom AS STRING * 20 chnbes AS INTEGER END TYPE DIM joueur AS sov joueur.chnom = "Adam" ' Page de garde... '__________________________________________________ DO WIDTH 40, 25 CLS texte "MICRoLoGES", 12, 5, 3, "non" elise texte "PRESENTE:", 14, 10, 4, "oui" CLS texte " M A G I C 5 0 0", 12, 1, 5, "non" SLEEP 2 '_______________________________________________ 'page 2 WIDTH 80, 50 CLS OPEN "score.wou" FOR RANDOM AS #1 LEN = LEN(joueur) i = 1 texte "MEILLEURS SCORES", 1, 25, 2, "non" texte "NOM", 5, 15, 3, "non" texte "ESSAIS", 5, 50, 3, "non" max = LOF(1) / LEN(joueur) IF max > nbenr THEN max = nbenr FOR i = 1 TO max GET #1, i, joueur LOCATE 7 + i, 2 COLOR 1 PRINT i LOCATE 7 + i, 15 PRINT joueur.chnom LOCATE 7 + i, 50 COLOR 5 PRINT joueur.chnbes NEXT CLOSE #1 moinsbon = joueur.chnbes IF moinsbon = 0 OR max < nbenr THEN moinsbon = 9999 LOCATE 50, 35 COLOR 2 PRINT "J"; COLOR 1 PRINT "ouer/"; COLOR 2 PRINT "R"; COLOR 1 PRINT "ègles/"; COLOR 2 PRINT "Q"; COLOR 1 PRINT "uitter"; DO init e$ 'on initialise la liste de nb aleatoires LOOP UNTIL INSTR("jJrRqQ", e$) > 0 AND e$ <> "" SELECT CASE UCASE$(e$) CASE "J" jeu moinsbon CASE "Q" fin$ = "oui" CASE "R" regle END SELECT LOOP UNTIL fin$ = "oui" SUB jeu (moinsbon) DIM joueur AS sov DIM j AS sov CLS WIDTH 80, 50 BEEP FOR no = 1 TO nbnb nbcach = INT(RND * 9 * 10 ^ (nbch - 1)) + 10 ^ (nbch - 1) DO essai = essai + 1 PRINT COLOR 3 PRINT "Encore "; nbnb - no + 1; "nombre"; IF nbnb - no + 1 > 1 THEN PRINT ("s"); PRINT " ...trouver. "; COLOR 3 PRINT " Essai nø "; COLOR 4 PRINT essai; COLOR 3 PRINT " > "; t = 0 FOR y = 1 TO nbch t$ = "" DO t$ = INKEY$ LOOP UNTIL INSTR("0123456789q", t$) > 0 AND t$ <> "" IF t$ = "q" THEN STOP PRINT t$; t = t * 10 + VAL(t$) t$ = "" NEXT y IF t > nbcach THEN PRINT " trop grand " IF t < nbcach THEN PRINT " trop petit " LOOP UNTIL t = nbcach COLOR 4 PRINT " BRAVO !" IF no <nbnb THEN elise ELSE beethov espace (5) NEXT no PRINT " Mission accomplie !" SLEEP 3 ' ici on regarde le score et on le sauve si il est bon IF essai < moinsbon THEN PRINT " Bravo ! Vous entrez dans le top "; nbenr PRINT BEEP INPUT "Entrez votre nom : "; nom$ OPEN "score.new" FOR RANDOM AS #2 LEN = LEN(joueur) OPEN "score.wouf" FOR RANDOM AS #1 LEN = LEN(joueur) ok$ = "non" i2 = 0 max = LOF(1) / LEN(joueur) IF max = 0 THEN ok$ = "oui" j.chnom = nom$ j.chnbes = essai i2 = i2 + 1 PUT #2, i2, j END IF FOR i = 1 TO max GET #1, i, joueur IF (essai < joueur.chnbes OR joueur.chnbes = 0) AND ok$ = "non" THEN ok$ = "oui" j.chnom = nom$ j.chnbes = essai i2 = i2 + 1 PUT #2, i2, j END IF i2 = i2 + 1 PUT #2, i2, joueur NEXT IF ok$ = "non" THEN ok$ = "oui" j.chnom = nom$ j.chnbes = essai i2 = i2 + 1 PUT #2, i2, j END IF CLOSE #2 CLOSE #1 KILL "score.wou" NAME "score.new" AS "score.wou" END IF END SUB SUB regle WIDTH 40, 25 CLS texte "Règles", 5, 10, 5, "non" texte "du jeu", 5, 23, 5, "oui" espace (5) COLOR 4 PRINT "Il s'agit de découvrir "; PRINT nbnb; PRINT " nombres cachés en dépensant" PRINT "le moins d'essais possibles." PRINT PRINT " Les nombres sont des entiers de "; nbch; " chiffres" PRINT PRINT " plus petit, ou plus grand" PRINT "seront mes seules indications" PRINT texte "BONNE CHANCE", 23, 12, 3, "oui" LOCATE 25, 10 COLOR 4 PRINT " presser une touche"; SLEEP END SUB
Et ce fichier externe, comme un "include"...
SUB beethov ECOUTE$ = "T180 o2 P2 P8 L8 GGG L2 E-" SUITE$ = "P24 P8 L8 FFF L2 D" PLAY ECOUTE$ + SUITE$ END SUB SUB elise PLAY ON lise$ = "o3 L8 E D+ E D+ E o2 B o3 D C L2 o2 A" PLAY "MB X" + VARPTR$(lise$) END SUB SUB espace (w) FOR i = 1 TO w PRINT NEXT END SUB SUB init (e$) DO e$ = INKEY$ z = z + 1 LOOP UNTIL e$ <> "" RANDOMIZE (z) END SUB SUB texte (a$, li, co, couleur, t$) LOCATE li, co COLOR couleur FOR i = 1 TO LEN(a$) PRINT (MID$(a$, i, 1)); " "; IF t$ = "oui" THEN SLEEP 1 NEXT END SUB
Quick Basic est téléchargeable: qb45fr.zip
Un autre exemple sur Wikipedia: Exemple de programme sous Qbasic
Article en référence à : https://site2wouf.fr/ampoules.php
L'arithmétique constitue un volet essentiel de l'enseignement mathématique, tant à l'école primaire qu'au lycée. Comprendre les multiples et les diviseurs est crucial pour développer une solide base en mathématiques. Dans cet article, nous explorerons le programme d'arithmétique tel qu'il est défini par les instructions officielles du Ministère de l'Éducation Nationale, en mettant particulièrement l'accent sur les multiples et les diviseurs.
Selon les instructions officielles du Bulletin Officiel de l'Éducation Nationale, le programme d'arithmétique à l'école primaire comprend plusieurs axes, dont :
Dans le cadre de l'arithmétique, l'étude des multiples et des diviseurs est introduite dès les premières années de l'école primaire. Les élèves apprennent à reconnaître les multiples et les diviseurs des nombres entiers.
Au collège, le programme d'arithmétique se complexifie. Les élèves approfondissent leur compréhension des multiples et des diviseurs, et apprennent à les manipuler de manière plus avancée. Le Bulletin Officiel de l'Éducation Nationale précise que les élèves doivent être capables de :
En outre, les élèves sont amenés à explorer des concepts liés tels que les nombres premiers, le PGCD (Plus Grand Commun Diviseur) et le PPCM (Plus Petit Commun Multiple).
Au lycée, l'enseignement de l'arithmétique prend une dimension plus abstraite. Les élèves sont confrontés à des concepts plus avancés tels que les congruences, les groupes, les anneaux, et d'autres structures algébriques. Cependant, les multiples et les diviseurs restent des concepts fondamentaux qui continuent d'être explorés dans le cadre de la théorie des nombres.
Le Bulletin Officiel de l'Éducation Nationale énonce que le programme d'arithmétique au lycée vise à :
Les multiples et les diviseurs sont des concepts fondamentaux en mathématiques, qui sont introduits dès les premières années de l'école primaire et qui continuent d'être explorés tout au long du cursus scolaire. En comprenant ces concepts, les élèves développent des compétences mathématiques essentielles qui leur seront utiles dans de nombreuses disciplines. Le programme d'arithmétique, tel que défini par les instructions officielles du Ministère de l'Éducation Nationale, offre une progression cohérente pour l'étude des multiples et des diviseurs, contribuant ainsi à la formation mathématique des élèves à tous les niveaux.
Les activités ludiques sont extrêmement bénéfiques lors de l'enseignement de l'arithmétique car elles permettent d'engager les élèves de manière interactive et stimulante. Voici quelques-uns des avantages spécifiques des activités ludiques sur ce sujet :
Avec cette activité on travaille sur les critères de divisibilités mais aussi sur la méthodologie devant un problème complexe : Il faut trouver une Stratégie. Par exemple on peut s'intéresser pour chaque ampoule à la parité du nombre d'interrupteurs déclencheurs...
Chaque jour sur le site2wouf.fr est affiché une activité de ce type et 400 PDF, avec les corrections, sont proposés en téléchargement gratuit.
La partie HTML des pages PHP est développée en Python3. Le code est disponible sur demande.
Au niveau des paramètres invariants, pour avoir un intérêt constant, j'ai décidé que:
Les numéros des ampoules sont compris entre 0 et 999
Les interrupteurs sont 4 nombres parmi :
Vous cherchez un logiciel gratuit?
est joignable en cliquant sur "Liens" puis sur "Plus".