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:

QBASIC PROGRAMM erstellen

 
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
Anna1988



Anmeldungsdatum: 28.11.2007
Beiträge: 3

BeitragVerfasst am: 28.11.2007, 23:25    Titel: QBASIC PROGRAMM erstellen Antworten mit Zitat

Ich muss folgendes Problem in ein Programm, QBASIC umsetzen…

Mit Hilfe eines Computerprogramms soll die Summe aller ganzen geraden Zahlen zwischen a und b (a<b,) ermittelt werden, wobei a und b positive ganze Zahlen sind und nicht mit eingerechnet werden sollen.

Bsp: a=11, b=20 -> Ergebnis = 12+14+16+18 = 60


Folgendes Programm habe ich schonmal erstellt...
...nur leider ist es kein QBASIC, sondern ein Mix aus C und qbasic...
Kann mir vielleicht jmd helfen?

Variablen: a, b, c, z

INPUT „Kleinere Zahl A eingeben“ ; a
INPUT „Groessere Zahl B eingeben“; b

IF (a MOD 2 = = 0)
{
Else (a MOD 2 = = 1)
{
a + 1
}

IF (b MOD 2 = = 0)

Else (b MOD 2 = = 1)
{
b - 1
}

c = a

LOOP UNTIL c= b+2
{
z = +c
c= c + 2
}
} ENDIF

PRINT z
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 29.11.2007, 00:05    Titel: Antworten mit Zitat

((a + 1) \ 2) * 2
Mit diesem "Trick" erhält man a, wenn a gerade ist oder a+1, wenn a ungerade ist (war vor kurzem hier im Forum. lächeln


Code:
CLS
INPUT "Untere Grenze: ", a
INPUT "Obere Grenze: ", b
summe = 0

        FOR i = ((a + 2) \ 2) * 2 TO ((b - 1) \ 2) * 2 STEP 2
        summe = summe + i
        NEXT

PRINT  "Summe: ";summe

_________________
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
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 29.11.2007, 00:52    Titel: Antworten mit Zitat

Hallo

Das Beispiel von SpionAtom hat einen Schönheitsfehler. Ist der Anfangswert a eine gerade Zahl, dann wird sie mitgezählt. So könnte es gehen:

Code:
CLS

INPUT "Kleinere Zahl A eigeben"; a
INPUT "Groessere Zahl B eingeben"; b

s = a + 2 - (a MOD 2)
e = b - 1

summe = 0

FOR zahl = s TO e STEP 2
 summe = summe + zahl
NEXT

PRINT summe


Bei geraden Zahlen für a wird für den Startwert s der Schleife 2 dazu addiert, bei ungeraden wieder 1 abgezogen. Beim Endwert e reicht es, nur 1 von b abzuziehen. Da der Startwert immer gerade ist landet man so mit STEP 2 immer bei der nächstkleineren geraden Zahl vor dem Endwert b.

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 29.11.2007, 13:23    Titel: Antworten mit Zitat

Den Fehler hab ich nun auch behoben, danke.
Aber ich Fuchs hab mal was ohne Schleife ausgetüftelt. Bin mir nicht ganz sicher, obs immer funktioniert (habs auch nur in Blitzbasic getestet):

Code:
a = ((a + 2) / 2) * 2
b = ((b - 1) / 2) * 2   
s1 = a / 2 + a^2 / 4
s2 = b / 2 + b^2 / 4
e =  s2 - s1 + a
If e <= 0 Then e = 0
Print e

_________________
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
Anna1988



Anmeldungsdatum: 28.11.2007
Beiträge: 3

BeitragVerfasst am: 30.11.2007, 00:58    Titel: Antworten mit Zitat

Oh, m e r c i...
Habs sogar verstanden! : )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anna1988



Anmeldungsdatum: 28.11.2007
Beiträge: 3

BeitragVerfasst am: 05.12.2007, 23:26    Titel: Antworten mit Zitat

Leider gibts immer noch ein kleines Problem...
Und zwar Funktioniert das Programm einwandfrei...

Aber ich möchte, dass die Anfangszahl a, falls sie gerade ist dazusummiert wird...

Also
a= 10
b= 12
Summe= 22

a=9
b=13
summe= 22

a=9
b=12
summe= 22

usw.
------------------------------------------

INPUT "Kleinere Zahl A eigeben"; a
INPUT "Groessere Zahl B eingeben"; b

s = a + 2 - (a MOD 2)
e = b +1 – (b MOD 2)

summe = 0

FOR zahl = s TO e STEP 2
summe = summe + zahl
NEXT

PRINT summe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 05.12.2007, 23:57    Titel: Antworten mit Zitat

Hallo

Code:
INPUT "Kleinere Zahl A eigeben"; a
INPUT "Groessere Zahl B eingeben"; b

s = a + (a MOD 2)
e = b

summe = 0

FOR zahl = s TO e STEP 2
summe = summe + zahl
NEXT

PRINT summe


Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 12.01.2008, 15:01    Titel: Antworten mit Zitat

Da es aber mit ganzzahlen Arbeitet:
Code:
DEFINT A-Z

am anfang schreiben.
Geht schneller grinsen

Gruß Ferdi
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
toniok



Anmeldungsdatum: 19.01.2008
Beiträge: 2

BeitragVerfasst am: 19.01.2008, 19:56    Titel: Brauch Hilfe Antworten mit Zitat

hi,

kann Jemand mir helfen das folgende Programm zu erstellen?

-Schreibt ein QBasic -Programm, das die Dezimalzahlen 0.1 bis 100.0 im Abstand von 0.1 zu je zehn in einer Zeile druckt .

danke im Voraus.
_________________
Glaube ohne Werk ist nichst
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 19.01.2008, 20:07    Titel: Antworten mit Zitat

Hallo,

ich habe dir ein kleines Beispiel geschrieben: http://www.freebasic-portal.de/fbporticula/424 lächeln

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
toniok



Anmeldungsdatum: 19.01.2008
Beiträge: 2

BeitragVerfasst am: 20.01.2008, 00:35    Titel: danke für Hilfe Antworten mit Zitat

danke für deine Lösung Sebastian. die Lösung hat funktioniert .
_________________
Glaube ohne Werk ist nichst
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