FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Après mon fils, à ma fille de devoir réviser ses tables ... Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

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

Aller en bas 
4 participants
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 0: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
Jean Claude

Jean Claude


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

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 12: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
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 16: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
papydall

papydall


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

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 17: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
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 17: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
papydall

papydall


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

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 17: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
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

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

Klaus


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

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

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

papydall


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

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 18: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
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

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

Klaus


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

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyMer 6 Jan 2016 - 19: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
http://klauspanoramic.comxa.com/index.html
Invité
Invité




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

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

Jean Claude


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

Après mon fils, à ma fille de devoir réviser ses tables ... Empty
MessageSujet: Re: Après mon fils, à ma fille de devoir réviser ses tables ...   Après mon fils, à ma fille de devoir réviser ses tables ... EmptyJeu 7 Jan 2016 - 0: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
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
Après mon fils, à ma fille de devoir réviser ses tables ...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Mes Tables
» Révision des tables
» Histogrammes barres et/ou camembert
» Après les soucoupes volantes...
» D'après vous, où est le problème ?

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: