C++ Anfänger..bauche Hilfe!



  • Hallo Leute ich bin gerade in der Lehre zum IT-System-Elektroniker und lerne auch das Fach Anwendungssysteme also Programmieren! Wir haben folgende Hausaufgaben auf bei den ich leider Probleme habe...Wäre toll wenn ihr mit Tipps zu den Aufgaben geben könntet..Wenn ihr das tut denkt bitte daran es so simpel wie möglich zu machen da wir wirklich noch in den Anfängen sind!

    Aufgabe 1: Erstellen Sie ein Programm, dass eine als Dezimalzahl in Kilogramm eingegebene Massenangabe (zb 65.786kg) in Kilogramm und in Gramm zerlegt und ausgibt (65kg und 786gramm)

    Aufgabe 2: Erstellen Sie ein Programm, dass eine als Dezimalzahl eingegebene uhrzeit zb. 2,5 stunden in stunden und minuten trennt und ausgibt (2 stunden 30min)

    Aufageb 3: Erstellen Sie ein Programm, dass eine getrennt in stunden und minuten eingegebene zeit als dezimalzahl ausgibt

    Aufgabe 4: Bei einer kegelbahn muss für jede angebrochene viertelstunde eine bahnmiete in höhe von 4,50euro entrichtet werden. erstellen sie ein programm das nach eingabe von anfangs und endzeit die höhe der gebühr errechnet!

    wenn mir einer hilft welche präprozesserdirektiven (#) brauche ich?
    falls es wichtig ist wir müssen mit em CBuilder3 programmieren!

    DANKE im vorraus hoffe mir kann jemand helfen! also können tun es bestimmt viele aber ich hoffe es hat auch jemadn lust 🙂



  • Öhm, wo sind denn deine Versuche?

    Du musst wenigstens Ansätze hier ins Forum bringen. Dann sehen wir wie weit du das schon kapiert hast und können dementsprechend Tipps geben.



  • Hi!

    1. Les die Zahl als String ein. Dann such in dem String nach '.' (evtl. noch ','). Wenn du die Position hast, kannst du den Teilstring von 0 bis PositionVonPunkt-1 nehmen und den Teilstring von PositionVonPunkt+1 bis Stringende. Dann hast du es bereits in kg und g aufgeteilt.
      Header: iostream, string (string für std::string)

    2. Wie Aufgabe 1, allerdings musst du dann die Minuten immer nochmal umrechnen. Das würde dann mit der Formel 60 * Minuten gehen. Wobei Minuten z.B. 5 wäre (bei 2,5), daraus kannst du ja einfach 0,5 machen, wenn du den String erstellst "0," + TeilHinterDemKomma. Dies in eine Zahl umwandeln und einmal rechnen.
      Header: s. Aufgabe 1

    3. Ebenfalls ganz leicht. Stunden kannst du direkt in den String packen und das Berechnen von Minuten in eine Dezimalzahl geht dann mit 60/Minuten.
      Header: s. Aufg. 1

    4. Das geht ziemlich einfach. Dabei kannst du dann auf oben geschriebene Funktionen sogar zurückgreifen, z.B. auf die Funktion von Aufgabe 3. Dann hast du die Uhrzeiten als Dezimalzahl, berechnest Endzeit-Startzeit, hast so das Intervall und schon kannst du ganz einfach für jede 15 Minuten 4,50 berechnen.
      Header: s. Aufg. 1

    Code-Hacker



  • Strings?! Bei Uhrzeiten sehe ich das ja vielleicht nich ein, aber bei einer float-Zahl? Da kann man doch auch den Ganzzahlwert casten und den Rest per Differenz bestimmen. Fänd ich sinnvoller. Ist vielleicht nicht so gegen Fehleingaben gesichert, dafür aber effektiver.



  • Hi!

    Sorry, habe das Dezimalzahl übersehen. Das geht natürlich einfacher. Einmal die Zahl nach integer casten, somit sind die Nachkommastellen weg und dann von der Zahl diesen integer abziehen. Allerdings scheint es so als soll die Ausgabe ohne '0.' sein, entweder macht man es nach string und haut die '0.' weg oder man rechnet (AnzahlNachkommastellen*10*)*Gramm, wobei man dazu erstmal die Anzahl der Nachkommastellen ermitteln muss, geht in diesem Fall mit string etwas leichter.

    Code-Hacker



  • Stimmt. Das hatte ich gar nicht bedacht. Obwohl es bei kg->g ja auch reicht, wenn man *1000 rechnet. Aber whatever. Gehen tut alles.


Anmelden zum Antworten