Avatar billede vels Nybegynder
01. april 2002 - 10:28 Der er 9 kommentarer og
1 løsning

If sætning....

Hej

Jeg skal have lavet en if sætning som jeg ikke lige kan overskue at lave :-(

Min kode skal være under en timer...

Hvis deltat > 6 så skal der udføres noget
Men hvis deltat < 3 så skal det stoppes...

Kort sagt... må kun starte når deltat > 6 og skal stoppe når deltat < 3

Hvordan laver man det nemmest?
Avatar billede stig3 Mester
01. april 2002 - 10:36 #1
if delstat> 6 then
  while not(delstat < 3)
    ..
  wend
end if
Avatar billede vels Nybegynder
01. april 2002 - 11:06 #2
jow aha...

der hvor .. er, skal man vel sætte sin kode for hvad den skal gøre hvis deltat > 6  og deltat < 3  er opfyldt.... men hvor skal jeg smide min kode hvis det ikke er opfyldt....?
Avatar billede tjacob Juniormester
01. april 2002 - 12:01 #3
>>stig3: Det kan da ikke bruges!
Du går kun ind i løkken hvis deltat>6, og det vil sige at den ALDRIG kan være under 3, hvilket betyder at din while-sætning ALTID er sand.

>>vels: Jeg forstår ikke helt spørgsmålet. Hvis noget KUN skal udføres når deltat er over 6, jamen så er det jo autmatisk stoppet når den er under 3????
Avatar billede vels Nybegynder
01. april 2002 - 12:22 #4
Det er fordi at jeg er ved at lave en styring til et solvarme anlæg (et eksamens projekt)

Der er er 2 temperatur føler føler 1 og føler 2
Pumpen til at pumpe vandet rundt i solfangeren skal kun køre hvis at føler 1 er 6 grader højre end føler 2 og pumpen skal slukkes igen når at føler 1 kun er 3 grader højre end føler 2.

Håber at du forstår hvad jeg mener :-)
Avatar billede tjacob Juniormester
01. april 2002 - 12:40 #5
OK, -jeg forstår, men der er jo et logisk spring her:
"skal kun køre hvis at føler 1 er 6 grader højere"
-Det betyder at den IKKE kører, hvis f.eks. den er 4 grader højere,
og altså stopper når den når under 6 grader.
-For at komme ud over dette, er du nødt til at anvende en variabel mere, som angiver hvorvidt pumpen kører eller ej.
-Såvidt jeg har forstået: 

-Hvis slukket, så start > 6
-Hvis tændt, så sluk < 3

Det kan laves således:

dim PumpOn as Boolean, Temp1 as long, Temp2 as long

If PumpOn = False Then    'hvis pumpe er slukket
    If (Temp1-Temp2) > 6 Then
        PumpOn = True
        'Her skriver du din kode -f.eks. til at starte pumpen
    End if
Else                      'hvis pumpe er tændt
    If (Temp1-Temp2) < 3(4?) Then
        PumpOn = False
        'Her skriver du din kode -f.eks. til at slukke pumpen
    End if
End If
Avatar billede stig3 Mester
01. april 2002 - 12:54 #6
tjacob>>

Den virker da efter hensigten.

Det er rigtigt at man kun kommer ind, hvis deltat er > 6, men det er jo kun første gang at man er sikker på at ryge ind i whilke-løkken.

if delstat> 6 then
  while not(delstat < 3)
    ..
    'Her skal der står noget, der ændrer deltat-variablen
  wend
end if
Avatar billede tjacob Juniormester
01. april 2002 - 13:02 #7
>>stig3:  Det er selvfølgelig korrekt, men deltat (en temperaturforskel)
          bliver jo ikke beregningsmæssigt ændret. Det er en fast værdi
          der inputtes hver timeren fyrer funktionen af. -Fra starten
          (dvs at den kun når ind til while, hvis den er over 6).
Avatar billede vels Nybegynder
01. april 2002 - 13:07 #8
Det er her jeg har fået ideen til det...:
http://www.arcon.dk/pdf/ARCON_TC_S2_DK.pdf

Der står det beskrevet...
Avatar billede tjacob Juniormester
01. april 2002 - 13:13 #9
OK, det er som jeg beskrev det i mit svar. Den løsning jeg beskrev vil gøre netop hvad der forlanges. Du kan blot lægge koden ind i en timer, og så huske først at indlæse værdier for Temp1 og Temp2.
-Alle 3 variable skal foriøvrigt erklæres på form- eller modulplan som Public.
/tjacob
Avatar billede vels Nybegynder
01. april 2002 - 20:39 #10
Der sku da :-)
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