Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
timpa
Anmeldungsdatum: 19.12.2011 Beiträge: 5
|
Verfasst am: 03.01.2012, 22:35 Titel: Vielfaches einer zahl |
|
|
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 |
|
|
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 338
|
Verfasst am: 03.01.2012, 22:53 Titel: |
|
|
Du fragst ob die Eingabe kleiner als 100 ist, nicht jedoch die Vielfache
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, 22:55, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
timpa
Anmeldungsdatum: 19.12.2011 Beiträge: 5
|
Verfasst am: 03.01.2012, 22:54 Titel: |
|
|
hmmm iwi klar jetzt seh ichs auch omg....danke!!!!
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, 22:57, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 338
|
Verfasst am: 03.01.2012, 22:59 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 03.01.2012, 23:20 Titel: |
|
|
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 _________________
Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 338
|
Verfasst am: 03.01.2012, 23:51 Titel: Variante |
|
|
Hmpf, wollte komplette Lösungen vermeiden
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 |
|
|
timpa
Anmeldungsdatum: 19.12.2011 Beiträge: 5
|
Verfasst am: 04.01.2012, 15:47 Titel: |
|
|
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! |
|
Nach oben |
|
|
|