Hilfe bei QBasic!!!

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hilfe bei QBasic!!!

    Hallo ich weis gerade nicht einmal ob ich hier im richtigen Forum bin aber ich brauche dringend eure Hilfe bzw. von einem der richtig Ahnung von dem Prog. QBasic hat. ICh schreibe am Freitag eine Info Klausur und habe den praktischen Teil schon vor liegen und suche jemanden der ihn mir lösen kann....

    Ab hier die Klausur (das genannte Strucktogramm liegt als Bild an)
    ___________________________________________________________________

    Programm „KUERZEN.BAS“

    1) Erstellen Sie ein Programm, mit dem Sie bei Eingabe von Zähler und Nenner eines Bruches den größten gemeinsamen Teiler ermitteln und den Bruch kürzen können. Das Programm soll Ihnen den ungekürzten Bruch, das ggt und den Bruch ausgeben. Benutzen Sie zum Erstellen das untenstehende Strucktogramm (Beachten Sie, das es nicht in allen Teilen vollständig ist: z.B. bei der Ermittlung von max und min)!

    Schreiben sie jetzt das Programm! Benutzen Sie die angegebenen Variablen!
    Die Prozedurausgabe soll den Bruch in Bruchform ausgeben.

    Zu benutzende Variablen:

    zr INTEGER ’Zähler
    nr INTEGER ’Nenner
    max INTEGER ’größere Zahl von zr und nr
    min INTEGER ’kleinere Zahl von zr und nr
    g INTEGER ’Hilfsvariable
    i INTEGER ’Zählvariable
    ggt INTEGER ’größter gemeinsamer Teiler




    auf dem Bild is das was im ersten Dreieck steht schwer zu erkennen dort steht nr=0 ?
  • wenn der Nenner (nr) = 0 ist, dann ist die Aufgabe nicht lösbar, da x/0 gegen unendlich geht ... also musst du erst abfragen ob der Nenner = 0 und dann eine Fehlermeldung ausgeben und wieder die Eingabe starten ...

    Wenn du die Abfrage nicht machst bekommst du von QBasic eine Fehlermeldung division durch null und das Programm bricht ab ...
    "Der Leser dieses Postings erklärt sich damit einverstanden, den Inhalt sofort nach Beendigung des Lesens aus dem Gedächtnis zu streichen. Zuwiderhandlungen gegen die Vereinbarung werden als Raubkopieren verfolgt."™©®
  • Ist evtl. ein wenig umständlich geschrieben (Bin etwas aus der Übung)
    Und die Vorgabe haut auch nicht 100%ig hin. ---> ggt=min/i <----da würde was völlig falsches rauskommen. Vielleicht bin ich auch zu blöd...
    Jedenfalls funzt es so:
    -----------------------------------------------------------------------
    start:
    CLS
    INPUT "Zähler: ", zr
    INPUT "Nenner: ", nr
    IF nr = 0 THEN PRINT "Nicht möglich" ELSE GOTO weiter
    INPUT "", z
    GOTO start
    weiter:
    PRINT
    PRINT "Ungekürzter Bruch ="; zr; "/"; nr; ""
    IF zr > nr THEN max = zr ELSE max = nr
    IF zr < nr THEN min = zr ELSE min = nr
    ggt = 1
    i = 1
    q = i * max / min
    DO UNTIL q = INT(q)
    q = i * max / min
    i = i + 1
    LOOP
    ggt = max / q
    PRINT "Größter Gemeinsamer Teiler ="; ggt; ""
    PRINT "Gekürzter Bruch ="; zr / ggt; "/"; nr / ggt; ""