Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Petlja ili case statement

[es] :: Visual Basic 6 :: Petlja ili case statement

[ Pregleda: 2620 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Tubthumping

Član broj: 131285
Poruke: 15
*.PPPoE-2998.sa.bih.net.ba.



Profil

icon Petlja ili case statement03.02.2007. u 18:15 - pre 209 meseci
Sta bi bilo brze i bolje koristiti unutar tajmera sa niskim intervalom? Imam tajmer sa intervalom podesenim na 10 milisekundi. Petlja izgleda ovako:
For i = 1 to 50
'implementacija izostavljena
next i

Dal' da ostavim ovu petlju u timer-u (10 milisekundi interval) ili da koristim select case statement?
Radnja koja se izvrsava unutar petlje nije procesorski zahtjevna niti komplikovana, ali nije ni najbanalnija moguca.
Timer je ukljucen 90% vremena u toku rada aplikacije.
 
Odgovor na temu

Tubthumping

Član broj: 131285
Poruke: 15
*.PPPoE-2887.sa.bih.net.ba.



Profil

icon Re: Petlja ili case statement03.02.2007. u 23:38 - pre 209 meseci
Dakle, jos jednom. Dal' da ostavim ovako kako je, (imam petlju "unutar timera" ciji interval je podesen na 10 milisekundi ), ili da doticnu petlju zamijenim sa select case statementom?!

[Ovu poruku je menjao goranvuc dana 04.02.2007. u 09:46 GMT+1]
 
Odgovor na temu

Fuzz
Bojan Vukovic
Novi Sad

Član broj: 8631
Poruke: 3866
*.PRI.panline.net.



+9 Profil

icon Re: Petlja ili case statement03.02.2007. u 23:40 - pre 209 meseci
Ako sam dobro shvatio, tajmer se pali na 10ms i onda ili zavrti for next petlju ili u select case-u nesto proverava. E sad, glavno je pitanje, kakva je to radnja koja se ekvivalentno moze obaviti u for next i = 1 to 50 petlji i select case-om....
anti-heroin spree
 
Odgovor na temu

Tubthumping

Član broj: 131285
Poruke: 15
*.PPPoE-2887.sa.bih.net.ba.



Profil

icon Re: Petlja ili case statement03.02.2007. u 23:59 - pre 209 meseci
Da, dobro si shvatio. Mene zanima sta bi bilo brze od te dvije opcije. Radnja je takva da se moze "obaviti" ili u petlji, ili pomocu select case statement-a!

Petlje znaju jako usporiti CPU. Sa Select Case statementom nisam imao takvo iskustvo, ali ne znam kako bi regov'o kada bi ga koristio da provjeri 50 slucajeva! Sta je brze i bolje koristiti kada se sve sabere i oduzme??!

[Ovu poruku je menjao goranvuc dana 04.02.2007. u 09:47 GMT+1]
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Petlja ili case statement04.02.2007. u 00:50 - pre 209 meseci
Tubthumping, goranvuc je dobro citirao ali je skripta konvertovala dvotacku i slovo D.
Drugo, ne bi bilo lose da malo promenis stav jer je malo onih koji ce i hteti da ti pomognu sa ovakvim.

Kao sto je Fuzz lepo pitao, koja je to radnja koja se moze napisati kao petlja ili kao visestruki izbor? Znas, to generalno nije ekvivalentno u programiranju i moze da se uradi samo u nekim specificnim slucajevima tako da ces morati da das kod o kojem se radi da bi iko mogao da ti pomogne.
 
Odgovor na temu

dekibre
Dejan Mladenovic
Oslo, Norveska

Član broj: 21820
Poruke: 246
82.208.195.*

Sajt: dekibre.on.w802.net/index..


+4 Profil

icon Re: Petlja ili case statement04.02.2007. u 01:00 - pre 209 meseci
Možeš da probaš sa benchmark kodom koji sam ja povremeno koristio. Pa sam proceni:

Code:

Option Explicit

Private Type LARGE_INTEGER
    lowpart As Long
    highpart As Long
End Type

Private Declare Function QueryPerformanceFrequencyAny Lib "kernel32" Alias _
    "QueryPerformanceFrequency" (lpFrequency As Any) As Long
Private Declare Function QueryPerformanceCounterAny Lib "kernel32" Alias _
    "QueryPerformanceCounter" (lpPerformanceCount As Any) As Long

Private Sub Command1_Click()
    Dim frequency As Currency
    Dim startTime As Currency
    Dim endTime As Currency
    Dim result As Double
    
    ' get the frequency counter
    ' return zero if hardware doesn't support high-res performance counters
    If QueryPerformanceFrequencyAny(frequency) = 0 Then
        MsgBox "This computer doesn't support high-res timers", vbCritical
        Exit Sub
    End If
    
    ' start timing
    QueryPerformanceCounterAny startTime
    
    ' put here the code to be timed, for example...
    Dim i As Long
    For i = 1 To 10000000
    Next

    ' end timing
    QueryPerformanceCounterAny endTime
    
    ' note that both dividend and divisor are scaled
    ' by 10,000, so you don't need to scale the result
    result = (endTime - startTime) / frequency
    
    ' show the result
    MsgBox result
End Sub


Javi kakav si rezultat dobio.
You can fool some people sometimes,
But you can't fool all the people all the time. (Bob Marley)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Petlja ili case statement04.02.2007. u 01:31 - pre 209 meseci
Mozda sam zardj'o, al' ne vidim bas da postoji praktican nacin da se "u vecini slucajeva" petlja zameni uslovnim grananjem.
U svakom slucaju, to zavisi od koda koji se izvrsava.
 
Odgovor na temu

Tubthumping

Član broj: 131285
Poruke: 15
*.PPPoE-1137.sa.bih.net.ba.



Profil

icon Re: Petlja ili case statement04.02.2007. u 01:40 - pre 209 meseci
Shadowed, dobro, pretjero sam. Ne moze case statement zamjenit petlju u vecini slucajeva, ali naravno, i ti si pretjero kad si rek'o da ne moze skoro pa nikad. Uostalom to je nebito za mene. Odgovora nisam dobio, a kako stvari stoje necu ga ni dobit - po obicaju.

[Ovu poruku je menjao goranvuc dana 04.02.2007. u 09:50 GMT+1]
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.244.eunet.yu.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Petlja ili case statement04.02.2007. u 09:14 - pre 209 meseci
Citat:
Odgovora nisam dobio, a kako stvari stoje necu ga ni dobit - po obicaju.

Pa nije ni čudo kad se ponašaš kao kauboj. Uspeo si da uvrediš jednog moderatora i nekolicinu članova, a nisi ispoštovao osnovno pravilo koje glasi ako tražiš pomoć oko nečega, onda postavi deo koda kako bi mogli da ti pomognemo. Kako neko može da ti kaže da li je bolje koristiti petlju ili Select Case, kad ne znamo za šta hoćeš da ih iskoristiš, a od toga najviše zavisi šta je bolje koristiti ? Dakle, postuj deo koda koji ide između For i Next, jer u suprotnom džaba trošiš vreme i sebi i nama.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

Fuzz
Bojan Vukovic
Novi Sad

Član broj: 8631
Poruke: 3866
*.dialup.neobee.net.



+9 Profil

icon Re: Petlja ili case statement05.02.2007. u 12:46 - pre 209 meseci
Tub, nemoguce ti je odgovoriti ako ne objasnis o kakvoj se proveri radi.

U principu mislim da se dvoumis izmedju

Code:
 for i = 1 to 50
          if i = nesto then f (i)
next i


i

Code:
select case i
case 1
f (1)
case 2
f (2).....


Tako nesto?
anti-heroin spree
 
Odgovor na temu

[es] :: Visual Basic 6 :: Petlja ili case statement

[ Pregleda: 2620 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.