Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Was ist hier falsch?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
harpas



Anmeldungsdatum: 11.08.2009
Beiträge: 14

BeitragVerfasst am: 23.08.2019, 20:32    Titel: Was ist hier falsch? Antworten mit Zitat

Hallo,
bitte um Hilfe das Prog läuft nicht.

Dank an alle Helfenden!

Code:

'Variablen deklarieren:

DIM AS Integer UZ,PZ,IZ,RD,UG,UK,IK,IG,P,RG,DU,PV,RV,RK
DIM AS STRING wahl


'Hauptprogramm:
Do
Print " ******************************"
Print " * Elektronische Berechnungen *"
Print " ******************************"
Print " ZEHNERDIODE................= 1"
Print
Print "Zum Verlassen...............= exit"
Print
 
DO
    Sleep   1
    Input "Bitte Auswahl (1 - 8) ", wahl
    Print
    Select Case  wahl
       Case "exit"
        SLEEP 1: END
     
    Case "1"
    Do
        Print  "Zehnerdiode"
        Print  ""
        'Variablen einsetzen:
        Print
        Input "ZEHNERSPANNUNG UZ IN V..........= ",UZ
        Input "LEISTUNG DER Z-DIODE IN W.......= ",PZ
        Input "NENSTROM IZ IN mA...............= ",IZ
        Input "DIFF.ZEHNERWIDERSTAND RD IN OHM = ",RD
        Input "MAX.EINGANDSSPANNUNG UE IN V....= ",UG
        Input "MIN.EINGANDSSPANNUNG UE IN V....= ",UK
        Do
        Input "MAX.LASTSTROM IL IN A...........= ",IG
        Input "MIN.LASTSTROM IL IN A...........= ",IK
               
        'Berechnungen:
        IZ = IZ / 1000
        P  = UZ *(IZ +IG - IK)* 1.2 
        RK = (UG - UZ) / ((PZ / UZ) + IK)
        RG = (UK - UZ) / (IZ + IG)
        DU = (UG - UK) * RD / ((0.5 * RK) + 0.5 * RG) + RD * (IG -IK)
        PV = (UG - UZ) * (IG + IZ) * 1.2
        RV = (RK + RG) / 2
       
        If UK <= 1.2 Then Print "UE IST ZU KLEIN"
                If UK > UG Then
                EndIf
    Loop 
          If IK > IG Then
          EndIf
                       If P > PZ Then Print "Z-Dioden-Leistung ist zu klein"
                       If P > PZ Then
                       EndIf
                       Loop
                       
        Print "Das Ergebnis lautet: "
        Print "UA..................= ",UZ ;"Volt"
        Print "RV..................= ",RV ;"OHM"
        Print "Delda UA............= ",DU ;"Volt"
        Print "RV Min..............= ",RK ;"OHM"
        Print "RV Max..............= ",RG ;"OHM"
       
           
    'CASE ELSE
        'Print  "Falsche Eingabe!"
        'SLEEP 100
    'END Select
     
    Loop
    End Select
    Sleep 
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 24.08.2019, 07:56    Titel: Antworten mit Zitat

Der Compiler meldet
Zitat:
test.bas(74) error 35: Expected 'END SELECT', found 'Loop' in 'Loop'

kurz gesagt: da kommt ein unerwartetes LOOP, das zu keinem passenden DO gehört. Wenn ich stattdessen erst das END SELECT schreibe und dann zwei LOOP, kompiliert das Programm.
Ein anderes Problem: Schon oben in den Zeilen 37-53 steht eine DO...LOOP-Schleife ohne Abbruchbedingung. Da wird jetzt unendlich oft immer wieder nach dem maximalen und minimalen Laststrom gefragt.

Ich würde ganz dringend eine konsequente Strategie bei den Einrückungen anraten, sonst wird es schwer zu sehen, wo die Blöcke beginnen und enden (bzw. wo ein Ende zu viel oder zu wenig steht).
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 24.08.2019, 12:17    Titel: Antworten mit Zitat

So ganz auf die Schnelle:

Du hast da wohl versehentlich etwas auskommentiert. Statt
Code:
...
   'CASE ELSE
        'Print  "Falsche Eingabe!"
        'SLEEP 100
    'END Select
     
    Loop
    End Select
    Sleep 
muß am Ende stehen:
Code:
...
         CASE ELSE
            Print  "Falsche Eingabe!"
            SLEEP 100
      END Select

   Loop
Loop
'End Select
Sleep
(dann klappt auch das automatische Einrücken). zwinkern

Außerdem gibt es noch ein paar IF...THEN - Statements mit fehlendem Anweisungsblock, aber ich nehme mal an, das Programm ist noch nicht fertig. lächeln

Und entschuldige, aber eine Klugscheißerbemerkung zum Schluß kann ich mir nicht verkneifen: grinsen Es heißt nicht "Zehnerdiode", sondern "Zenerdiode" (ohne "h").

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
harpas



Anmeldungsdatum: 11.08.2009
Beiträge: 14

BeitragVerfasst am: 26.08.2019, 09:01    Titel: Was ist hier falsch? Antworten mit Zitat

Hallo nemored,
danke für deine Hinweise.
Prog. läuft.
Gruß, harpas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
harpas



Anmeldungsdatum: 11.08.2009
Beiträge: 14

BeitragVerfasst am: 26.08.2019, 09:04    Titel: Was ist hier falsch? Antworten mit Zitat

Hallo Gridstone,
Dank auch dir für die gegebenen Hinweise.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz