Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| Révision des tables | |
| | Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Révision des tables Jeu 8 Mai 2014 - 15:50 | |
| Bonjour, Je vous post un programme sans aucune prétention, mais comme je faisais réviser leur table aux enfants, je leur ais fais un petit programme pour vérifier leurs connaissance et changer des questions Ça peut aussi servir aux nouveaux pour voir les fonctions de base de Panoramic - Code:
-
' ****************************************** ' * Révision des tables de multiplications * ' * Pour Morgane et Kévin * ' * Morgane CE1 et Kévin CM1 * ' ****************************************** ' Label Reponse,Fin_timer, touche
Dim Max% : ' Valeur maximale des tables à tester Dim Temps% : ' Temps max pour répondre Dim Joueur$ : ' Nom du candidat pour le patamètrage automatique Dim Chiffre1, Chiffre2 : ' Les chiffres de l'opération Dim Operation$ : ' Texte de l'opération posée Dim Nb_questions% : ' Nombre d'opérations à faire Dim i% : ' Compteur de questions Dim Note% : ' Compte le nombre de bon résultats Dim Temps_restant% : ' Calcule le temps restant
' Initialisation Nb_questions% = 30
' Kévin ' Max% = 10 : ' Lui il connait les tables jusqu'à 10 ' Temps% = 15 : ' 10 s max pour répondre + 5s de saisie
' Morgane ' Max% = 3 : ' Pour le moment elle en est à la table des 3 ' Temps% = 30 : ' 25 s max pour répondre + 5s de saisie
' Adulte Max% = 17 : ' Pour les adultes, ça se corse ... Temps% = 22 : ' 20 secondes + 2 pour la saisie
width 0, 300 : Height 0, 150 : color 0, 200,200,200 alpha 1 : top 1,10 : left 1, 10 : width 1, 120 : font_size 1,16 alpha 2 : top 2,40 : left 2, 10 : width 2, 30 : font_size 2,16 edit 3 : top 3,40 : left 3, 30 : width 3, 60 : font_size 3,16 alpha 5 : top 5,44 : left 5, 110 : width 5, 100 : font_size 5,12 button 4: top 4,80 : left 4, 120 : width 4, 50 : caption 4,"OK" : hide 4 alpha 6 : top 6,80 : left 6, 10 : width 6, 40 : font_size 6,12 on_click 4,Reponse timer 10: timer_off 10 : timer_interval 10,1000 : On_timer 10, Fin_timer caption 2,"->"
i%=0 : Note% = 0 Question() end
sub Question() hide 4 : timer_off 10 i% = i% + 1 caption 6, "" : text 3,"" chiffre1 = int(rnd(Max%+1)) chiffre2 = int(rnd(10))+1 Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " x " + str$(chiffre2) caption 1,Operation$ show 4 : timer_on 10 : Temps_restant%= Temps% : set_focus 3 : on_key_down 3,touche end_sub
Reponse: timer_off 10 : hide 4 Operation$ = text$(3) if Operation$ = "" then show 4 : set_focus 3 : timer_on 10 : return if i% < Nb_questions% if chiffre1 * chiffre2 = Val(Operation$) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(chiffre1 * chiffre2) end_if wait 2000 Question() else hide 2: hide 3 caption 1, "Résultat final : "+str$(Note%) + "/" +str$(Nb_questions%) end_if return
touche: if key_down_code = 13 then gosub reponse return
Fin_timer: Temps_restant% = Temps_restant% - 1 set_focus 3 : on_key_down 3,touche Caption 5, "Temps restant : "+str$(Temps_restant%)+ " s" If Temps_restant% = 0 timer_off 10 : hide 4 beep caption 1,"Trop tard !!" wait 1000 Question() End_if return
Dernière édition par Jicehel le Jeu 8 Mai 2014 - 20:19, édité 2 fois | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 16:36 | |
| Tu as raison, on ne sait jamais, cela sera peut-être utile à certains. Voyons, voyons, là je suis sérieux ou pas ? ? ? | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 17:00 | |
| Voilà un jeu où je gagne toujours ! Pour tes bambins, tu devrais leur faciliter la vie avec un set_focus 3 à la ligne 49. C'est plus pratique. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 17:43 | |
| J'avoue, bonne idée. Je l'ais fait vite fait, mais autant le faire bien quand même. Pareil, je n'ai pas géré l'appuie sur Entrée pour valider mais je modifie le code ci dessus avec ces 2 modifs. Bon je change aussi la version du forum pour le mode adulte simple, juste histoire que ce soit un minimum amusant pour Jean-Claude. PS: Jean-Claude, si tu veux jouer avec, rien ne t’empêche de monter le max ou de baisser le temps à ta convenance... En tout cas, le focus est maintenant géré ainsi que l'appuie sur Entrée pour valider. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 18:53 | |
| Salut heureux père de Kévin et de Morgane. Des tels petits programmes éducatifs, j’adore ! Merci Jicehel, mais …. Tu sais que j’ai presque toujours des « mais » à en revendre ! Le 1er « mais » Je préfère ( font à fait et c’est à toi d’adopter ou non) à la ligne 56 - Code:
-
Operation$ = str$(i%) + ") Combien fait " + str$(chiffre1) + " x " + str$(chiffre2)
Je préfère ceci - Code:
-
Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " x " + str$(chiffre2)
Le second « mais » Lorsque le programme me propose un calcul (par exemple 9 x 5) et je reponds (par exemple 17 : heu la table de 9 est difficile pour moi !), il m’indique que c’est faux (ce qui est bien), mais moi (qui ne connait rien) je prefère que le programme m'affiche la valeur juste. Le troisième « mais » : Lorsque je clique sur ok, j’obtiens Not correct logical expression : Error in function. Line 65 ; par contre en validant par <ENTER> ça marche. Le quatrième et dernier « mais » Je propose que le multiplicateur et le multiplicande soient toux deux différents de zéro ( 0 x 5 par exemple, c’est …heu … c’est à toi de trancher) Ceci se fait en faire ressortir le +1 à la droite de la parenthèse. Ligne 54 et 55 - Code:
-
chiffre1 = int(rnd(Max%+1)) chiffre2 = int(rnd(10))+1
Devient - Code:
-
chiffre1 = int(rnd(Max%)+1) chiffre2 = int(rnd(10)+1)
PS : Plus sérieux que , ça ne n'existe pas et si vous rencontrez un, c'est très très rare! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 20:18 | |
| OK, j'avais hésité entre fait et font. Après ton conseil, je remplace par font ... Pour le multiplié par 0, je laisse pour que ma fille se rappelle que la multiplication par 0 fait 0. Pour qu'il n'y en ait pas trop, c'est pour cela que dans l'autre, je mets +1. J'ai réglé le problème du bouton OK quand on valide sur OK alors que l'on a pas rentré de valeur en rajoutant un test qui évite le message infâme de l'erreur de conversion d'une chaîne vide. J'ai rajouté l'affichage du résultat en cas de saisie d'une mauvaise valeur, c'est vrai que ça peut aider à apprendre. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 20:58 | |
| Voila ! J’espère que Monsieur Kévin et Mademoiselle Morgane soient heureux pour cette modification. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Révision des tables Jeu 8 Mai 2014 - 21:24 | |
| Oui, ils ont fait le test en début d'après midi à peu près au moment où j'ai posté le programme. Ils n'ont pas bénéficié des améliorations que vous avez suggéré, mais ce sera pour la prochaine fois. Morgane a encore quelques table à apprendre et Kévin apprend la division par encadrement. Donc pour diviser, il faut savoir multiplier PS: pour ceux qui ne le savent pas, la division par encadrement, c'est par exemple pour 37/5 (eux ils écrivent 37:5) => 5*7 < 37 < 5*8 => 37 = (5*7)+2 (Je sais les parenthèses ne sont pas importantes mais ils apprennent comme ça, on ne va pas leur changer ça) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Révision des tables Lun 19 Mai 2014 - 0:34 | |
| J'avais commencé à faire un programme pour faire réviser leurs opérations aux enfants (mon fils m'avait demandé d'ajouter la division) mais comme nous n'étions pas là, ils n'ont pas eu le temps de tester. Il faut que vous ajustiez le paramétrage selon la difficulté que vous souhaitez (temps max, nombre max, division ou non) et à qui vous faites passer le test. Je mets le code en dessous, il est toujours très simple, mais s'il peut servir à quelqu'un ... - Code:
-
' ****************************************** ' * Révision des tables de multiplications * ' * Pour Morgane et Kévin * ' * Morgane CE1 et Kévin CM1 * ' ****************************************** ' Label Reponse,Fin_timer, touche
Dim Max% : ' Valeur maximale des tables à tester Dim Temps% : ' Temps max pour répondre Dim Joueur$ : ' Nom du candidat pour le patamètrage automatique Dim Chiffre1, Chiffre2 : ' Les chiffres de l'opération Dim Operation$ : ' Texte de l'opération posée Dim Nb_questions% : ' Nombre d'opérations à faire Dim i% : ' Compteur de questions Dim Note% : ' Compte le nombre de bon résultats Dim Temps_restant% : ' Calcule le temps restant Dim Type_operation% : ' Mémorise le type d'opération choisit Dim Division : ' Autorise ou non les divsions Dim Reste$ : ' Lit le reste de la division saisie
' Initialisation Nb_questions% = 30
' Kévin Max% = 10 : ' Lui il connait les tables jusqu'à 10 Temps% = 12 : ' 10 s max pour répondre + 5s de saisie Division = 1 : ' Maintenant on travaille un peu sur les divisions aussi
' Morgane ' Max% = 4 : ' Pour le moment elle en est à la table des 3 ' Temps% = 25 : ' 25 s max pour répondre + 5s de saisie ' Division = 0 : ' Morgane ne travaille pas sur les divisions
' Adulte ' Max% = 17 : ' Pour les adultes, ça se corse ... ' Temps% = 22 : ' 20 secondes + 2 pour la saisie ' Division = 1 : ' Maintenant on travaille un peu sur les divisions aussi
width 0, 300 : Height 0, 220 : color 0, 200,200,200 alpha 1 : hide 1 : top 1,10 : left 1, 10 : width 1, 120 : font_size 1,16 alpha 2 : hide 2 : top 2,40 : left 2, 10 : width 2, 30 : font_size 2,16 : caption 2,"->" edit 3 : hide 3 : top 3,40 : left 3, 30 : width 3, 60 : font_size 3,16 alpha 5 : hide 5 : top 5,44 : left 5, 110 : width 5, 100 : font_size 5,12 alpha 7 : hide 7 : top 7,94 : left 7, 10 : width 7, 60 : font_size 7,12 : caption 7,"Reste" edit 8 : hide 8 : top 8,90 : left 8, 70 : Width 8, 70 : font_size 8,12 button 4: top 4,140 : left 4, 120 : width 4, 50 : caption 4,"OK" : hide 4 alpha 6 : top 6,140 : left 6, 10 : width 6, 40 : font_size 6,12 : hide 6 on_click 4,Reponse timer 10: timer_off 10 : timer_interval 10,1000 : On_timer 10, Fin_timer i%=0 : Note% = 0 Message "Appuyez sur OK pour commencer" for i% = 1 to 6 if i%<>4 then show i% next i% Question() end
sub Question() hide 4 : hide 7 : hide 8 : timer_off 10 i% = i% + 1 caption 6, "" : text 3,"" : text 8,"" chiffre1 = int(rnd(Max%+1-division))+division chiffre2 = int(rnd(10))+1 Type_operation% = int(rnd(3+2*division))+1 : ' j'augmente un peu les chances de tomber sur une division...
select Type_operation%
case 1: Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " + " + str$(chiffre2)
case 2 if chiffre1 > chiffre2 Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " - " + str$(chiffre2) else Operation$ = str$(i%) + ") Combien font " + str$(chiffre2) + " - " + str$(chiffre1) end_if
case 3 : Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " x " + str$(chiffre2)
case 4 chiffre1 = chiffre1 + int(50) + 10 Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " / " + str$(chiffre2) show 7 : show 8
case 5 chiffre1 = chiffre1 + int(100) + 20 Operation$ = str$(i%) + ") Combien font " + str$(chiffre1) + " / " + str$(chiffre2) show 7 : show 8
end_select caption 1,Operation$ show 4 : timer_on 10 : Temps_restant%= Temps% if Type_operation% = 4 or Type_operation% = 5 then Temps_restant%=Temps_restant%*3 set_focus 3 : on_key_down 3,touche end_sub
Reponse: timer_off 10 : hide 4 Operation$ = text$(3) if Operation$ = "" then show 4 : set_focus 3 : timer_on 10 : return if i% < Nb_questions% select Type_operation%
case 1: if chiffre1 + chiffre2 = Val(Operation$) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(chiffre1 + chiffre2) end_if wait 2000 Question() case 2 if chiffre1 > chiffre2 if chiffre1 - chiffre2 = Val(Operation$) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(chiffre1 - chiffre2) end_if wait 2000 Question() else if chiffre2 - chiffre1 = Val(Operation$) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(chiffre2 - chiffre1) end_if wait 2000 Question() end_if
case 3 if chiffre1 * chiffre2 = Val(Operation$) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(chiffre1 * chiffre2) end_if wait 2000 Question()
case 4 reste$=text$(8) if reste$="" then reste$="0" if (int(chiffre1 / chiffre2) = Val(Operation$)) and (mod(chiffre1,chiffre2) = Val(reste$)) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(int(chiffre1 / chiffre2)) + " reste : "+str$(mod(chiffre1 , chiffre2)) end_if wait 2000 hide 7: hide 8 Question()
case 5 reste$=text$(8) if reste$="" then reste$="0" if (int(chiffre1 / chiffre2) = Val(Operation$)) and (mod(chiffre1,chiffre2) = Val(reste$)) Note% = Note% + 1 caption 6,"Juste" else caption 6,"Faux, c'était : " + str$(int(chiffre1 / chiffre2)) + " reste : "+str$(mod(chiffre1 , chiffre2)) end_if wait 2000 hide 7: hide 8 Question()
end_select
else hide 2: hide 3 caption 1, "Résultat final : "+str$(Note%) + "/" +str$(Nb_questions%) end_if return
touche: if key_down_code = 13 then gosub reponse return
Fin_timer: Temps_restant% = Temps_restant% - 1 if ((Type_operation% <> 4) and (Type_operation% <> 5)) then set_focus 3 on_key_down 3,touche on_key_down 8,touche Caption 5, "Temps restant : "+str$(Temps_restant%)+ " s" If Temps_restant% = 0 timer_off 10 : hide 4 hide 7: hide 8 beep caption 1,"Trop tard !!" wait 1000 Question() End_if return | |
| | | Contenu sponsorisé
| Sujet: Re: Révision des tables | |
| |
| | | | Révision des tables | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |