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
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 TCM : calcul mental

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

avatar

Nombre de messages : 75
Localisation : france
Date d'inscription : 02/09/2009

MessageSujet: TCM : calcul mental   Jeu 5 Fév 2015 - 13:41

Bonjour,

Voici un petit programme (vite fait) pour s’entrainer au calcul mental (4 opérations de base sur des entiers).

Pour lancer un test, cliquez  sur « continuer ».

Pour valider la réponse, avant le temps imparti, cliquez sur « valider ».
Code:
caption 0,"TCM v0.1 : Un peu de calcul mental/manuel ?"
memo 1
alpha 4
label nbproc,temps,suite,mulonz,susdnb,monn,adddnb,mulpnb,mulnbdc
label test,div9,divm,divdnb,valid,divdnbr,div9r
dim niv%,res,n,pos%,tps%,bres,d,sw,lg%,id
dim txt$

color 0,84,195,184
height 0,250
width 0,400
left 4,150
top 4,135
progress_bar 2
timer 3
timer_interval 3,1000
min 2,0
max 2,100
left 2,200
edit 5
button 6
caption 6,"Continuer"
top 5,110
top 6,180
left 6,120
spin 7
left 7,200
top 7,40
min 7,1
max 7,12
position 7,1
spin 8
left 8,200
top 8,100
min 8,1
max 8,9
position 8,1
alpha 9
left 9,200
top 9,25
caption 9, "TEST n° : "
alpha 10
left 10,200
top 10,85
button 11
top 11,180
left 11,200
caption 11,"valider"
edit 12
top 12,160
alpha 13
top 13,90
caption 13,"Votre réponse :"
alpha 14
top 14,142
caption 14, "Le reste :"
alpha 15
top 15,155
left 15,150
caption 15, ""
caption 10, "NIVEAU n° : "
input_source_is 5
font_size 1,14
font_size 5,14
font_size 7,14
font_size 8,14
font_size 4,14
font_size 12,14
font_size 15,14
font_color 4,213,20,5
font_color 15,213,20,5
on_click 6,suite
on_click 11,valid
end
suite:
inactive 6
hide 15
if position(7)<11
 hide 14
 hide 12
end_if
niv%=position(8)
caption 4,""
position 2,0
if niv%<1 then niv%=1
if niv%>9 then niv%=9
text 1,str$(niv%)
txt$="0"
pos%=0
tps%=8000
gosub test
on_timer 3,temps
timer_on 3
end

test:
id=position(7)
select id
 case 6:gosub monn
 case 7:gosub nbproc
 case 3:gosub mulonz
 case 2:gosub susdnb
 case 5:gosub div9
 case 1:gosub adddnb
 case 4:gosub mulpnb
 case 8:gosub mulnbdc
 case 9:gosub divm
 case 10:gosub divdnb
 case 11:gosub div9r
 case 12:gosub divdnbr
end_select
return


nbproc:
rem multiplication nombre proche
n=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
sw=int(8*rnd(1))+1
n=n*sw
d=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
d=d*sw
bres=d*n
text 1,str$(n)+" * "+str$(d)+"=?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*10
return

mulonz:
 rem multiplication par onze
 n=power(10,niv%)+int(power(10,niv%)*rnd(1))
 bres=11*n
 text 1,str$(n)+" * 11 =?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*6
return

susdnb:
rem soustraire 2 nombres
n=int(power(10,niv%+1)*rnd(1))
d=int(power(10,niv%+1)*rnd(1))
if n<d
sw=n
n=d
d=sw
end_if
bres=n-d
text 1,str$(n)+" - "+str$(d)+"=?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*5
return

monn:
rem rendu monnaie
n=int(9*rnd(1))+1
d=power(10,niv%)
n=n*d
d=int(power(10,niv%+1)*rnd(1))
d=d/10
bres=n-d
text 1,str$(n)+" - "+str$(d)+"=?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*5
return

adddnb:
rem addition 2 nombres
n=int(power(10,niv%+1)*rnd(1))
d=int(power(10,niv%+1)*rnd(1))
if n<d
sw=n
n=d
d=sw
end_if
bres=n+d
text 1,str$(n)+" + "+str$(d)+"=?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*5
return

mulpnb:
 rem multiplication par chiffres
 n=power(10,niv%)+int(power(10,niv%)*rnd(1))
 d=int(11*rnd(1))+2
 bres=d*n
 text 1,str$(n)+" * "+str$(d)+"=?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*7
return

mulnbdc:
rem multiplier nombre deux chiffres
n=power(10,niv%)+int(power(10,niv%)*rnd(1))
d=int(100*rnd(1))+2
 bres=d*n
 text 1,str$(n)+" * "+str$(d)+"=?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*8
return

div9:
rem diviser par 9
 n=power(10,niv%)+int(power(10,niv%+1)*rnd(1))
 bres=int(n/9)
 n=9*bres
 text 1,str$(n)+" / 9 =?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*9
return

divm:
rem division entiere
 n=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
 d=int(11*rnd(1))+2
 bres=int(n/d)
 n=bres*d
 text 1,str$(n)+" / "+str$(d)+" =?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*10
return

divdnb:
rem division 2 nombres
 n=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
 d=int(power(10,niv%-1)*rnd(1))+2
 bres=int(n/d)
 n=bres*d
 text 1,str$(n)+" / "+str$(d)+" =?"
 txt$=text$(1)
 lg%=len(txt$)
 tps%=1000*lg%*11
 return

divdnbr:
rem division 2 nombres avec reste
 n=power(10,niv%)+int(power(10,niv%)*rnd(1))
 d=int(power(10,niv%-1)*rnd(1))+2
 bres=int(n/d)
 res=n-d*bres
 text 1,str$(n)+" / "+str$(d)+" =?"
 txt$=text$(1)
 lg%=len(txt$)
 txt$=text$(1)
 txt$=txt$+chr$(13)+" indiquez le quotient et le reste"
 text 1,txt$
 tps%=1000*lg%*12
 return

div9r:
rem diviser par 9
 n=power(10,niv%)+int(power(10,niv%+1)*rnd(1))
 bres=int(n/9)
 res=n-9*bres
 text 1,str$(n)+" / 9 =?"
 txt$=text$(1)
 lg%=len(txt$)
 txt$=txt$+chr$(13)+" indiquez le quotient et le reste"
 text 1,txt$
 tps%=1000*lg%*10
return

valid:
pos%=tps%
active 6
show 12
active 12
return

temps:
pos%=pos%+1000
position 2,int(100*pos%/tps%)
if pos%>=tps%
timer_off 3
if id<11
res=0
txt$=text$(5)+str$(res)
else
txt$=text$(5)+text$(12)
end_if
if txt$=str$(bres)+str$(res)
 caption 4,"BRAVO !!!"
 niv%=niv%+1
else
 caption 4,"Non ! "+ str$(bres)
 if id>=11
  caption 15,"Reste : "+str$(res)
  show 15
 end_if
 niv%=niv%-1
end_if
text 5,""
text 12,""
position 8,niv%
active 6
show 12
show 14
active 12
end_if

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

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

MessageSujet: Re: TCM : calcul mental   Jeu 5 Fév 2015 - 16:06

Sympatique ton programme. Je n'ai pas la dernière version de Panoramic d'installée sur cette machine, alors j'avais des messages d'ereurs.

Je te mets ci dessous ma version qui change les type d'objets pour qu'ils correspondent aux captions et edits.

Code:
label nbproc,temps,suite,mulonz,susdnb,monn,adddnb,mulpnb,mulnbdc
label test,div9,divm,divdnb,valid,divdnbr,div9r

dim niv%,res,n,pos%,tps%,bres,d,sw,lg%,id, txt$

color 0,84,195,184: height 0,250 : width 0,400
caption 0,"TCM v0.1 : Un peu de calcul mental/manuel ?"
alpha 1 : font_size 1,14
alpha 4:  left 4,150: top 4,135 : font_size 4,14 : font_color 4,213,20,5
progress_bar 2 : min 2,0 : max 2,100 : left 2,200
timer 3 : timer_interval 3,1000
edit 5 : top 5,110 : font_size 5,14
button 6 : caption 6,"Continuer" : top 6,180 : left 6,140
spin 7 : left 7,200 : top 7,40  : min 7,1 : max 7,12 : position 7,1 : font_size 7,14
spin 8 : left 8,200 : top 8,100 : min 8,1 : max 8,9  : position 8,1 : font_size 8,14
alpha 9 : left 9,200 : top 9,25 : caption 9, "TEST n° : "
alpha 10 : left 10,200 : top 10,85 : caption 10, "NIVEAU n° : "
button 11 : top 11,180 : left 11,220 : caption 11,"valider"
edit 12 : top 12,160 : font_size 12,14
alpha 13 : top 13,90 : caption 13,"Votre réponse :"
alpha 14 : top 14,142 : caption 14, "Le reste :"
alpha 15 : top 15,155 : left 15,150 : caption 15, "" : font_size 15,14
font_color 15,213,20,5
input_source_is 5
on_click 6,suite
on_click 11,valid
end

suite:
inactive 6
hide 15
if position(7)<11
 hide 14
 hide 12
end_if
niv%=position(8)
caption 4,""
position 2,0
if niv%<1 then niv%=1
if niv%>9 then niv%=9
caption 1,str$(niv%)
txt$="0"
pos%=0
tps%=8000
gosub test
on_timer 3,temps
timer_on 3
end

test:
id=position(7)
select id
 case 6:gosub monn
 case 7:gosub nbproc
 case 3:gosub mulonz
 case 2:gosub susdnb
 case 5:gosub div9
 case 1:gosub adddnb
 case 4:gosub mulpnb
 case 8:gosub mulnbdc
 case 9:gosub divm
 case 10:gosub divdnb
 case 11:gosub div9r
 case 12:gosub divdnbr
end_select
return


nbproc:
rem multiplication nombre proche
n=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
sw=int(8*rnd(1))+1
n=n*sw
d=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
d=d*sw
bres=d*n
caption 1,str$(n)+" * "+str$(d)+"=?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*10
return

mulonz:
 rem multiplication par onze
 n=power(10,niv%)+int(power(10,niv%)*rnd(1))
 bres=11*n
 caption 1,str$(n)+" * 11 =?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*6
return

susdnb:
rem soustraire 2 nombres
n=int(power(10,niv%+1)*rnd(1))
d=int(power(10,niv%+1)*rnd(1))
if n<d
sw=n
n=d
d=sw
end_if
bres=n-d
caption 1,str$(n)+" - "+str$(d)+"=?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*5
return

monn:
rem rendu monnaie
n=int(9*rnd(1))+1
d=power(10,niv%)
n=n*d
d=int(power(10,niv%+1)*rnd(1))
d=d/10
bres=n-d
caption 1,str$(n)+" - "+str$(d)+"=?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*5
return

adddnb:
rem addition 2 nombres
n=int(power(10,niv%+1)*rnd(1))
d=int(power(10,niv%+1)*rnd(1))
if n<d
sw=n
n=d
d=sw
end_if
bres=n+d
caption 1,str$(n)+" + "+str$(d)+"=?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*5
return

mulpnb:
 rem multiplication par chiffres
 n=power(10,niv%)+int(power(10,niv%)*rnd(1))
 d=int(11*rnd(1))+2
 bres=d*n
 caption 1,str$(n)+" * "+str$(d)+"=?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*7
return

mulnbdc:
rem multiplier nombre deux chiffres
n=power(10,niv%)+int(power(10,niv%)*rnd(1))
d=int(100*rnd(1))+2
 bres=d*n
 caption 1,str$(n)+" * "+str$(d)+"=?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*8
return

div9:
rem diviser par 9
 n=power(10,niv%)+int(power(10,niv%+1)*rnd(1))
 bres=int(n/9)
 n=9*bres
 caption 1,str$(n)+" / 9 =?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*9
return

divm:
rem division entiere
 n=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
 d=int(11*rnd(1))+2
 bres=int(n/d)
 n=bres*d
 caption 1,str$(n)+" / "+str$(d)+" =?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*10
return

divdnb:
rem division 2 nombres
 n=power(10,niv%)+int(power(10,niv%-1)*rnd(1))
 d=int(power(10,niv%-1)*rnd(1))+2
 bres=int(n/d)
 n=bres*d
 caption 1,str$(n)+" / "+str$(d)+" =?"
 txt$=caption$(1)
 lg%=len(txt$)
 tps%=1000*lg%*11
 return

divdnbr:
rem division 2 nombres avec reste
 n=power(10,niv%)+int(power(10,niv%)*rnd(1))
 d=int(power(10,niv%-1)*rnd(1))+2
 bres=int(n/d)
 res=n-d*bres
 caption 1,str$(n)+" / "+str$(d)+" =?"
 txt$=caption$(1)
 lg%=len(txt$)
 txt$=caption$(1)
 txt$=txt$+chr$(13)+" indiquez le quotient et le reste"
 caption 1,txt$
 tps%=1000*lg%*12
 return

div9r:
rem diviser par 9
 n=power(10,niv%)+int(power(10,niv%+1)*rnd(1))
 bres=int(n/9)
 res=n-9*bres
 caption 1,str$(n)+" / 9 =?"
 txt$=caption$(1)
 lg%=len(txt$)
 txt$=txt$+chr$(13)+" indiquez le quotient et le reste"
 caption 1,txt$
 tps%=1000*lg%*10
return

valid:
pos%=tps%
active 6
show 12
active 12
return

temps:
pos%=pos%+1000
position 2,int(100*pos%/tps%)
if pos%>=tps%
  timer_off 3
  if id<11
    res=0
    txt$=text$(5)+str$(res)
  else
    txt$=text$(5)+text$(12)
  end_if
  if txt$=str$(bres)+str$(res)
    caption 4,"BRAVO !!!"
    niv%=niv%+1
  else
    caption 4,"Non ! "+ str$(bres)
    if id>=11
      caption 15,"Reste : "+str$(res)
      show 15
    end_if
    niv%=niv%-1
  end_if
  text 5,""
  text 12,""
  position 8,niv%
  active 6
  show 12
  show 14
  active 12
end_if
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mimic

avatar

Nombre de messages : 75
Localisation : france
Date d'inscription : 02/09/2009

MessageSujet: Re: TCM : calcul mental   Ven 6 Fév 2015 - 14:04

Merci, pour cette petite refonte du code.

Ps : une précision, chaque test correspond grosso modo à une méthode de résolution (tirée d’un livre) ; pour le temps imparti par contre, c’est au pif !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: TCM : calcul mental   Ven 6 Fév 2015 - 14:35

Je suis consterné, j'arrive seulement au niveau 4 et pourtant ce se sont que des additions. Embarassed

Pour moi le jeu à fonctionné d'entrée, avec la dernière version de Panoramic.

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

avatar

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

MessageSujet: Re: TCM : calcul mental   Ven 6 Fév 2015 - 15:15

A priori, pour simplifier, Jack a dû tolérer text à la place de caption et caption$ à la place de text$ et réciproquement. Ca ne me gène absolument pas. C'est vrai que c'est mieux de simplifier mais bon pour les versions antérieures, ça ne fonctionnait pas sans les modifs.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: TCM : calcul mental   

Revenir en haut Aller en bas
 
TCM : calcul mental
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un truc de calcul mental
» Calcul de dénivelé par Memory Map
» rapidité du calcul itinéraire Nuivi 255W
» calcul itineraire?
» Re-calcul itinéraire après changement du volume

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: