online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
' ' Welcome to GDB Online. ' Biname 03 mai 2022 ' Source pb : https://forums.futura-sciences.com/mathematiques-superieur/920897-statistiques-probabilise-de-marcher-un-nid.html ' Champ 50x250m, 10 nids diam 10cm, un pas ecrase 3 nids ' 1 case = 1 nid = 78.5398 cm², champ = 50x250/0.007854 ~= 1591545 cases = 1600000, 1 pas piétine 3 case Module VBModule ' Parametres Const NBR_CASES As Integer = 1600000 ' nombre de cases dans le champ Const NBR_PAS_MAX As Integer = 1000000 ' max nombre de pas, 3 fois plus de cases pietinees Const CASE_PAR_PAS As Integer = 3 ' nombre de cases pietinees par pas Const NBR_NIDS As Integer = 10 ' nombre de nids Const NBR_PARCOURS As Integer = 100 ' nombre de parcours de max = NBR_PAS_MAX ' ' Un tableau Champ de cNBR_CASES est cree ' Dans le tableau champ toutes les cases sont initialisees a 0 ' Lorsqu'un nid est place sur une case, la valeur correspondant du tableau passe a -1 ' Lorsqu'on pietine une case sans nid, la case correspondante du tableau est incrementee ' lorsqu'on pietine une case portant un nid, la case correspondante du tableau est decrementee, ' case qui sera consideree maintenant comme sans nid, car sa valeur dans le tableau sera de -2 ou < -1 ' >=0 case sans nid, =-1 nid non ecrase, < -1 nid deja ecrase. On compte ainsi aussi les passages sur les cases. Dim Shared Champ(NBR_CASES + 1) As Integer ' debute a 0 Dim Shared sLine As String ' une ligne au format .csv ' Const EST_UN_NID As Integer = -1 ' < 0 pour compte nbr de fois pietine Const EST_PAS_UN_NID As Integer = 0 Const VERBOSE As Boolean = FALSE ' Dim Shared iCountNidEcrases As Integer Dim Shared sngChrono As Single ' Sub placeLesNids () Dim iNid, iRnd As Integer For iNid = 1 To NBR_NIDS iRnd = 1 + Int(NBR_CASES * Rnd) ' index case au hasard While Champ(iRnd) <> EST_PAS_UN_NID ' pas deux nids sur la même case iRnd = 1 + Int(NBR_CASES * Rnd) End While Champ(iRnd) = EST_UN_NID ' nid en iRnd If VERBOSE = TRUE Then Console.WriteLine (" Nid(" + Str(iNid) + ") place en case #" + Str(iRnd)) Next iNid End Sub ' Sub rndPietineCase(iCasesPietinees As Integer) Dim iRnd As Integer iRnd = 1 + Int(NBR_CASES * Rnd) ' tire une case au hasard If Champ(iRnd) = EST_UN_NID Then sLine += "," + Str(iCasesPietinees) Champ(iRnd) -= 1 ' < -1 n'est un nid vivant ;-) iCountNidEcrases += 1 If VERBOSE = TRUE Then Console.WriteLine(Str(iCountNidEcrases) + "eme nid ecrase en case " + Str(iRnd)) End If End Sub ' Function pietineLeChamp (iParcours As Integer) As Integer Dim iCasesPietinees As integer Dim sngChrono2 As Single sngChrono2 = Timer iCountNidEcrases = 0 Randomize ' evite de toujours placer les nids dans les mêmes cases placeLesNids() ' Entete colonnes csv Randomize ' evite de retirer chaque fois la meme serie de cases sLine = Str(iParcours) For iCasesPietinees = 1 To NBR_PAS_MAX * 3 rndPietineCase(iCasesPietinees) If iCountNidEcrases = 10 Then Exit For Next iCasesPietinees ' nid pas ecrases While iCountNidEcrases < 10 iCountNidEcrases += 1 sLine += "," + Str(1 + NBR_PAS_MAX * 3) End While sLine += "," + Str(Int (1000000*(Timer - sngChrono2))) Console.WriteLine(sLine) End Function ' Sub Main() Dim n As Integer sngChrono = Timer If VERBOSE = TRUE Then Console.WriteLine (VBCRLF + "Champ de" + Str(NBR_CASES) + "cases dont" _ + Str(NBR_NIDS) + " portent 1 nids, apres" + Str(NBR_PAS_MAX) _ + " on arrete le parcours du champ" + VBCRLF) Console.WriteLine (VBCRLF + " Parcours #,Nid_1,Nid_2,Nid_3,Nid_4,Nid_5,Nid_6,Nid_7,Nid_8,Nid_9,Nid_10,t_us") For n = 1 To NBR_PARCOURS:pietineLeChamp(n):Next n Console.WriteLine(VBCRLF +" Termine en" + Str(Int (1000*(Timer - sngChrono))) + " ms") End Sub End Module

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue