myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Rekursion C++

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 05.04.10, 11:45   #1
ponchosi
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 8
Bedankt: 0
ponchosi ist noch neu hier! | 0 Respekt Punkte
Standard Rekursion C++

Ich soll ne rekursiv definierte Problemstellung programmieren. Es geht um folgendes :

Eine Haltestelle wird zum Zeitpunkt X das erste mal und zum Zeitpunkt Y das letzte mal.

Wenn nach n Minuten ein Bus hält, hält auch einer nach n+12 und einer nach 2n+5 Minuten.
Nun soll das Programm angeben, ob zu einem Zeitpunkt Z ein Bus hält.


Eingegeben werden X, Y und Z.

Meine herangehensweise bisher:

Zuerst berechne ich die Differenz von Z zu X :
z.B

X = 8:00 und Z = 14:00

Z - X = 6 Stunden

und dann auf minuten n = 6 * 60 .

Soooo

Wenn nun bei den Minuten rest 0 rauskommt bei mod10, dann kann ich ja gleich ausspucken "ja es fährt ein bus"

Sollte das nicht der Fall sein, kommt ne rekursive Funktion ins Spiel :

Um zu berechen ob nach n minuten ein bus fährt, muss ich schauen ob nach n-12 und nach (n-5)*1/2 minuten ein Bus fährt.
um zu schauen ob da ein bus fährt muss ich gucken ob nach (n-24) oder nach ((n-5)*1/2)-5)*1/2 minuten ein Bus fährt usw.

Und da is mein Problem ! Wie packe ich das in ne rekursive Funktion ?

funktion(n)

if(n<=0)
return 0;

else
n_eins = funktion(n-12) ;
n_zwei = funktion((n-5)*1/2) ;

?

wenn n = 0 dann fährt zum Zeitpunkt Z ein Bus.

vllt brauch ich nur einen kleinen Schubs !?

Schonmal vielen Dank für eure Hilfe !
ponchosi ist offline   Mit Zitat antworten
Ungelesen 05.04.10, 12:29   #2
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

wie hast du denn die Abfahrzeiten der Busse gegeben? Als Datei? Als Array?
gosha16 ist offline   Mit Zitat antworten
Ungelesen 05.04.10, 12:39   #3
ponchosi
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 8
Bedankt: 0
ponchosi ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von gosha16 Beitrag anzeigen
wie hast du denn die Abfahrzeiten der Busse gegeben? Als Datei? Als Array?

Also vom User eingegeben wird nur der Zeitpunkt X wann der erste Bus fährt, Zeitpunkt Y (wichtig für ne andere Teilaufgabe) wann der letzte Bus fährt und Zeitpunkt Z wann man gerne fahren möchte.
Da reichen ja normale int Variablen. Ich gebe die Anweisung, das der User die Uhrzeit ohne Doppelpunkt schreiben soll, also aus 13:15 wird 1315 !
Damit berechne ich dann n (siehe 1. post)

Aus diesen Daten muss ich rekursiv bestimmen, ob zu diesem Zeitpunkt Z ein Bus fährt oder nicht. Die einzelnen Zeiten, wann ein Bus fährt, muss ich nicht speichern, die sind nicht von belang !

Das wird ja ein Binärbaum sein, also müsste ich, nach meinem Verständnis, 2 rekursive Funktionsaufrufe in der Funktion haben !?

lg
ponchosi ist offline   Mit Zitat antworten
Ungelesen 06.04.10, 01:50   #4
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 454
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

ah, lecker [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] urgas liebling ....
du hattest es ja schon fast. nur fehlt deiner funktion ein zweiter parameter. und zwar der startpunkt des jeweiligen busses...
Zitat:
also müsste ich, nach meinem Verständnis, 2 rekursive Funktionsaufrufe in der Funktion haben !?
ja.
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 07.04.10, 17:39   #5
ponchosi
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 8
Bedankt: 0
ponchosi ist noch neu hier! | 0 Respekt Punkte
Standard

Super, danke dir Hat funktioniert !

Deinen Namen merk ich mir

lg
ponchosi ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.


Sitemap

().