FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Pourquoi le compilateur stagne
par papydall Hier à 23:23

» Immortaliser les photos de famille
par jjn4 Hier à 18:29

» Concours de Morpions
par jjn4 Hier à 18:11

» Compilateur FBPano
par jean_debord Hier à 10:12

» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Révision des tables

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Révision des tables   Jeu 8 Mai 2014 - 16: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 - 21:19, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1601
Date d'inscription : 13/09/2009

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 17:36

Tu as raison, on ne sait jamais,
cela sera peut-être utile à certains.
 Mad  alien  tongue 
Voyons, voyons, là je suis sérieux ou pas ?
?  alien  ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jean Claude

avatar

Nombre de messages : 5019
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 18:00

Voilà un jeu où je gagne toujours !
 lol! 


Pour tes bambins, tu devrais leur faciliter la vie avec un set_focus 3 à la ligne 49. C'est plus pratique.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 18: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5533
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 19:53

Salut heureux père de Kévin et de Morgane.  Laughing 

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  alien  , ça ne n'existe pas et si vous rencontrez un, c'est très très rare!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 21:18

OK, j'avais hésité entre fait et font. Après ton conseil, je remplace par font ... Smile
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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5533
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 21:58

Voila !
J’espère que Monsieur Kévin et Mademoiselle Morgane soient heureux pour cette modification.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 22: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 Wink
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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Révision des tables   Lun 19 Mai 2014 - 1: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Révision des tables   

Revenir en haut Aller en bas
 
Révision des tables
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Débat sur la télévision
» Problème de vision de photos ...etc
» pointillés sur cadre des tables et des cellules
» 3d nouvelle vision !
» BBox Télévision sur ordinateur ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: