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
» Immortaliser les photos de famille
par Jean Claude Hier à 21:24

» Concours de Morpions
par jjn4 Hier à 16:34

» 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

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

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 | 
 

 Après mon fils, à ma fille de devoir réviser ses 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: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 2:23

CM1... Tables de multiplications (elle de 1 à 11 et la table des 25)
=> Pour la faire bosser un peu plus ludiquement (et ne pas m'énerver à force de constater qu'elle ne les sait pas encore assez ...) j'ai fais un petit programme qui se charge de lui poser 60 questions. Le temps est suffisant pour une enfant, mais vous pouvez le baisser. J'ai mis 6 secondes, ce qui donne 6 minutes pour tout faire. Je le fais en 2 minutes environ.
Pour certains matheux, je pense que c'est faisable en moins d'une minute. On change de fenêtre de saisie par tabulation (on peut toujours aussi ajouter la gestion de la touche entrée si on veut)

Programme sans aucune prétention, mais je le partage des fois qu'il puisse servir à d'autres parents ...

Code:
dim i%,j%,OK%,A%,s$,num1%,num2%, score%
dim op%(60,1) : ' tableau des chiffres pour les opérations
dim res%(60) : ' tableau des bon résultats
dim nb_colonne% : nb_colonne% = 6
dim nb_ligne% : nb_ligne% = 10
dim Compteur%, Minutes%, Secondes%, dixiemes%,  a, MM$, SS$, CC$
dim tps_operation% : tps_operation%  = 6000 : ' tmp d'une opération
dim tps_restant% : tps_restant% = tps_operation% * nb_colonne% * nb_ligne%

label Comptage, Fini

hide 0
alpha 4 : top 4,670 : left 4, 20 : width 4, 38 : height 4,80 : font_size 4, 30
caption 4, "Temps restant"

alpha 5 :  top 5, 650 :  left 5, 300  :  width 5, 380 :  height 5, 80 : font_size 5, 48
font_color 5, 255,0,0 : caption 5, "00:00"

alpha 7 : top 7,670 : left 7, 600 : width 7, 38 : height 7,80 : font_size 7, 30
caption 7, ""

alpha 8 :  top 8, 650 :  left 8, 900  :  width 8, 380 :  height 8, 80 : font_size 8, 48
font_color 8, 255,0,0 : caption 8, ""

timer 6 :  timer_interval 6, 1000 : timer_off 6 : on_timer 6, Comptage

button 9 : top 9, 540 : width 9, 200 : left 9, 450 : height 9, 80 : font_size 9, 48
caption 9, "Fini" : on_click 9,Fini

full_space 0

score% = 0
for j% = 1 to nb_ligne%
    for i% = 1 to nb_colonne%
    OK% = 0
    if i% > 1 then s$ = s$+string$(8,chr$(32))
      alpha ((j%-1)* nb_colonne% + i% + 10) : width ((j%-1)* nb_colonne% + i% + 10), 80
      left ((j%-1)* nb_colonne% + i% + 10), 20 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 10), 20 + 50 * (j% - 1)
     
      edit  ((j%-1)* nb_colonne% + i% + 150) : width ((j%-1)* nb_colonne% + i% + 150), 50
      left ((j%-1)* nb_colonne% + i% + 150), 90 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 150), 17 + 50 * (j% - 1)
      while OK% = 0
          tire() : num1% = A%
          tire() : num2% = A%
          verifie(num1%,num2%,i%,j%)
      end_while
      if num1% > 11 or num2% > 11 then num2% = rnd(1) * 11 : num1% = 25
      op%(((j%-1)* nb_colonne% + i%), 0 ) =  num1%
      op%(((j%-1)* nb_colonne% + i%), 1 ) =  num2%
      caption ((j%-1)* nb_colonne% + i% + 10), str$(num1%) + " X " + str$(num2%) + " = "
      res%((j%-1)* nb_colonne% + i%) = num1% * num2%
    next i%
next j%
timer_on 6
show 0 : set_focus 151
end

Fini:
  fin()
return

Comptage:
  tps_restant%=tps_restant% - 1000
  if tps_restant% < 1000
      fin()
  else
      Minutes%=int(tps_restant%/60000)
      if Minutes% < 10 then MM$="0"+str$(Minutes%): else : MM$=str$(Minutes%)
      a=tps_restant%-(Minutes%*60000)
      Secondes%=a/1000
      if Secondes% < 10 then SS$="0"+str$(Secondes%): else : SS$=str$(Secondes%)
      caption 5, MM$ + ":" + SS$
  end_if
return

sub tire()
    A% = rnd(1)*12
end_sub

sub verifie(A%,B%,colonne%,ligne%)
dim_local nc%,nl%
OK% = 1
  if i% + j% > 1
    for nl% = 1 to ligne%
        for nc% = 1 to colonne%
          if op%(((nl%-1)* nb_colonne% + nc%), 0 ) =  A%
              if op%(((nl%-1)* nb_colonne% + nc%), 1 ) =  B%
                  OK% = 0
                  end_sub
              end_if
          end_if
        next nc%
    next nl%
  end_if
end_sub


sub fin()
        timer_off 6 : hide 9
        for j% = 1 to nb_ligne%
          for i% = 1 to nb_colonne%
              inactive (j%-1)* nb_colonne% + i% + 150
              num1% = (j%-1)* nb_colonne% + i% + 150
              if text$(num1%) = "" or  numeric(text$(num1%)) = 0
                  color num1%,255,0,0
              else
                  num1% = val(text$(num1%))
                  num2% = res%((j%-1)* nb_colonne% + i%)
                  if num1% = num2%
                    score% = score% + 1
                  else
                    color (j%-1)* nb_colonne% + i% + 150,255,0,0
                  end_if
              end_if
          next i%
        next j%
        caption 7, "Resultat"
        caption 8, str$(score%)+"/"+str$(nb_ligne%*nb_colonne%)
        score% = 0
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 14:22

Bon programme pour les petits !

Une variante (avec corrections)

Code:
dim n%,i%,j%,OK%,A%,s$,num1%,num2%, score%
dim op%(60,1) : ' tableau des chiffres pour les opérations
dim res%(60) : ' tableau des bon résultats
dim correction%(210) :' tableau des résultats à corriger
dim num_edit%(210)
dim resultat%(210)
dim nb_colonne% : nb_colonne% = 6
dim nb_ligne% : nb_ligne% = 10
dim Compteur%, Minutes%, Secondes%, dixiemes%,  a, MM$, SS$, CC$
dim tps_operation% : tps_operation%  = 6000 : ' tmp d'une opération
dim tps_restant% : tps_restant% = tps_operation% * nb_colonne% * nb_ligne%

label Comptage, Fini

application_title "Multiplication"

hide 0
alpha 4 : top 4,670 : left 4, 20 : width 4, 38 : height 4,80 : font_size 4, 30
caption 4, "Temps restant"

alpha 5 :  top 5, 650 :  left 5, 300  :  width 5, 380 :  height 5, 80 : font_size 5, 48
font_color 5, 255,0,0 : caption 5, "00:00"

alpha 7 : top 7,670 : left 7, 600 : width 7, 38 : height 7,80 : font_size 7, 30
caption 7, ""

alpha 8 :  top 8, 650 :  left 8, 900  :  width 8, 380 :  height 8, 80 : font_size 8, 48
font_color 8, 255,0,0 : caption 8, ""

timer 6 :  timer_interval 6, 1000 : timer_off 6 : on_timer 6, Comptage

button 9 : top 9, 540 : width 9, 200 : left 9, 450 : height 9, 80 : font_size 9, 48
caption 9, "Fini" : on_click 9,Fini

full_space 0

score% = 0 : n%=0
for j% = 1 to nb_ligne%
    for i% = 1 to nb_colonne%
    OK% = 0 : n%=n%+1
    if i% > 1 then s$ = s$+string$(8,chr$(32))
      alpha ((j%-1)* nb_colonne% + i% + 10) : width ((j%-1)* nb_colonne% + i% + 10), 80
      font_bold ((j%-1)* nb_colonne% + i% + 10)
      left ((j%-1)* nb_colonne% + i% + 10), 20 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 10), 20 + 50 * (j% - 1)

      edit  ((j%-1)* nb_colonne% + i% + 150) : width ((j%-1)* nb_colonne% + i% + 150), 50
' message str$(((j%-1)* nb_colonne% + i% + 10))
      left ((j%-1)* nb_colonne% + i% + 150), 90 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 150), 17 + 50 * (j% - 1)
      font_bold ((j%-1)* nb_colonne% + i% + 150) : num_edit%(n%)=((j%-1)* nb_colonne% + i% + 150)
      while OK% = 0
          tire() : num1% = A%
          tire() : num2% = A%
          verifie(num1%,num2%,i%,j%)
      end_while
      if num1% > 11 or num2% > 11 then num2% = rnd(1) * 11 : num1% = 25
      op%(((j%-1)* nb_colonne% + i%), 0 ) =  num1%
      op%(((j%-1)* nb_colonne% + i%), 1 ) =  num2%
      caption ((j%-1)* nb_colonne% + i% + 10), str$(num1%) + " X " + str$(num2%) + " = "
      res%((j%-1)* nb_colonne% + i%) = num1% * num2%
      resultat%(num_edit%(n%))=num1% * num2%
    next i%
next j%
timer_on 6
show 0 : set_focus 151
end

Fini:
  fin()
  correction()
return

SUB correction()
    for n%=num_edit%(1) to num_edit%(60)
        if correction%(n%)<>2
          if correction%(n%)=1
              color n%,255,200,200
              message "    CORRECTION"+chr$(13)+"Le bon résultat est "+str$(resultat%(n%))
              text n%,resultat%(n%)
              color n%,255,255,100
          else
              if correction%(n%)=0 then pause 500 : color n%,150,255,150
          end_if
        end_if
    next n%
END_SUB

SUB corrige()
    color n%,255,200,200
    message "    CORRECTION"+chr$(13)+"Le bon résultat est "+str$(resultat%(n%))
    text n%,resultat%(n%)
END_SUB

Comptage:
  tps_restant%=tps_restant% - 1000
  if tps_restant% < 1000
      fin()
  else
      Minutes%=int(tps_restant%/60000)
      if Minutes% < 10 then MM$="0"+str$(Minutes%): else : MM$=str$(Minutes%)
      a=tps_restant%-(Minutes%*60000)
      Secondes%=a/1000
      if Secondes% < 10 then SS$="0"+str$(Secondes%): else : SS$=str$(Secondes%)
      caption 5, MM$ + ":" + SS$
  end_if
return

sub tire()
    A% = rnd(1)*12
end_sub

sub verifie(A%,B%,colonne%,ligne%)
dim_local nc%,nl%
OK% = 1
  if i% + j% > 1
    for nl% = 1 to ligne%
        for nc% = 1 to colonne%
          if op%(((nl%-1)* nb_colonne% + nc%), 0 ) =  A%
              if op%(((nl%-1)* nb_colonne% + nc%), 1 ) =  B%
                  OK% = 0
                  end_sub
              end_if
          end_if
        next nc%
    next nl%
  end_if
end_sub


sub fin()
        timer_off 6 : hide 9 : n%=0
        for j% = 1 to nb_ligne%
          for i% = 1 to nb_colonne%
              n%=n%+1
              inactive (j%-1)* nb_colonne% + i% + 150
              num1% = (j%-1)* nb_colonne% + i% + 150
              if text$(num1%) = "" or  numeric(text$(num1%)) = 0
                  color num1%,200,200,200
                    num_edit%(n%)=(j%-1)* nb_colonne% + i% +150 : correction%(num_edit%(n%))=2
              else
                  num1% = val(text$(num1%))
                  num2% = res%((j%-1)* nb_colonne% + i%)
                  if num1% = num2%
                    score% = score% + 1
                    num_edit%(n%)=(j%-1)* nb_colonne% + i% +150  : correction%(num_edit%(n%))=0
                  else
                    color (j%-1)* nb_colonne% + i% + 150,255,0,0
                    num_edit%(n%)=(j%-1)* nb_colonne% + i% +150 : correction%(num_edit%(n%))=1
                  end_if
              end_if
          next i%
        next j%
        caption 7, "Resultat"
        caption 8, str$(score%)+"/"+str$(nb_ligne%*nb_colonne%)
        score% = 0
end_sub

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: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 18:54

Pas mal Jean-Claude.

J'ai modifié légèrement le code en gardant les bonnes idées que tu as eu (à mon sens) mais en mettant les valeurs modifiable par les paramètres lignes / colonnes et les chance d'avoir une multiplication par 0 son quasi nulle puisque c'est peu intéressant une fois que l'on a compris.

Code:
dim n%,i%,j%,OK%,A%,s$,num1%,num2%, score%
dim op%(60,1) : ' tableau des chiffres pour les opérations
dim res%(60) : ' tableau des bon résultats

dim nb_colonne% : nb_colonne% = 6
dim nb_ligne% : nb_ligne% = 10
dim correction%(nb_colonne%*nb_ligne%) :' tableau des résultats à corriger
dim num_edit%(nb_colonne%*nb_ligne%), resultat%(nb_colonne%*nb_ligne%)
dim Compteur%, Minutes%, Secondes%, dixiemes%,  a, MM$, SS$, CC$
dim tps_operation% : tps_operation%  = 6000 : ' tmp d'une opération
dim tps_restant% : tps_restant% = tps_operation% * nb_colonne% * nb_ligne%

label Comptage, Fini

application_title "Multiplication"

hide 0
alpha 4 : top 4,670 : left 4, 20 : width 4, 38 : height 4,80 : font_size 4, 30
caption 4, "Temps restant"

alpha 5 :  top 5, 650 :  left 5, 300  :  width 5, 380 :  height 5, 80 : font_size 5, 48
font_color 5, 255,0,0 : caption 5, "00:00"

alpha 7 : top 7,670 : left 7, 600 : width 7, 38 : height 7,80 : font_size 7, 30
caption 7, ""

alpha 8 :  top 8, 650 :  left 8, 900  :  width 8, 380 :  height 8, 80 : font_size 8, 48
font_color 8, 255,0,0 : caption 8, ""

timer 6 :  timer_interval 6, 1000 : timer_off 6 : on_timer 6, Comptage

button 9 : top 9, 540 : width 9, 200 : left 9, 450 : height 9, 80 : font_size 9, 48
caption 9, "Fini" : on_click 9,Fini

full_space 0

score% = 0 : n%=0
for j% = 1 to nb_ligne%
    for i% = 1 to nb_colonne%
    OK% = 0 : n%=n%+1

      alpha ((j%-1)* nb_colonne% + i% + 10) : width ((j%-1)* nb_colonne% + i% + 10), 80
      font_bold ((j%-1)* nb_colonne% + i% + 10)
      left ((j%-1)* nb_colonne% + i% + 10), 20 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 10), 20 + 50 * (j% - 1)

      edit  ((j%-1)* nb_colonne% + i% + 150) : width ((j%-1)* nb_colonne% + i% + 150), 50
      left ((j%-1)* nb_colonne% + i% + 150), 90 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 150), 17 + 50 * (j% - 1)
      font_bold ((j%-1)* nb_colonne% + i% + 150) : num_edit%(n%)=((j%-1)* nb_colonne% + i%)
      while OK% = 0
          tire() : num1% = A%
          tire() : num2% = A%
          verifie(num1%,num2%,i%,j%)
      end_while
      if num1% > 11 or num2% > 11 then num2% = rnd(1) * 11 : num1% = 25
      op%(((j%-1)* nb_colonne% + i%), 0 ) =  num1%
      op%(((j%-1)* nb_colonne% + i%), 1 ) =  num2%
      caption ((j%-1)* nb_colonne% + i% + 10), str$(num1%) + " X " + str$(num2%) + " = "
      res%((j%-1)* nb_colonne% + i%) = num1% * num2%
      resultat%(num_edit%(n%))=num1% * num2%
    next i%
next j%
timer_on 6
show 0 : set_focus 151
end

Fini:
  fin()
  correction()
return

SUB correction()
    for n%=num_edit%(1) to num_edit%(nb_colonne%*nb_ligne%)
          if correction%(n%)<>0
              color n%+150,255,200,200
              text n%+150,resultat%(n%)
          else
              color n%+150,150,255,150
          end_if
    next n%
END_SUB

SUB corrige()
    color n%,255,200,200
    message "    CORRECTION"+chr$(13)+"Le bon résultat est "+str$(resultat%(n%))
    text n%,resultat%(n%)
END_SUB

Comptage:
  tps_restant%=tps_restant% - 1000
  if tps_restant% < 1000
      fin()
  else
      Minutes%=int(tps_restant%/60000)
      if Minutes% < 10 then MM$="0"+str$(Minutes%): else : MM$=str$(Minutes%)
      a=tps_restant%-(Minutes%*60000)
      Secondes%=a/1000
      if Secondes% < 10 then SS$="0"+str$(Secondes%): else : SS$=str$(Secondes%)
      caption 5, MM$ + ":" + SS$
  end_if
return

sub tire()
    A% = rnd(1)*11 + 1
end_sub

sub verifie(A%,B%,colonne%,ligne%)
dim_local nc%,nl%
OK% = 1
  if i% + j% > 1
    for nl% = 1 to ligne%
        for nc% = 1 to colonne%
          if op%(((nl%-1)* nb_colonne% + nc%), 0 ) =  A%
              if op%(((nl%-1)* nb_colonne% + nc%), 1 ) =  B%  then OK% = 0 : end_sub
          end_if
        next nc%
    next nl%
  end_if
end_sub


sub fin()
        timer_off 6 : hide 9 : n%=0
        for j% = 1 to nb_ligne%
          for i% = 1 to nb_colonne%
              n%=n%+1
              inactive (j%-1)* nb_colonne% + i% + 150
              num1% = (j%-1)* nb_colonne% + i% + 150
              if text$(num1%) = "" or  numeric(text$(num1%)) = 0
                    correction%(num_edit%(n%))=2
              else
                  num1% = val(text$(num1%))
                  num2% = res%((j%-1)* nb_colonne% + i%)
                  if num1% = num2%
                    score% = score% + 1
                    correction%(num_edit%(n%))=0
                  else
                    correction%(num_edit%(n%))=1
                  end_if
              end_if
          next i%
        next j%
        caption 7, "Resultat"
        caption 8, str$(score%)+"/"+str$(nb_ligne%*nb_colonne%)
        score% = 0
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 19:00

Hello Every One
@Jicehel

Ligne 25 :
Code:
timer 6 :  timer_interval 6, 1000 : timer_off 6 : on_timer 6, Comptage

Tu peux enlever timer_interval 6,100 puisque c’est la valeur par défaut prise comme intervalle de temps.

@ Jean Claude

Lignes 89/102 :

Code:
SUB correction()
    for n%=num_edit%(1) to num_edit%(60)
        if correction%(n%)<>2
          if correction%(n%)=1
              color n%,255,200,200
              message "    CORRECTION"+chr$(13)+"Le bon résultat est "+str$(resultat%(n%))
              text n%,resultat%(n%)
              color n%,255,255,100
          else
              if correction%(n%)=0 then pause 500 : color n%,150,255,150
          end_if
        end_if
    next n%
END_SUB


Le test de la ligne 91 if correction%(n%)<>2 n’est pas nécessaire puisque, tout juste après,
tu testes if correction%(n%)=1 et tu testes
if correction%(n%)=0

Or, si l’une ou l’autre de ces deux conditions est vraie, alors nécessairement correction%(n%) est <> 2 et n’a pas à être testée.
Donc, tu peux virer cette ligne (91) et sa subordonnée la ligne 100 end_if

Et voici ma version : Ajout d’une option de refaire l’exercice.

Code:

rem ============================================================================
dim n%,i%,j%,OK%,A%,s$,num1%,num2%, score%
dim op%(60,1) : ' tableau des chiffres pour les opérations
dim res%(60) : ' tableau des bon résultats
dim correction%(210) :' tableau des résultats à corriger
dim num_edit%(210)
dim resultat%(210)
dim nb_colonne% : nb_colonne% = 6
dim nb_ligne% : nb_ligne% = 10
dim Compteur%, Minutes%, Secondes%, dixiemes%,  a, MM$, SS$, CC$
dim tps_operation% : tps_operation%  = 6000 : ' tmp d'une opération
dim tps_restant% : tps_restant% = tps_operation% * nb_colonne% * nb_ligne%

label Comptage, Fini, Redo

application_title "Multiplication"

hide 0
alpha 4 : top 4,670 : left 4, 20 : width 4, 38 : height 4,80 : font_size 4, 32
caption 4, "Temps restant"

alpha 5 :  top 5, 650 :  left 5, 300  :  width 5, 380 :  height 5, 80 : font_size 5, 48
font_color 5, 255,0,0 : caption 5, "00:00"

alpha 7 : top 7,670 : left 7, 600 : width 7, 38 : height 7,80 : font_size 7, 30
caption 7, ""

alpha 8 :  top 8, 650 :  left 8, 900  :  width 8, 380 :  height 8, 80 : font_size 8, 48
font_color 8, 255,0,0 : caption 8, ""

timer 6 : timer_off 6 : on_timer 6, Comptage

button 9 : top 9, 540 : width 9, 200 : left 9, 450 : height 9, 80 : font_size 9, 48
caption 9, "Fini" : on_click 9,Fini

button 10 : top 10,550 : width 10,300 : left 10,750 : height 10,80 : font_size 10 ,24
font_bold 10 : caption 10, "Refaire l'exercice" : on_click 10,Redo : hide 10

full_space 0

score% = 0 : n%=0
for j% = 1 to nb_ligne%
    for i% = 1 to nb_colonne%
    OK% = 0 : n%=n%+1
    if i% > 1 then s$ = s$+string$(8,chr$(32))
      alpha ((j%-1)* nb_colonne% + i% + 10) : width ((j%-1)* nb_colonne% + i% + 10), 80
      font_bold ((j%-1)* nb_colonne% + i% + 10)
      left ((j%-1)* nb_colonne% + i% + 10), 20 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 10), 20 + 50 * (j% - 1)

      edit  ((j%-1)* nb_colonne% + i% + 150) : width ((j%-1)* nb_colonne% + i% + 150), 50
      left ((j%-1)* nb_colonne% + i% + 150), 90 + 200 * (i% - 1)
      top  ((j%-1)* nb_colonne% + i% + 150), 17 + 50 * (j% - 1)
      font_bold ((j%-1)* nb_colonne% + i% + 150) : num_edit%(n%)=((j%-1)* nb_colonne% + i% + 150)
      while OK% = 0
          tire() : num1% = A%
          tire() : num2% = A%
          verifie(num1%,num2%,i%,j%)
      end_while
      if num1% > 11 or num2% > 11 then num2% = rnd(1) * 11 : num1% = 25
      op%(((j%-1)* nb_colonne% + i%), 0 ) =  num1%
      op%(((j%-1)* nb_colonne% + i%), 1 ) =  num2%
      caption ((j%-1)* nb_colonne% + i% + 10), str$(num1%) + " X " + str$(num2%) + " = "
      res%((j%-1)* nb_colonne% + i%) = num1% * num2%
      resultat%(num_edit%(n%))=num1% * num2%
    next i%
next j%
timer_on 6
show 0 : set_focus 151
end
rem ============================================================================
Fini:
  fin()
  show 10
return
rem ============================================================================
Redo:
    for n% = num_edit%(1) to num_edit%(60)
         text n%,""
         color n%,255,255,255
         active n%
         set_focus 151
         score% = 0
         hide 10
         caption 7,"" : caption 8,""
         tps_restant% = tps_operation% * nb_colonne% * nb_ligne%
         show 9
         timer_on 6
    next n%
return
rem ============================================================================
SUB correction()
    for n%=num_edit%(1) to num_edit%(60)
        if correction%(n%)=1
           color n%,255,200,200
           message "    CORRECTION"+chr$(13)+"Le bon résultat est "+str$(resultat%(n%))
           text n%,resultat%(n%)
           color n%,255,255,100
        else
           if correction%(n%)=0 then pause 500 : color n%,150,255,150
        end_if
    next n%
END_SUB
rem ============================================================================
SUB corrige()
    color n%,255,200,200
    message "    CORRECTION"+chr$(13)+"Le bon résultat est "+str$(resultat%(n%))
    text n%,resultat%(n%)
END_SUB
rem ============================================================================
Comptage:
  tps_restant%=tps_restant% - 1000
  if tps_restant% < 1000
      fin()
  else
      Minutes%=int(tps_restant%/60000)
      if Minutes% < 10 then MM$="0"+str$(Minutes%): else : MM$=str$(Minutes%)
      a=tps_restant%-(Minutes%*60000)
      Secondes%=a/1000
      if Secondes% < 10 then SS$="0"+str$(Secondes%): else : SS$=str$(Secondes%)
      caption 5, MM$ + ":" + SS$
  end_if
return
rem ============================================================================
sub tire()
    A% = rnd(1)*12
end_sub
rem ============================================================================
sub verifie(A%,B%,colonne%,ligne%)
dim_local nc%,nl%
OK% = 1
  if i% + j% > 1
    for nl% = 1 to ligne%
        for nc% = 1 to colonne%
          if op%(((nl%-1)* nb_colonne% + nc%), 0 ) =  A%
              if op%(((nl%-1)* nb_colonne% + nc%), 1 ) =  B%
                  OK% = 0
                  end_sub
              end_if
          end_if
        next nc%
    next nl%
  end_if
end_sub
rem ============================================================================
sub fin()
        timer_off 6 : hide 9 : n%=0
        for j% = 1 to nb_ligne%
          for i% = 1 to nb_colonne%
              n%=n%+1
              inactive (j%-1)* nb_colonne% + i% + 150
              num1% = (j%-1)* nb_colonne% + i% + 150
              if text$(num1%) = "" or  numeric(text$(num1%)) = 0
                  color num1%,200,200,200
                    num_edit%(n%)=(j%-1)* nb_colonne% + i% +150 : correction%(num_edit%(n%))=2
              else
                  num1% = val(text$(num1%))
                  num2% = res%((j%-1)* nb_colonne% + i%)
                  if num1% = num2%
                    score% = score% + 1
                    num_edit%(n%)=(j%-1)* nb_colonne% + i% +150  : correction%(num_edit%(n%))=0
                  else
                    color (j%-1)* nb_colonne% + i% + 150,255,0,0
                    num_edit%(n%)=(j%-1)* nb_colonne% + i% +150 : correction%(num_edit%(n%))=1
                  end_if
              end_if
          next i%
        next j%
        caption 7, "Resultat"
        caption 8, str$(score%)+"/"+str$(nb_ligne%*nb_colonne%)
        score% = 0
        correction()
        show 10
end_sub
rem ============================================================================


EDIT:
Jicehel, tu m’as devancé.
Décidément, je suis un peu  (beaucoup) trop long à réagir !
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: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 19:24

T'inquiète Papydall, tu as encore plein de jus pour nous faire des tonnes de surprises Smile

Pour les opérations, je pense faire la même chose sous forme de jeu. Genre une barre progresse et quand on répond à une opération, on recule d'environ 4 secondes et une autre opération s'affiche et le score augmente.

Le jeu s’arrêterait quand la barre et pleine. Je pense que ce serait plus ludique que le tableau d'opération.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 19:49

J’ai beaucoup de mal avec mes yeux.
Me mettre au braille,  Cool  à mon âge, c’est hors de question. No
Heureusement, je rentrerai à l’hôpital le 12 janvier pour une opération chirurgicale et mon ophtalmo est optimiste.
On m’opérera à l’œil gauche  pirat  et si tout ira bien, une seconde opération sur l’œil droit est envisageable.

Actuellement, je suis sur un programme (un livre de bande dessinée) que je compte faire en Panoramic pur.
J’ai déjà codé quelques 6000 lignes et il m’en reste encore des choses à faire.

D'ici là, je parcours le Forum d'un dixième d'œil, pas plus.
Et un dixième, ce n'est pas peu de chose! king
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: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 20:04

Merde, bon courage pour ton opération et j'espère presque autant pour nous que pour toi que ça marchera bien (ben oui, on peu être charitable et égoiste à la fois. Ce n'est pas incompatible dans de nombreux cas)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 20:19

Bon courage à toi, Papydall, pour tes opérations. Puisse la lumière se faire à nouveau !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 20:35

Merci Jicehel, merci Klaus pour vos soutiens.

J'ai déjà vaincu plusieurs obstacles.
Je vaincrai ce brouillard où je vis.
Il se dissipera et le soleil brillera à nouveau sunny
C'est le météorologue que j'étais qui parle! Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 20:49

Bien vu Papydall, pour le test 'if/end_if" en trop.
Même à moitié aveugle tu vois tout. Very Happy

Bon, je plaisante mais ce n'est pas drôle. Je souhaite le succès de ton opération pour que tu puisses encore nous corriger pendant longtemps.

J'ai moi même été contraint d'augmenter la police de caractère de mon écran et surtout de diminuer la luminosité de mon écran car je ne supporte plus la lumière trop vive.

@Jack, si tu passes par là (je n'en doute pas) j'aimerai que l'on puisse changer la couleur de fond de Panoramic_Editor. Je sais que tu ne veux plus retoucher l'éditeur, mais cette modification n'est pas très importante en terme de temps et de programmation.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Mer 6 Jan 2016 - 21:30

@Jean-Claude:
Essaie Synedit_Editor, juste pour voir: tu peux paramétrer séparément la couleur du fond du texte, la couleur du texte ainsi que la couleur de la bande à gauche contenant les numéros de ligne...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Jeu 7 Jan 2016 - 0:04

C'est au poil, ou c'est spoiler? Very Happy
Spoiler:
 
Revenir en haut Aller en bas
Jean Claude

avatar

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

MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Jeu 7 Jan 2016 - 2:34

@Klaus,
Oui je sais que Synedit_Editor offre cette possibilité de réglage de la couleur du fond, pour avoir participé aux tests au début de l'aventure.
Je vais re-télécharger la dernière version, car il y a bien longtemps que je ne m'en suis plus servi.

@Cosmos, l'exemple que tu montres ci-dessus avec un fond noir c'est super.
Je pense que c'est reposant pour les yeux.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   

Revenir en haut Aller en bas
 
Après mon fils, à ma fille de devoir réviser ses tables ...
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Continuer un itinéraire après un arrêt.
» Arrondir un réel à deux chiffres après la virgule
» probleme skin La fille d'Orient. V3
» quelle routeur sans fils choisire pour meilleur porter ?
» [Modération] Retour au message suivant après suppression d'un message

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: