• 1
  • 2
2002-10-06, 20:47
  #1
Medlem
kaizens avatar
jag ska skriva ett jävligt enkelt program.. tycks det.. men jag löser det inte. tror inte att jag hinner tills det ska vara klart heller.. programmet ska va ett program som utför summeringen 1*1 + 2*2 + 3*3 +.. Tills summan överskrider 10 000. och sen ska det skrivas i formuläret summan och antalet termer som behövdes för att uppnå villkoret.

någon som är lite bättre på vb än vad jag är? troligtvis. om man säger så
Citera
2002-10-06, 21:04
  #2
Medlem
pröva med


Function doCalc
Dim i, counter

For i = 1 To 50000
If counter => 10000 Then
doCalc = counter
' Exit Function kanske inte behövs när du har doCalc = counter... vet ej =) pröva
Exit Function
End If
counter = counter + i * i
Next
End Function

har ej provat om det funkar, men det ska vara något i den stilen iaf.

//mvh wim4ns
Citera
2002-10-06, 21:36
  #3
Medlem
kaizens avatar
jag är mer inne på något i stil med

Option Explicit
Dim värde1 As Double
Dim värde2 As Double
Dim värde3 As Double


Private Sub cmdBeräkna_Click()
Do
värde1 = 0
värde2 = (värde1) + 1
värde3 = (värde2) * (värde2)
Loop Until värde3 >= 10000
lblSvar = värde3

End Sub

men det hänger sig bara när jag försöker köra det. och sen ska jag ju skriva ut antal termer och summan
Citera
2002-10-07, 02:20
  #4
Medlem
kaizens avatar
Option Explicit
Dim värde1 As Integer
Dim värde2 As Integer
Dim värde3 As Integer
Dim antalloop As Integer

Private Sub cmdBeräkna_Click()

Do Until värde3 > 10000
värde2 = värde1 + 1
värde3 = värde3 + (värde2 * värde2)
antalloop = antalloop + 1
Loop

lblSvar = värde3
lblSvar2 = antalloop

End Sub

Public Sub Form_Load()
värde1 = 0
End Sub

fast svaret i dom två olika lablarna blir 10001 på båda. det stämmer ju inte
Citera
2002-10-07, 02:43
  #5
Medlem
kaizens avatar
jag har löst det.. inte så svårt när man knäcker nöten mellan skinkorna.
Citera
2002-10-08, 10:13
  #6
Medlem
I loopen kan du även använda dig av do_events, så att inte programmet stannar helt, ifall loopen skulle ta lång tid )
Citera
2002-10-10, 12:24
  #7
Medlem
dim i=1
dim svar=0

while(svar<10000)
svar=svar+i*i
i=i+1
wend

(ursäkta min krackliga vb, var längesen man knackade vbkod...)
Citera
2002-10-10, 20:05
  #8
Medlem
kaizens avatar
tack. såg lite enklare ut än mitt program. fast mitt funkade fint det också.
och det är ju inga stora utrymmen vi pratar om när man kompilerat det
Citera
2002-10-10, 20:07
  #9
Medlem
kaizens avatar
vill bara tillägga.. det va medelandet här precis innan som gjorde mig till mentor .... ÄNTLIGEN !!!!
Citera
2002-11-09, 22:55
  #10
Medlem
Kom på en väldigt kort kod...

Do Until summa > 10000
I = I + 1
summa = I * I
Loop
MsgBox I & "är det som gånger sej själv är över 10000"
Citera
2002-11-10, 00:28
  #11
Medlem
xatrixs avatar
Citat:
Ursprungligen postat av BLAMBI
Kom på en väldigt kort kod...

Do Until summa > 10000
I = I + 1
summa = I * I
Loop
MsgBox I & "är det som gånger sej själv är över 10000"

Om inte jag är alltför trött och ser fel, så testar du bara om 100*100 är 10000 (det är där loopen stannar)... Du utför aldrig summeringen:

summa=(I-1)^2+I^2+(I+1)^2+...+(I+n)^2

som uppgiften gick ut på.
Citera
2002-11-10, 13:59
  #12
Medlem
kaizens avatar
nej det har du alldeles rätt i. här är det. fast jag fick fel ändå. missade på något. :roll:



Option Explicit
Dim värde1 As Integer
Dim värde2 As Integer
Dim värde3 As Integer
Dim antalloop As Integer

Private Sub cmdBeräkna_Click()

Do Until värde3 > 10000
värde1 = värde1 + 1
värde2 = värde1 + 1
värde3 = värde3 + värde2 * värde2
antalloop = antalloop + 1
Loop

lblSvar = värde3
lblSvar2 = antalloop + 1

End Sub
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in