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
» Planétarium virtuel.
par Pedro Alvarez Sam 21 Juil 2018 - 16:57

» Roues dentées
par jean_debord Sam 21 Juil 2018 - 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Révision des tables

Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 16: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 : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Révision des tables   Jeu 8 Mai 2014 - 17: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 : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5980
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 - 18: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 : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: 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 ... 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 : 5980
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 - 20: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 : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: 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 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 : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: 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
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
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Débat sur la télévision
» 3d nouvelle vision !
» BBox Télévision sur ordinateur ?
» Configuration Belkin N1 Vision
» Créer une carte de sauvegarde de BlueChart g2 Vision... et la lire!

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: