C++



  • faten schrieb:

    Muster lösung von diesem Klausur

    Aber hast das ganze wohl immernoch nicht verstanden...
    Zeig mal schritt für Schritt mit 0'en und 1'en wie du zum Ergebnis kommst...

    Ich habe es ja ANSCHEINEND nicht verstanden.. Erklärs mir mal bitte 😃

    Das Ergebnis ist aber schon richtig 😛

    faten schrieb:

    Du kannst es kompilieren lassen!!

    Brauch ich nicht habe ja ein Blatt und nen Kugelschreiben da sieht es schöner drauf aus 👍



  • @faten: Die Operatoren ~, |, & sind bitweise-binaeroperatoren

    was Freak_Coder geschrieben hat stimmt schon, da bei dir NICHT angegeben ist um welche Architektur es sich handelt. Er verwendet eine vorzeichenlose 5-bit Architektur. Und Bitmuster sind ja immer nur interpretationssache.
    Also
    y = 23 = 10111
    14 = 01110
    ~y = y invertiert = 01000
    Jetzt rechne
    10111 ODER 01110 UND 01000

    und wenn du DAS nicht kannst, dann solltest das Semester bzw den Kurs wirklich nochmal wiederholen, denn das ist grundigste Grundlage.



  • pli schrieb:

    was Freak_Coder geschrieben hat stimmt schon, da bei dir NICHT angegeben ist um welche Architektur es sich handelt. Er verwendet eine vorzeichenlose 5-bit Architektur. Und Bitmuster sind ja immer nur interpretationssache.

    Es ist aber für ein int eine Mindestlänge von 16 Bit vorgeschrieben.



  • ich habe das beispiel genommen und kompiliert:

    int a ,b ; // a= 00000000 00000000 00000000 00001001
    a = 9 ; // b= 11111111 11111111 11111111 11110110
    b=~a; // b hat den wert -10

    Man erwartet keine beleidigungen wenn man was fragt und ob ich den kurz wiederholen oder nicht muss ,ist auch meine sache!!



  • Gegeben ist ein Punkt P mit den x-y-Koordinaten (a,b) und ein Kreis
    K um den Nullpunkt mit dem Radius r.
    a) Definieren Sie eine syntaktisch korrekte C-Funktion
    int liegtAussen(float a, float b, float r);
    die 1 liefert, falls P=(a,b) ausserhalb von K mit Radius r liegt
    und 0 sonst.
    b) Testen Sie Ihre Funktion liegtAussen() aus a) mit den drei
    verschiedenen Parametersaetzen (a,b,r)=(0.5,0.5,1), (1,-1,1),
    (-4,3,5), indem Sie den Kreis mit Radius r und den Punkt (a,b)
    skizzieren und das zugehoerige Funktionsergebnis ermitteln (kein
    Schreibtischtest erforderlich!).
    c) Erstellen Sie ein Testbett zu liegtAussen().



  • float betrag = sqrt(a*a + b*b); //Länge des Ortsvektors ausrechnen

    if (betrag > r)
    return 1;
    else
    return 0;



  • Ich habe ja nur 5 Bit genommen damit ich es ja auch verstämdlich zeigen kann...

    Ich hätte ja 8 Bit oder wie Michael sagt 16 nehmen können aber ich wollte es ja so einfach wie möglich veranschaulichen und nicht alles mit 0'en und 1'en voll machen 😃

    @faten: Was soll das denn schon wieder ???



  • Danke Pellaeon !!



  • Freak_Coder schrieb:

    Ich habe ja nur 5 Bit genommen damit ich es ja auch verstämdlich zeigen kann...

    Ich hätte ja 8 Bit oder wie Michael sagt 16 nehmen können aber ich wollte es ja so einfach wie möglich veranschaulichen und nicht alles mit 0'en und 1'en voll machen 😃

    Das Problem ist nur, dass durch deine Vereinfachung was anderes rausgekommen ist.



  • nur als Anmerkung nicht flaten war es, der nicht den Datentyo angegeben hat, er hat eindeutig nach integer gefragt, also ist Coders Lösung falsch zur gegebenen Aufgabenstellung ... .



  • Michael E. schrieb:

    Das Problem ist nur, dass durch deine Vereinfachung was anderes rausgekommen ist.

    Hmm, stimmt. Jetzt fällts mir auch auf. Die ganzen 0'en davor müsssen ja auch invertiert werden. SRY 🙂



  • was ist eigentlich ein Testbett zu einer funktion !!


Anmelden zum Antworten