Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Why do FOR/NEXT variables end up +1 more?
#11
It's amazing what one can all do in this case. That's fun! - And everything goes back to a For loop.  Tongue

Calling a Sub procedure and/or an EXE file.

PS: Damn, if one enter "n" it doesn't work. I'll take a look tomorrow.

Code: (Select All)

'Aus einer While-Schleife eine Sub-Prozedur aufrufen - 25. Aug. 2023

$Console:Only
Option _Explicit

Declare Sub Berechnen(eingabe As Integer)

Dim As Integer i, eingabe, modBedingung
Dim As String antwort

Print
Print "While-Schleife wird bis zur Eingabe durchlaufen, wobei"
Print "bei Mod 7 = 0 jedesmal eine Ausgabe erfolgt."

Print
Input "Eingabe  : ", eingabe
Input "Modangabe: ", modBedingung
Print: Print

'While-Schleife wird bis zur Eingabe durchlaufen, wobei
'bei Mod 7 = 0 jedesmal eine Ausgabe erfolgt
'Ergaenst um Aufruf eines externen Programms, wenn Bedingung erfuellt
i = 1
While i < eingabe
  i = i + 1
  If i Mod modBedingung = 0 Then
    Berechnen (i)
  ElseIf i Mod 23 = 0 Then
    Do
      Print
      Input "Weiter J/N: ", antwort
    Loop Until UCase$(antwort$) = "J"
    Run "D:\Lab\QuickBasic64\Finanz+Mathe\Geometrie\Rechtwinkliges-Dreieck-Hypo.exe"
  End If
Wend

End 'Hauptprogramm

Sub Berechnen (eingabe As Integer)

  eingabe = eingabe * 3
  Print Using "Ergebnis = ###"; eingabe
End Sub

The called EXE file:
Code: (Select All)

'Berechnungen am rechtwinkligen Dreieck - 5. August 2023
'https://qb64phoenix.com/qb64wiki/index.php/HYPOT

Option _Explicit

Dim As Double ankathede, gegenkathede, hypotenuse
Dim As Double hoehe_c, flaecheninhalt, umfang

Locate 2, 3
Input "Laenge der Ankathede(cm)  : ", ankathede
Locate 3, 3
Input "Laenge der Gegenkathede(cm): ", gegenkathede

hypotenuse = _Hypot(ankathede, gegenkathede)

Locate 5, 3
Print Using "Die laenge der Hypotenuse im Dreiceck betraegt: ###.## cm"; hypotenuse

'Hoehe hc und Flaecheninhalt im rechtwinkligen Dreieck
hoehe_c = ((ankathede * gegenkathede) / hypotenuse)
flaecheninhalt = ((hypotenuse * hoehe_c) / 2)
umfang = ankathede + gegenkathede + hypotenuse

Locate 7, 3
Print Using "Der Umfang dieses Dreiecks betraegt          : ###.## cm"; umfang
Locate 8, 3
Print Using "Der Flaecheninhalt dieses Dreiecks betraegt  : ###.## qcm"; flaecheninhalt

End

[Image: While-Prozeduren.jpg]
Reply


Messages In This Thread
RE: Why do FOR/NEXT variables end up +1 more? - by Kernelpanic - 08-25-2023, 11:19 PM



Users browsing this thread: 1 Guest(s)