Avatar billede papman Nybegynder
23. oktober 2002 - 10:32 Der er 15 kommentarer og
2 løsninger

Går op i ?

Hej alle sammen !

Hvordan gør jeg det her:
________________________________________________
<%@ Language=VBScript %>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
intTal1 = 1
intTal2 = 2

Do While(intTal1 <= 6)

Response.Write "Går " & intTal2 & " op i " & intTal1

If (intTal2 går op i intTal1) Then
Response.Write " JA!<br>"
Else
Response.Write " Nej!<br>"
End If

intTal1 = intTal1+1
loop
%>

</BODY>
</HTML>
________________________________________________

PFT!
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 10:40 #1
Der findes garanteret en indbygget matematisk funktion, der gør præcis det du ønsker. Men i alle tilfælde burde du kunne gøre noget i denne stil:

<%
intTal1 = 55
intTal2 = 6

Response.Write "Går " & intTal2 & " op i " & intTal1 & "<br>"

for i = 1 to intTal1
    intTal3 = intTal3 + intTal2
    if intTal3 = intTal1 then
        isWorking = true
        Response.Write " JA!<br>"
        Response.Write "Efter " & i & " gennemløb"
    End If
Next

if not isWorking then
    Response.Write " Nej!<br>"
End If
%>

Mvh,

Thomas Regin.
Avatar billede tubber Juniormester
23. oktober 2002 - 10:42 #2
Man må kunne sige :

intTal3 = intTal2 / intTal1

Do While(intTal1 <= 6)

Response.Write "Går " & intTal2 & " op i " & intTal1

If intTal3 = 1 or 2 or 3 then
  Response.Write " JA!<br>"
Else
  Response.Write " Nej!<br>"
End If

intTal1 = intTal1+1
loop
%>

Men den er kun gældende hvis intTal2 = 6

Hvis du vil øge den til intTal2 må være op til 256 så kan du jo chekke om intTal3 er en byte.....
må den være større endnu kan man chekke om det er en integer eller long og om det er størrer eller mindre end 0.

Grunden til du skal chekke om det er størrer eller mindre end nul er at integer og long også må være negative.....
Men de må ikke have komma, så er det en integer eller long større end 0 så går tallet op i........

/Tubber
Avatar billede tubber Juniormester
23. oktober 2002 - 10:44 #3
Thommas: Kan du ikke lige forklare din rutine ?

Den ser interessant ud, men kan ikke lige gennemskue den :O/

Tubber
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 10:47 #4
Tubber..

Jo, det kan jeg da sagtens:

for i = 1 to intTal1 'Loop igennem fra 1 så vi er sikre på, at vi har været hele turen igennem.
    intTal3 = intTal3 + intTal2 'Saml en variabel, som indeholder check-variablen plusset med sig selv.
    if intTal3 = intTal1 then 'Check om denne variabel er lig med intTal1
        isWorking = true 'Okay.. Tallet går op. Sæt et flag.
        Response.Write " JA!<br>"
        Response.Write "Efter " & i & " gennemløb"
    End If
Next

if not isWorking then 'Hvis der ikke er noget flag, så går tallet ikke op.
    Response.Write " Nej!<br>"
End If

PS.: Det virker efter hensigten her hos mig!

Mvh,

Thomas Regin
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 10:50 #5
For ikke at spilde unødige ressourcer kunne man også sætte en

Exit For ind:

....
Response.Write "Efter " & i & " gennemløb"
Exit For
....

Så vil den breake i samme øjeblik, som den finder et match! Ellers fortsætter den.

Mvh,

Thomas Regin.
Avatar billede tubber Juniormester
23. oktober 2002 - 10:55 #6
intTal3 starter som nul, og intTal2 er den man sætter og sætter jeg den til 6, så ved første gennemløb så er intTal3 = 6 og anden gang = 12 og trejde gang 18 og så fremdeles ?
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 10:57 #7
Det er fuldstændig korrekt!

/thomas
Avatar billede tubber Juniormester
23. oktober 2002 - 10:57 #8
den der Exit For skal vel først være der når din tæller er :
tæller > intTal2 ?

Der er ingen grund til at chekke tal der er størrer ?
Avatar billede tubber Juniormester
23. oktober 2002 - 10:58 #9
hmmmmm ser ud til jeg har byttet om på tallene eller hvad ?
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 11:01 #10
Du skal bare sætte Exit For lige under

Response.Write "Efter " & i & " gennemløb"

Vi ved jo, at tæller > intTal2 aldrig vil ske fordi vi siger:

for i = 1 to intTal1

Denne sørger for, at vi aldrig overstiger intTal1's værdi!

Håber, at det giver mening! Det er den rigtige måde at gøre tingene på.

/thomas
Avatar billede tubber Juniormester
23. oktober 2002 - 11:01 #11
OK så langt så godt, men så stiger den værdi du ville chekke.....

men hvorfor skal man lave den der med at ligge sammen ? kan man ikke bare sætte det op imod de 6 man starter med ?
Lige umiddelbart kan jeg ikke se nogen grund til at lægge intTal2 til intTal3.....???

Kan sq godt mærke min matematik er lidt rusten.....
Avatar billede tubber Juniormester
23. oktober 2002 - 11:03 #12
ja self....
Avatar billede tubber Juniormester
23. oktober 2002 - 11:05 #13
DOH!

Jeg har kigget forkert......

Jeg så det som at det er det tal man vil have det til at gå op i der var konstant....

Men det er jo lige omvendt......

Din function er korekt så....
Nu er jeg helt med :O)
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 11:10 #14
Okay!.. Så lad mig forklare.

1. Vi skal checke om tal1 går op i tal2.

Derfor laver jeg en tal3 variabel, så jeg hele tiden holder styr på hvad der ligger i tal2-variablen. Hvis jeg ikke gjorde det, så kunne jeg ikke vide hvordan jeg skulle gennemløbe loopet! Og hvorfor ikke, spørger du så sikkert?

Med udgangspunkt i tal2:

tal2 = 10

for i = 1 to tal1
if tal2 = tal2 + tal2 tal1 then
  Response.Write "Tallene går op i hinanden"
End If
Next

Allerede første gang denne kører vil der opstå problemer, da vi siger:

tal2 = tal2 + tal2

Med tal ville dette blive til:

10 = 10 + 10

Altså 20:

Og næste gang ville det blive til

20 = 20 + 20 = 40

Hvis jeg istedet bruger en ny variabel kaldet Tal3, så kan jeg holde styr på det:

Første loop:

tal3 = tal3 = tal2

0 = 0 + 10 = 10

Andet loop:

10 = 10 + 10 = 20

Tredje loop:

20 = 20 + 10 = 30

Osv. osv..

Derfor bliver jeg nødt til at holde styr på den oprindelige værdi af Tal2, for at kunne lægge tallene sammen korrekt i loopet..

Håber du forstår nu! ;)

Mvh,

Jørgen Clevin! ;)
Avatar billede eagleeye Praktikant
23. oktober 2002 - 13:06 #15
Har i overvejt MOD  ???


Hvis intTal1 MOD intTal2 = 0 så gå intTal2 op i intTal1...:


<%@ Language=VBScript %>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
intTal1 = 1
intTal2 = 2

Do While(intTal1 <= 6)

  Response.Write "Går " & intTal2 & " op i " & intTal1

  If (intTal1 MOD intTal2 = 0) Then
    Response.Write " JA!<br>"
  Else
    Response.Write " Nej!<br>"
  End If

  intTal1 = intTal1+1
loop
%>
</BODY>
</HTML>
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 13:10 #16
Ja, jeg tænkte jo nok, at der fandtes en Modular funktion i ASP ! ;)

Hvorfor bruge noget, som allerede er lavet, hvis man kan opfinde den dybe tallerken hver gang! ;)

/thomas
Avatar billede papman Nybegynder
23. oktober 2002 - 16:12 #17
Tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester