Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 22

Thema: QBasic "IF-THEN" Problem!

  1. #1

    QBasic "IF-THEN" Problem!

    Also ich hob da ein Problem mit QBasic!
    Habe gerade mit QBasic angefangen und deswegen bitte nicht lachen!

    Also folgendes:
    Zuerst soll der Anwender einen Namen eingeben z.B.: Max
    Danach soll er seine maximal Punkte eingeben z.B.: 50
    Und dann soll er seine erreichten Punkte eingeben z.B.: 40

    Und anhand dessen soll das Prog. die erreichte Schulnote ermitteln.
    z.B.:
    weniger als 26 punkte = nicht genügend
    usw.
    Hoffe auf hilfe! THX

    LG Black Flame

  2. #2
    Teoretisch währe das ne "einfache" int rechnung.

    Maxpunkt / punkt = x% erfüllt.

    wobei X immer kleiner als 1 ist und Grösser als 0.

    dann ne abfrage

    Wenn X gleich oder Grösser als 0,90 ist dann Sehr gut
    Wenn X kleiner als 0,90 und groser als 0,80 ist dann Gut
    Wenn X kleiner als 0,80 und grosser als 0,75 ist dann Befirdigend
    Wenn X kleiner als 0,75 und grosser als 0,50 ist dann Ausreichend
    Wenn X kleiner als 0,50 und grosser als 0,30 ist dann Mangelhaft
    Wenn X kleiner als 0,30 und grosser als 0,00 ist dann Ungenügent

    Das ganze dann in Code uumbauen ob die zahlen stimmen weiss ich leider nicht -.-''
    den zum einen hat jede schule ein anderres system und zum anderren bin ich kein schüler mehr und weiss es nett mehr -.-''

    edit:

    Ich versuche das mal in Qbasic umzubauen kann aber nix versprechen mein gebit ist PHP ^^,




    Code:
    CLS
    INPUT X#
    INPUT Y#
    Z# = X# / Y# 
    IF Z# => 0,90 THEN
    GOSUB Sehr_Gut
    IF Z# < 0,90 AND  Z# => 0,80 THEN
    GOSUB Gut
    IF Z# < 0,80 AND  Z# => 0,75 THEN
    GOSUB Befirdigend
    IF Z# < 0,75 AND  Z# => 0,50 THEN
    GOSUB Ausreichend
    IF Z# < 0,50 AND  Z# => 0,30 THEN
    GOSUB Mangelhaft
    IF Z# < 0,30 AND  Z# => 0,00 THEN
    GOSUB Ungenuegent
    
     Sehr_Gut:
     PRINT "Sehr gut",
    Gut:
     PRINT "gut"
    Befirdigend:
     PRINT "Befirdigend"
    Ausreichend:
     PRINT "Ausreichend"
    Mangelhaft:
     PRINT "Mangelhaft"
    Ungenuegent:
     PRINT "Ungenuegent"
    wenn das klappt hast glück wenn nicht habe ich erwartet ^^,

    Geändert von dadie (09.10.2005 um 16:25 Uhr)

  3. #3
    Zitat Zitat von dadie
    Code:
    CLS
    INPUT X#
    INPUT Y#
    Z# = X# / Y# 
    IF Z# => 0,90 THEN
    GOSUB Sehr_Gut
    IF Z# < 0,90 AND  Z# => 0,80 THEN
    GOSUB Gut
    IF Z# < 0,80 AND  Z# => 0,75 THEN
    GOSUB Befirdigend
    IF Z# < 0,75 AND  Z# => 0,50 THEN
    GOSUB Ausreichend
    IF Z# < 0,50 AND  Z# => 0,30 THEN
    GOSUB Mangelhaft
    IF Z# < 0,30 AND  Z# => 0,00 THEN
    GOSUB Ungenuegent
    
     Sehr_Gut:
     PRINT "Sehr gut",
    Gut:
     PRINT "gut"
    Befirdigend:
     PRINT "Befirdigend"
    Ausreichend:
     PRINT "Ausreichend"
    Mangelhaft:
     PRINT "Mangelhaft"
    Ungenuegent:
     PRINT "Ungenuegent"
    optimiere mal deinen Code -.-

    Code:
    CLS
    Input "Dein Name"; Name$
    Input "Die Max. Punktzahl"; max
    Input "Die errieichte Punktzahl"; ist
    Wert = max / ist
    If Wert > 0.90 then Print "sehr gut"
    If Wert < 0.9 and Wert > 0.8 then Print "gut"
    If Wert < 0.8 and Wert > 0.75 then Print "Befriedigend" 
    If Wert < 0.75 and Wert > 0.5 then Print "Ausreichend"
    If wert < 0.5 and Wert > 0.3 then Print "Mangelhaft"
    If Wert < 0.3 then Print "Ungenügend"
    Ich hab jetzt die Werte von Dadie genommen, da ich die richtigen Schulbenotungswerte nicht mehr kenne.
    Ich frage mich auch, wozu der Name sein soll?

  4. #4
    Der Name ist wohl dazu da, dass man die erreichten Noten einer Person zuordnern kann. Oder wie sollen sonst die nackten Zahlen etwas aussagen?

  5. #5
    Zitat Zitat von Ynnus
    Der Name ist wohl dazu da, dass man die erreichten Noten einer Person zuordnern kann. Oder wie sollen sonst die nackten Zahlen etwas aussagen?
    Das Programm ist nach der Auswertung der Note eh beendet.
    Der Name hat also keinen Sinn.

  6. #6
    Zitat Zitat von Whiz-zarD
    Das Programm ist nach der Auswertung der Note eh beendet.
    Der Name hat also keinen Sinn.
    evtl. will er das ganze mit na logdatei erweitern oder eine datenbank aufbauen in der diese 3 Daten gespeichert werden.Es kann aber auch einfach sein das er gernen einen satz als antwort hätte mit einem namen und nicht nur "0,90" oder "Sehr gut"

  7. #7
    Zitat Zitat
    Das Programm ist nach der Auswertung der Note eh beendet.
    Der Name hat also keinen Sinn.
    Das ist doch erst der Anfang des Programms. Man fängt ja auch klein an. Da kann er dann weiter anbauen und die Namen + Note in einer Datei abspeichern oder grafisch ausgeben lassen.

  8. #8
    Wäre die Select-Case-Reihe nicht eine Alternative?

  9. #9
    Zitat Zitat von Tomsym
    Wäre die Select-Case-Reihe nicht eine Alternative?
    Viele Wege führen zum Ziel.
    Aber mit Select Case wäre das mehr Schreibarbeit.

  10. #10
    Mal ganz davon abgesehen, dass es in QBasic kein Select Case gibt.

  11. #11
    Nicht das jetzt jemand glaubt das Black Flame mein Doppelaccount ist, aber wir gehen in die gleiche Klasse.
    Ja, der Name ist einfach nur dazu da, dass man einfach eine Note, dem Schüler zuordnet...glaub ich, jedenfalls haben wir das so machen müssen, und ich bedanke mich im Name von Black Flame und von mir.
    Danke.

    LG Henry

  12. #12
    Zitat Zitat von DFYX
    Mal ganz davon abgesehen, dass es in QBasic kein Select Case gibt.
    Ich bin jetzt zu faul, um den "Wenn man keine Ahnung hat..."-Smilie rauszusuchen, aber...
    Code:
    CLS
    INPUT "Dein Name"; Name$
    INPUT "Die Max. Punktzahl"; max
    INPUT "Die erreichte Punktzahl"; ist
    Wert = max / ist
    SELECT CASE Wert
            CASE IS > .9
                    PRINT "sehr gut"
            CASE IS > .8
                    PRINT "gut"
            CASE IS > .75
                    PRINT "Befriedigend"
            CASE IS > .5
                    PRINT "Ausreichend"
            CASE IS > .3
                    PRINT "Mangelhaft"
            CASE ELSE
                    PRINT "Ungen?gend"
    END SELECT
    PRINT Wert
    btw, kann es sein, dass "max" und "ist" als Variablennamen vertauscht wurden? Wenn man z.B. eingibt, dass man 1 von 20 möglichen Punkten erreicht hat, spuckt das Programm ein "sehr gut" aus^^.

  13. #13
    Zitat Zitat
    btw, kann es sein, dass "max" und "ist" als Variablennamen vertauscht wurden? Wenn man z.B. eingibt, dass man 1 von 20 möglichen Punkten erreicht hat, spuckt das Programm ein "sehr gut" aus^^.
    Weil es "ist / max" seinmüsse den 1/20 = 0,05 20/1 = 20

    naja aber nur so neben bei kaum gibt es einen Neuen Topic stürzen sich alle druff und irgentwie sind wir sowas von , von der Diskusion abgekommen das man es nichtmal mehr Spam nenen kann das ist schon ein QFRAT Topic

  14. #14
    Zitat Zitat von Manuel
    Ich bin jetzt zu faul, um den "Wenn man keine Ahnung hat..."-Smilie rauszusuchen, aber
    Dann verklag den Autor von dem Basicbuch, das ich hier stehen hab. Da wird das nämlich auf stark 600 mit keinem Wort erwähnt.

  15. #15
    Was nicht erwähnt wird heißt aber noch nicht, dass es nicht vorhanden ist. Zählt vor Gericht zwar auch als Tatbestand, wenn man die Wahrheit sagen soll aber etwas verschweigt was wichtig wäre, aber hier ist es eben etwas anders. Hätte mich übrigens auch gewundert denn Select und Case ist doch schon ein sehr altes Element der Programmierung oder?

  16. #16
    Zitat Zitat von DFYX
    Dann verklag den Autor von dem Basicbuch, das ich hier stehen hab. Da wird das nämlich auf stark 600 mit keinem Wort erwähnt.
    Basic ist auch nicht QBasic

    Bei Basic gibt es tatsächlich keine Select Case Funktion. Die gibt es aber bei QBasic.

    QBasic ist aber eine erweiterte Version von Basic, wo mehrere Funktionen und befehle zur Verfügung stehen.
    Mit Basic ist es auch nicht möglich, grafisch etwas zu zeichnen, mit QBasic schon.

  17. #17
    Zitat Zitat von Whiz-zarD
    Basic ist auch nicht QBasic

    Bei Basic gibt es tatsächlich keine Select Case Funktion. Die gibt es aber bei QBasic.

    QBasic ist aber eine erweiterte Version von Basic, wo mehrere Funktionen und befehle zur Verfügung stehen.
    Mit Basic ist es auch nicht möglich, grafisch etwas zu zeichnen, mit QBasic schon.
    Ähm, soweit ich (Hab BASIC das letze mal vor 8 Jahren gesehen) gibt es in BASIC Grafikbefehle. Ich mein es gab da nur eine sehr geringe Auflösung oder das ganze war im Textmode. Jedenfalls gab es Befehle wie Line, Plot, Circle (Oder das war alles selbstgeschrieben).

  18. #18
    Zitat Zitat von AgentJG
    Ähm, soweit ich (Hab BASIC das letze mal vor 8 Jahren gesehen) gibt es in BASIC Grafikbefehle. Ich mein es gab da nur eine sehr geringe Auflösung oder das ganze war im Textmode. Jedenfalls gab es Befehle wie Line, Plot, Circle (Oder das war alles selbstgeschrieben).
    Nein, Basic hat sowas nicht
    Wenn du sehen willst, was Basic alles kann, dann kauf dir nen C64 ^^
    Alles weitere sind erweiterungen und gehören nicht zum standard Basic.
    Beim C64 gab es mal das 1stBasic (von der Fachzeitschrift "Input 64")
    Diese Basic Version war eine C64 Adaption von QBasic. (mit line, circle, etc)

  19. #19
    Das Buch, was ich hier hab, ist über die GW-Basic (Graphics and Window) Familie, zu der laut Kapitel 1 auch QBasic gehört. Und dass ich von dem Buch auf die Realität geschlossen habe, liegt daran, dass es immerhin fast 200 Befehle von A wie ABS(<Ausdruck>) über O wie OPEN "COM<Kanal>:[<Baud-Rate>] [,<Priorität>] [,<Wortbreite>] [,<Stop-Bits>] [,RS] [,CS[<Zeit>]] [,DS[<Zeit>]] [,CD[<Zeit>]] [,BIN] [,ASC] [,LF]"[FOR <Modus>] AS #[<Dateinummer>] bis hin zu X wie XOR - X XOR Y auflistet, was so etwa dem kompletten Funktionsumfang entsprechen sollte.

    Wenn man also so ein Buch komplett gelesen und ein ganzes Jahr lang in der Schule mit QBasic gearbeitet hat, ohne dass einem jemals ein SELECT CASE in dieser Sprache untergekommen ist, kann wohl kaum jemand von keine Ahnung sprechen. Wär wohl eher angebracht, freundlich drauf hinzuweisen.

    Geändert von DFYX (11.10.2005 um 13:26 Uhr)

  20. #20
    Ich glaube das Problem war mehr, dass du es so als Behauptung dahingestellt hast obwohl du dir nicht zu 100% sicher sein konntest.
    Aber was soll's? Sowas merkt man sich für's nächste Mal und dann macht man es anders.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •