tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
483
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    zwob zwob ist offline Rookie
    Registriert seit
    Mar 2003
    Ort
    Dresden
    Beiträge
    8
    moin,

    ich versuch C++ zu lernen und hab ne Aufgabe bekommen, welche wie folgt lautet:

    Was geschieht intern beim Schreiben/Lesen einer Ganzzahl mit den Anweisungen
    int zahl;
    cin >> zahl;
    cout << zahl;

    Entwickel dafür einen "Ersatzquelltext", der nur auf der Ein- bzw. Ausgabe einzelner Zeichen basiert, d.h., erlaubt sind nur die Anweisungen
    char c;
    c=cin.peek();
    cin=cin.get();
    cout.put(c);


    nun, beim ersten Teil denke ich, wird ne Zahl zeichenweise eingelesen bis Ende-Null, gespeichert und schließlich zeichenweise wieder ausgegeben. Ich weiß nur nich, ob das als Antwort ausreicht.
    Den zweiten Teil könnte ich lösen, indem ich ne while-Schleife benutze, aber genau das soll ich ja vermeiden, denke ich.

    Könnt ihr mir bei meinem Problem und dieser Aufgabe helfen?
    Vielen Dank im voraus...
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Den zweiten Teil kannst du ohne Schleife garnciht realisieren!


    mfg
    umbrasaxum
     

  3. #3
    zwob zwob ist offline Rookie
    Registriert seit
    Mar 2003
    Ort
    Dresden
    Beiträge
    8
    na den zweiten Teil wollte ich wie folgt schreiben:

    char zeichen;
    while(cin.get(zeichen)) cout.put(zeichen);

    cin.peek() liefert mir ja das nächste Zeichen, aber wozu brauch ich das dann noch? Die Aufgabenstellung hört sich für mich aber so an, als ob ich das zwingend nutzen müsste...
     

  4. #4
    NomadSoul NomadSoul ist offline Mitglied Platin
    Registriert seit
    Nov 2002
    Ort
    Mannheim
    Beiträge
    544
    Blog-Einträge
    5
    also das lässt sich auch rekursiv lösen... Ich Poste nacher mal nen Lösungsvorschlag.

    edit:
    Hust ich glaub das wird doch nix draus, mein C tut ned des was es soll, sry.
    Aber Rekursiv ging des auch.
    Geändert von NomadSoul (04.04.05 um 18:39 Uhr)
     

  5. #5
    uhu01 uhu01 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    AT-STMK
    Beiträge
    207
    Hy!

    @NomadSoul:

    Warum willst du das denn rekursiv lösen? Sicherlich geht es auch, aber eine rekursion ist doch völlig unnötig, und bei langen Textzeilen verbrauchst du nur unnötig Speicher ( für die eine Variable die du in der Funktion deklarieren musst)

    @zwob
    Es ist meiner Meinung nach schon erlaubt, das so zu machen, jedenfalls steht dort nichts davon, das du alle Funktionen benutzen musst.
    Eindeutig: "erlaubt sind nur die Anweisungen"
    Und die Schleife muss auch erlaubt sein, denn anders ist das Problem nicht sinnvoll zu lösen.

    mfg
    uhu01
     

  6. #6
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Was hällst du von dieser Lösung?!
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        char c;
     
        while(cin.peek() != '\n')
        {
            c = cin.get();
            cout.put(c);
        }
     
            cin.get();          //optional
     
        return 0;
    }


    mfg
    umbrasaxum
     

  7. #7
    zwob zwob ist offline Rookie
    Registriert seit
    Mar 2003
    Ort
    Dresden
    Beiträge
    8
    jo, ich glaub das ist die gesuchte Lösung. Is eigentlich gar nich so schwer, aber irgendwie fehlt mir noch n bissl der Überblick um sowas zu lösen

    Tausend Dank für Eure Hilfe
     

  8. #8
    NomadSoul NomadSoul ist offline Mitglied Platin
    Registriert seit
    Nov 2002
    Ort
    Mannheim
    Beiträge
    544
    Blog-Einträge
    5
    naja, wenn unser Prof so eine Aufgabe stellt, dann ist klar das nur diese Konstrukte benutzt werden dürfen.
    Für mich klingt das Rekursiv, und jedes itterative Problem ist auch rekursiv lösbar oder wars umgekehrt ...
     

  9. #9
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Die Aufgabe wäre auch Rekursiv lösbar, ist aber in diesem Fall völlig unnötig...


    mfg
    umbrasaxum
     

Ähnliche Themen

  1. Anfänger-Problem
    Von IFIllusion im Forum C/C++
    Antworten: 13
    Letzter Beitrag: 13.05.07, 20:01
  2. Anfänger problem
    Von itwasjustme im Forum PHP
    Antworten: 3
    Letzter Beitrag: 30.06.05, 23:35
  3. anfänger problem mit if
    Von Germanterminaotr im Forum PHP
    Antworten: 17
    Letzter Beitrag: 12.01.05, 09:51
  4. Anfänger Problem
    Von igfas im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 07.09.03, 19:40
  5. Anfänger Problem!
    Von Dark Dämon im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 09.06.03, 10:22