Pagina 2 van 2

Re: Eenvoudig rekensommetje

BerichtGeplaatst: vr maart 20, 2009 8:32 pm
door hbh-tieltjes
Ik heb de listing even getest, daarbij bleken 4 regels niet te voldoen.
Geen idee of je met deze listing verder komt, je kunt het proberen.
Vind het leuk dat er mensen mee bezig zijn.
Er zullen ongetwijfeld verschillende oplossingen mogelijk zijn.
Ik ga op een nieuw project [uitleg rekensommetje ] mijn oplossing uitleggen.
Dit gaat in een aantal delen, waar ik weer reacties op hoop te krijgen.

gr. Herman

Re: Eenvoudig rekensommetje

BerichtGeplaatst: wo maart 25, 2009 4:38 pm
door bluatigro
gordon

zet GEEN extra nullen achter t$( i )
omdat verschil OOK naar nullen kijkt
ziet hij die als dubbele cyfers
gebruik punten of spaties
daar kijkt verschil niet naar

hbh tieltjes

de routine in [uitleg rekensommetje]
werk langzaamer ( O( n ^ n ) )
dan mijn routine uitgebreid met een
permutatie routine ( O( n! ) )

saluton blua tigro

Re: Eenvoudig rekensommetje

BerichtGeplaatst: zo maart 29, 2009 11:29 am
door bluatigro
Code: Selecteer alles
dim t$( 5 )
false = 0
true = not( false )
done = false
count = 0
while not( done ) and ( count < 10 ^ 10 )
 if ( count mod 12345 ) = 0 then
  cls
  print count
 end if
 count = count + 1
 nr$ = right$( "000000000000" + str$( count ) , 10 )
 a$ = left$( nr$ , 5 )
 b$ = right$( nr$ , 5 )
 if notwin( a$ ) and notwin( b$ ) then
  if left$( a$ , 1 ) <> "0" then
   if left$( b$ , 1 ) <> "0" then
    ia = val( a$ )
    ib = val( b$ )
    ic = ia * ib
    c$ = str$( ic )
    if notwin( c$ ) then
     for i = 0 to 4
      t$( i ) = str$( ia * val( mid$( b$ , 5 - i , 1 ) ) )
     next i
     if notwin( t$( 0 ) ) then
      if notwin( t$( 1 ) ) then
       if notwin( t$( 2 ) ) then
        if notwin( t$( 3 ) ) then
         if notwin( t$( 4 ) ) then
          done = true
         end if
        end if
       end if
      end if
     end if
    end if
   end if
  end if
 end if
wend
if count < 10 ^ 10 then
 print right$( "            " + a$ , 12 )
 print right$( "            " + b$ , 12 )
 print right$( "            " + t$( 0 ) , 12 )
 print right$( "            " + t$( 1 ) + "." , 12 )
 print right$( "            " + t$( 2 ) + ".." , 12 )
 print right$( "            " + t$( 3 ) + "..." , 12 )
 print right$( "            " + t$( 4 ) + "...." , 12 )
 print right$( "            " + c$ , 12 )
else
 print "NO SOLUTION FOUNT !!"
end if

end

function notwin( q$ )
 fl = true
 for digit = 0 to 9
  tel = 0
  for i = 1 to len( q$ )
   if mid$( q$ , i , 1 ) = str$( digit ) then
    tel = tel + 1
   end if
   if tel > 1 then fl = false
  next i
 next digit
 notwin = fl
end function


ik vond 10 for next lussen wel wat veel
dus doe ik het met een while lus
het druurt mij nog te lang ( O( n ^ n ) )
ik heb nog geen oplossing gezien
maar als die er is dan vindt dit programma die
wie met n copiler kijkt wat er uit komt ?

saluton blua tigro

Re: Eenvoudig rekensommetje

BerichtGeplaatst: zo maart 29, 2009 7:44 pm
door hbh-tieltjes
Hallo bluatigro

Heb jouw prog getest en na ruim een half uur onderbroken.
Mijn prog heeft voor het totale onderzoek 10 minuten nodig.
Na hoeveel tijd is jouw prog afgelopen?
Het voordeel van 10 lussen is dat je altijd 10 verschilende cijfers hebt.

gr. Herman

Re: Eenvoudig rekensommetje

BerichtGeplaatst: vr apr 10, 2009 10:39 am
door bluatigro
Code: Selecteer alles
global n = 4
dim nr$( n )

for i = 1 to n
   nr$( i ) = str$( i )
next i

call loop n , n

end

sub loop i , j
   if i > 0 then
      if j = i then
         call loop i , j - 1
         swap nr$( i ) , nr$( j )
         call loop i - 1 , n
         swap nr$( i ) , nr$( j )
      end if
   else
      draw
   end if
end sub

sub draw
   for i = 1 to n
      print nr$( i ) ;
   next i
   print
end sub

dit heb ik van internet uit n c++ voorbeeld
op de plaats van draw komt de rekensom
op deze manier heb je nooit dubele cijfers
in de 2 start getallen .
heeft nog wat werk nodig oa :
van n=4 n=9 en van i>0 i>-1 maken denk ik
---------------------------------------------------------------------------------------------------------------
cxio diversas el tio rezultas cxio samvaloras .

Re: Eenvoudig rekensommetje

BerichtGeplaatst: ma apr 20, 2009 3:14 pm
door hbh-tieltjes
Hallo bluatigro

Dit is beslist geen C++ voorbeeld of heb je dit uit C++ vertaald ?
Het zouw best een Basic dialect kunnen zijn maar welke weet ik ook niet.
Herkent iemand deze prog-taal of kan iemand deze omzetten naar LB of JB ?
Ik kan er zelf geen kaas van maken, maar anderen misschien wel.

gr. Herman

Re: Eenvoudig rekensommetje

BerichtGeplaatst: di apr 21, 2009 12:35 am
door anthonio
Herman,

Ik ben niet echt op de hoogte van dit project maar ik heb bovenstaande code even vertaald.
Normaal zou dit de LB versie zijn.

Code: Selecteer alles
global n
n = 4
dim nr$( n )

for i = 1 to n
   nr$( i ) = str$( i )
next i

call herhaling n , n

end

sub herhaling i , j
   if i > 0 then
      if j = i then
         call herhaling i , j - 1
         nr2$( i ) = nr$( j )
         nr2$( j ) = nr$( i )
         nr$(i) = nr2$(i)
         nr$(j) = nr2$(j)
         call herhaling i - 1 , n
         nr2$( i ) = nr$( j )
         nr2$( j ) = nr$( i )
         nr$(i) = nr2$(i)
         nr$(j) = nr2$(j)
      end if
   else
      call draw
   end if
end sub

sub draw
   for i = 1 to n
      print nr$( i )
   next i
   print nr$(i)
end sub


Groeten

Re: Eenvoudig rekensommetje

BerichtGeplaatst: di apr 21, 2009 10:06 am
door hbh-tieltjes
Anthonio

Ik heb dit prog. even getest maar krijg geen output.
Wat doet dit prog. en welke output mag ik verwachten ?
Kun je het prog. zo aanpassen dat ik wat op het scherm zie eventueel met uitleg.

B.v.d. en gr. Herman

Re: Eenvoudig rekensommetje

BerichtGeplaatst: di apr 21, 2009 9:59 pm
door anthonio
Herman,

Ik heb dit inderdaad gisteren ook gemerkt.
Nu, ik heb alleen het programma geconverteerd.
Je moet maar eens in debug mode het programma stap voor stap laten runnen.
Je kan alles zien wat er gebeurd.
Door dit te doen heb ik gemerkt dat het programma niet bij de functie "draw" komt.
Als bluatigro (<- is dat spaans trouwens?) dit leest kan hij misschien hierover een woordje uitleg geven.

Groeten.

Re: Eenvoudig rekensommetje

BerichtGeplaatst: di apr 21, 2009 10:08 pm
door anthonio
Misschien dat je hier wat meer aan hebt?

Code: Selecteer alles
global n
n = 4
dim nr$( n )

for i = 1 to n
   nr$( i ) = str$( i )
next i

call herhaling n , n

end

sub herhaling i , j
   if i > 0 then
    print i
    print j
    print ""
      if j = i then
         call herhaling i , j - 1
         nr2$( i ) = nr$( j )
         nr2$( j ) = nr$( i )
         nr$(i) = nr2$(i)
         nr$(j) = nr2$(j)
         print nr$(i)
         print nr$(j)
         print ""
         call herhaling i - 1 , n
         nr2$( i ) = nr$( j )
         nr2$( j ) = nr$( i )
         nr$(i) = nr2$(i)
         nr$(j) = nr2$(j)
         print nr$(i)
         print nr$(j)
         print ""
      end if
   else
      call draw
   end if
end sub

sub draw
   for i = 1 to n
      print nr$( i )
   next i
   print nr$(i)
end sub


Groeten

Re: Eenvoudig rekensommetje

BerichtGeplaatst: wo apr 22, 2009 7:44 pm
door hbh-tieltjes
Er is nu wel output, maar wat kan ik daar mee ?
Even een andere vraag.
Is dat GLOBAL statement wel nodig of is het overbodig ?
Volgens mij is de sterke kant van LB en JB dat je niets hoeft te Definitiƫren (Declareren).
Ik heb ergens gelezen dat JB en LB alle tipes herkent zodat je niets hoeft op te geven.
Heb ik gelijk of heb ik het mis ?

gr. Herman

Re: Eenvoudig rekensommetje

BerichtGeplaatst: do apr 23, 2009 11:11 am
door anthonio
Ik denk dat bluatiagro met dit voorbeeld wil aantonen hoe je getallen kan swappen (omwisselen).
Dit leid ik toch af uit de output.
De meeste zaken worden in LB direct herkent.
Bij API calls is dit dikwijls het geval dat je constanten moet declareren die LB niet herkent.
In het bovenstaande voorbeeld wordt n globaal gemaakt aangezien je het gebruikt in verschillende subs.
Maw als je constanten, variabelen, ... gaat gebruiken in verschillende functies/subs/andere delen van je programma is
het aan te raden om deze globaal te maken.
Hetzelfde geldt voor arrays.
denk maar aan
Code: Selecteer alles
dim info$(10, 10)


Groeten

Re: Eenvoudig rekensommetje

BerichtGeplaatst: vr sep 25, 2009 10:10 pm
door hbh-tieltjes
Zullen we dit afsluiten ??

Gr. Herman