C++ Klausur durchgefallen

Dieses Thema im Forum "C/C++" wurde erstellt von blackpannther, 22.10.2005.

  1. #1 blackpannther, 22.10.2005
    blackpannther

    blackpannther Grünschnabel

    Dabei seit:
    22.10.2005
    Beiträge:
    1
    Zustimmungen:
    0
    hallo leute,
    habe leider meine klausur verbockt.
    habe ein riesen problem mit umsetzung der Aufgaben. Ich verstehe die Referenzen aber daraus ein prog zu erstellen, dafür bin ich glaube ich nicht gemacht.
    habe hier eine Aufgabe von 5 die dran kamen ich weiß hat nichts mit c++ zutun, ist reines c aber das war in c++ dran.Meine Bitte ist, da ich in 1Monat die Nachklausur schreibe es zu verstehen was da passiert im source.
    Wäre echt cool wenn ihr mir zeile für zeile erläutern könnt was da passiert. Ich habe das Prog durch den Compilier gejagt und bekomme das Endergebnis nur das bringt mir nichts.
    Danke an die die mir zur Hand gehen wollen.
    bye Blacky


    wem es Interessiert hier die komplette Klausur!!


    Aufgabe1
    /* Geben Sie für folgendes Programm die Ausgaben an: */
    #include <stdio.h>
    struct zeiger {
    double *p;
    double *q; };

    int main () {
    struct zeiger z[2]; int i;
    double daten[2][2] = {{5,10},{15,20}}, *tmp;
    z[0].p = *daten;
    z[0].q = daten[1];
    z[1] = *z;
    ++(z[1].p);
    z[1].q = daten[1] + 1;
    tmp = z[0].p;
    z[0].p = z[1].p;
    z[1].p = tmp;
    for (i = 0; i<2; i++)
    printf("*z[%d].p: %f *z[%d].q: %f\n",i,*z.p,i,*z.q);
    for (tmp = daten[0]; tmp <= &daten[1][1]; ++tmp)
    tmp[0] = (tmp + 6) - daten[0];
    (z+1)->p = --tmp;
    z[0].p = (daten+1)[0];
    (*z).q = (*(z+1)).p - 2;
    *((*z).q) = 2 * *daten[0];
    (*(&z[1])).q = z->q;
    tmp = *(daten+1);
    --(*(--tmp));
    for(i = 0; i<2; ++1)
    printf("*z[%d].p: %f *z[%d].q: %f\n",i,*z.p,i,*z.q);
    return 0;
    }



    Aufgabe2
    /*
    In der Mathematik wird häufig mit Vektoren gerechnet. In dieser Aufgabe soll eine
    Klasse Vektor betrachtet werden. Die Zahlenwerte sollen hierbei vom Datentyp double sein.
    Schreiben Sie die Schnittstelle der Klasse Vektor, mit folgenden Eigenschaften und
    Methoden auf:

    - Private Eigenschaft: Vektor-Dimension.
    - Private Datenhaltung der Zahlenwerte in einem dynamisch allozierten Feld.
    - Ein Konstruktor, dem ein optionaler Parameter übergeben werden kann, der die
    Vektor-Dimension angibt. Wird der Parameter nicht angegeeben, soll ein Vektor der
    Größe 2 angelegt werden.
    - Destruktor (bei bedarf). Begründen Sie Ihre Entscheidung.
    - Copy-Konsttruktor (bei bedarf). Begründen Sie Ihre Entscheidung.
    - Eine Methode setWert, die einen Integer- und einen Double-Wert übergeben bekommt.
    An der durch den Integer-Wert bezeichneten Stelle wird der double-Wert eingetragen.
    - Eine Methode getWert, die einen Integer-Wert übergeben bekommt, und den entsprechenden
    double-Wert zurückgibt.
    - Die +Operation, mit der die Addition von zwei Vektoren durchführt wird. Hierbei werden
    jeweils die einzelnen Werte an einer bestimmten Vektor-Position addiert. Die Addition
    funktioniert natürlich nur bei Vektoren mit gleicher Vektor-Dimension; ansonsten soll
    ein Fehlermeldung ausgegeben werden.
    - Die -Operation, die analog zur obigen Addition funktioniert.
    - Die =Operation, die eine Zuweisung durchführt. Diese darf nur stattfinden, wenn beide
    Operanten die gleiche Dimension besitzen. Ansonsten soll Fehlermeldung ausgegeben werden
    und beide Operanten bleiben unverändert.
    Implementieren Sie:
    - Den Konstruktor.
    - Die genannten drei Operatoren: +, - und = .
    */




    Aufgabe3
    /*
    Um Werte zu sortieren, existieren mehrer Sortierverfahren. Eines davon ist der Bubblesort-Algorithmus.
    Eine iterative Implementierung von Bubble-Sort mit zwei Prozeduren ist hier gegeben:
    */

    void swap(int *a, int *b) { // Vertausche zwei int-Werte
    int temp = *a;
    *a = *b;
    *b = temp;
    }
    // oneBubble() : bringt größtes Elem. nach ganz rechts!
    void oneBubble(int *werte, int anzahle) {
    int j;
    for (j=0; j<anzahl-1; ++j)
    if (werte[j]>werte[j+1])
    swap(&werte[j],&werte[j+1]);
    }
    // bubbleSort() : bringt mittels oneBubble() zuerst größtes Elem.
    // nach ganz rechts, dann zweit-größtes Elem. ein daneben, usw.
    void bubbleSort(int *werte, int anzahl) {
    int i;
    for (i=0; i<anzahle; ++i)
    oneBubble(werte, anzahl - 1);
    }

    /*
    Überprüfen Sie die iterativen Prozeduren oneBubble() und bubbleSort() in rekursive
    Prozeduren. Achten Sie auf folgende Randbedingungen:
    - Die Schnittstellen der Prozeduren dürfen nicht verändert werden!
    - Es darf innerhalb der Prozeduren kene Schleife mehr vorkommen!
    */





    Aufgabe4
    /*
    In graphischen Systemen existieren verschiedene Klassen, durch die unterschiedliche
    Graphische Primitive modelliert werden. Diese Klassen sind im Allgemeinen als eine
    Klassenhierarchie aufgebaut. In dieser Aufgabe sollen Sie sich mit einem Ausschnitt
    aus einer solchen Klassenhierarchie beschäftigen.
    Implemtieren Sie die Klassen GraphikObj, Punkt, Rechteck und Kreis.
    Alle diese Klassen sollen als Eigenschaft eine Position besitzen, die der Mittelpunkt
    des jeweiligen Objektes ist. Neben der Position sollen die einzelnen Klassen folgende
    Eigenschaften und Methoden besitzen:
    - GraphikObj
    Eine abstrakte Klasse, die folgende Methoden definiert:
    a) distanz(): Der Abstand vom Null-Punkt. Nutzen Sie hierbei die Funktion sqrt(), mit
    der Sie die Wurzel einer Zahl bestimmen können.
    b) fläche(): Die Fläche des jeweiligen Objekts. Die Implementierung soll erst bei den
    abgeleiteten Klassen erfolgen.
    - Punkt
    a) Besitzt eine Fläche der Größe 0
    - Rechteck
    a) Besitzt eine Länge und eine Breite.
    b) Die Fläche berechnet sich als Länge * Breite.
    - Kreis
    a) Besitzt einen Radius
    b) Die Fläche berechnet sich als pi*R*R(nutzen Sie 3.1415)
    Alle Klassen sollen einen Konstruktor besitzen, der jeweils alle benötigten Werte
    als Integer-Werte übergeben bekommt.





    Aufgabe5
    /*
    In dieser Aufgabe soll eine Klasse LIFOStack für Integer-Werte entworfen und teilweise Implementiert werden.
    Stacks dieser Klasse sollen beliebig viele Integer-Werte aufnehmen können. Die Klasse soll basierend auf
    einer Liste arbeiten. Folgende ListenItem-Klasse soll hierbei genutzt werden:
    */
    class ListItem{
    public;
    int wert;
    LisrItem *next;
    };
    /*
    Der Stack soll folgendermaßen funtionieren:
    - Als private Eigenschaft wird ein Zeiger auf das erste Listenelement genutzt.
    - Durch den Konstruktor wird dieser Zeiger auf NULL gesetzt.
    - Bei push() soll ein neues Listenelement angelegt werden,in dem dann der entsprechende Wert abgespeichert
    wird. Das bisherige erste Listenelement wird der Nachfolger des neuen Listenelements.
    - Wenn bei pop() der Zeiger auf das erste Listenelement ungleich Null ist, wird der Wert aus dem ersten
    Element als pop-Ergebnis genutzt und es wird das aktuelle erste Element freigegeben. Der Nachfolger des
    aktuellen ersten Elements wird das neue erste Element.
    Aufgabe:
    - Geben Sie die komplette Schnittstelle der Klasse LIFOStack an.
    - Überlegen Sie ob die Klasse LIFOStack einen Destruktor und einen Copy-Konstruktor braucht.
    begründen Sie Ihre Entscheidung!
    - Implementieren Sie folgende Methoden:
    - Standard-Konstruktor
    - push()
    - pop()
    */
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Hi Black

    Ich denke es wuerde mehr Sinn machen du erarbeitest "deine" Loesung und gibst uns an wie du etwas verstehst und wir sagen dir dann, was du falsch interpretierst und warum.

    Wenn du die Grundlagen nicht verstehst koennen wir dir auch nicht helfen, wiederrum solltest du mit den Grundlagen faehig sein, die Aufgaben zu loesen (aber ggf. natuerlich die Probleme ungeuebter Coder haben)..
     
Thema:

C++ Klausur durchgefallen

Die Seite wird geladen...

C++ Klausur durchgefallen - Ähnliche Themen

  1. Klausurfragen

    Klausurfragen: Hey Leute ich hoffe einer von euch kann mir bei meinen Klausuraufgaben helfen ... Aufgabe 1: Geben Sie ein UNIX-Kommando an, das zählt in...
  2. Habt ihr noch klausuren dieses semsester ?

    Habt ihr noch klausuren dieses semsester ?: Jaja So tarnt man das wenn man sich gerade aufmacht seine letzte Klausur zu schreiben für das Semster und man will , dass das auch jeder...