wie soll ich hier anfangen??



  • hi
    ich bin noch ein totaler anfänger in c++ und hab mir mal ein paar aufgaben
    zum üben gesucht.
    Ich hab hier eine aufgabe bei der ich allerdings nicht weiß wie ich anfangen soll.
    Kann mir vieleicht jemand nen ansatz sagen, wie ich da rangehen soll.

    aufgabe:
    unter unix-betriebssystemen sind die zugriffsrechte des eigentümers, der gruppe, der der eigentümer
    angehört, und der welt mit den zeichen r, w und x codiert. x kennzeichnet dabei das ausführrecht,
    w das schreibrecht und r das leserecht. dem ausführrecht ist der wert 1, dem schreibrecht der wert 2
    und dem leserecht der wert 2² zugewiesen. geben sie zb. bei den rechten des eigentümers eine 7 ein,
    so bedeutet das, dass der eigentümer alle rechte auf seine eigenen dateien hat.

    lesen sie von der standardeingabe jeweils die rechte des eigentümers, der gruppe und der welt als
    integralzahl zwischen 0 und 7 ein und listen sie auf der standartausgabe die einzelrechte des
    eigentümer, der gruppe und der welt auf.

    haza



  • 1 = nur ausführrecht
    2 = nur schreibrecht
    4 = nur leserecht

    0 = keine rechte
    3 = ausführrecht, schreibrecht
    5 = leserecht, ausführrecht
    6 = leserecht, schreibrecht
    7 = alle rechte

    Programm [+Eigentümer] [+Gruppe] [+Welt]

    N = Zahl die Rechte angibt
    Lies n ein
    Wenn (n – 4) > 0 – leserecht!



  • Ich versuche die Afgabe mal etwas klarer zu stellen. Dann kommst du schon selbst auf die Lösung:
    Also Gegeben sind 3 zahlen zwischen 0 und 7 - zugriffsrechte einmal für user, group und welt.
    Die erste Zahl beschreibt also die Rechte für den User, die zweite für die gruppe und die letzte für die welt.
    Der Zugriffscode ist ein Bitcode aus 3 Bits: das linke bit steht für lesen, das mittlere für schreiben und das rechte für ausführen.
    Bspl: dezimal 5 == binär 101 => lese und ausführrecht.



  • ok danke !
    ich glaub jetzt hab ichs kapiert.


Anmelden zum Antworten