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:

Vielfaches einer zahl

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



Anmeldungsdatum: 19.12.2011
Beiträge: 5

BeitragVerfasst am: 03.01.2012, 21:35    Titel: Vielfaches einer zahl Antworten mit Zitat

Neues Jahr neues Glück...neue Aufgabe=)
ich soll lediglich die Vielfachen einer natürlichen Zahl errechnen lassen, die allerdings kleiner als 100 sind. Ich habe auch schon einen Ansatz, weis aber nich, warum es immerwieder die Ergebnisse über 100 ausgibt!

CLS
INPUT a
FOR i = 1 TO 20
IF a < 100 THEN PRINT a * i ELSE PRINT "nicht im rahmen"
NEXT

bestimmt total einfach....ich komm trotzdem nich weiter...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 306

BeitragVerfasst am: 03.01.2012, 21:53    Titel: Antworten mit Zitat

Du fragst ob die Eingabe kleiner als 100 ist, nicht jedoch die Vielfache zwinkern

Code:
IF a * i < 100 THEN



Dein Code hat noch die Schwäche, dass kleiner Zahleneingaben nicht alle Vielfache ausspucken: wenn man 2 eingibt, erhältst du mit deiner Schleife bis 20 maximal die 40 als Vielfache. Vielleicht findest du eine elegantere Lösung mit einer WHILE..WEND-Schleife...
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.


Zuletzt bearbeitet von SpionAtom am 03.01.2012, 21:55, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
timpa



Anmeldungsdatum: 19.12.2011
Beiträge: 5

BeitragVerfasst am: 03.01.2012, 21:54    Titel: Antworten mit Zitat

hmmm iwi klar jetzt seh ichs auch omg....danke!!!!grinsen
aber wie kann ich ihm denn jetzt sagen dass er nur einmal angeben soll dass der rest über dem limit ist?


Zuletzt bearbeitet von timpa am 03.01.2012, 21:57, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 306

BeitragVerfasst am: 03.01.2012, 21:59    Titel: Antworten mit Zitat

Es gibt den Befehl EXIT, um eine Schleife zu verlassen.
Wie dem auch sei. Mit einer WHILE..WEND Schleife gehts eleganter.
Und bedenke, dass deine Schleife nur bis 20 geht und eventuell nicht alle Ergebnisse ausspuckt
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5895
Wohnort: Deutschland

BeitragVerfasst am: 03.01.2012, 22:20    Titel: Antworten mit Zitat

Hallo!

Wenn alle Vielfache der eingegebenen Zahl berechnet werden sollen, die unter 100 liegen (und nicht maximal 20 Stück), könnte man es z.B. so umsetzen (entspricht SpionAtoms Vorschlag):

Code:
Dim Zahl As Integer
Dim i As Integer

Input "Zahl eingeben: ", Zahl

' Eingabe darauf ueberpruefen, ob sie sinnvoll ist:
If (Zahl < 1) Or (Zahl >= 100) Then
    Print "Ungueltige Zahl eingegeben."
    Sleep: End  ' Abbruch des Programms
End If

i = 0  'siehe http://de.wikipedia.org/wiki/Vielfaches
While ( (i*Zahl) < 100 )  ' = "solange das Produkt unter 100 ist, mach Folgendes:"
    Print i*Zahl  ' Produkt ausgeben
    i = i + 1   ' Faktor um 1 erhoehen
Wend

Print  'Leerzeile
Print "Fertig. Taste druecken zum Beenden."

Sleep
End


Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 306

BeitragVerfasst am: 03.01.2012, 22:51    Titel: Variante Antworten mit Zitat

Hmpf, wollte komplette Lösungen vermeiden zwinkern

Aber wenn schon, denn schon:
Code:
'Verwendete Variablen
        DIM eingabe AS INTEGER
        DIM vielfaches AS INTEGER

'Eingabe
        CLS
        DO
            INPUT "Bitte eine Zahl zwischen 1 und 100 eingeben: ", eingabe
        LOOP UNTIL (eingabe >= 1) OR (eingabe <= 100)

'Verarbeitung und Ausgabe       
        PRINT
        PRINT "Vielfache von:"; eingabe
      vielfaches = eingabe + eingabe
        WHILE vielfaches <= 100
            PRINT vielfaches;
            vielfaches = vielfaches + eingabe
        WEND

END


Nein, selbst bei diesem noch simplen Problem sieht man, dass es unzählige Wege gibt, um zur Lösung zur gelangen, selbst deine Lösung führt ja zur richtigen Ergebnissen, timpa.
Was meine Lösung von Sebastians unterscheidet, ist, dass sie ohne Multiplikationen auskommt, und somit schneller ist. (Fällt aber bei unseren kleinen Zahlen nicht wirklich ins Gewicht)
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
timpa



Anmeldungsdatum: 19.12.2011
Beiträge: 5

BeitragVerfasst am: 04.01.2012, 14:47    Titel: Antworten mit Zitat

Ich danke euch vielmals! Ich werde allerdings meine Variante nehmen da ich noch ein Strucktogramm und ein Pseudocode anfertigen muss...wenn diese nun nicht mit dem syntax übereinstimmen, also ich dann einen Fehler mache ist es ein wenig auffällig. Trotzdem Danke nocheinmal!lächeln
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 QBasic. 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