Große Hilfe nötig!
-
Hallo kann mir jemand bei diesen Aufgaben helfen??
Ich krieg echt nix gebacken, und schreib bald eine Klausur!
Könnt ihr mir bitte sagen wie ich die bestehen soll? Ich bin echt am verzweifeln.
Ich brauch echt zu jeder Aufgabe Hilfe, ich weiß das ist viel verlangt aber vielleicht wäre ja jemand so nett und könnte mir helfen.
Wenn nicht, dann spart euch bitte die Kommentare.
############# Grundlagen der Programmierung Seite 1 Aufgabe 1 Folgende Klassendefinition und zugehöriger Constructor und Destructor seien gegeben: class str { private: char *s; unsigned int sLen; public: str(unsigned int size = 200); ~str(); void AddString(char st[]); void Print(); void AppendString(char st[]); void DeleteString(); unsigned int Length(); }; str::str(unsigned int size) { s = new char[sLen = size]; s[0] = '\0'; } str::~str() { delete []s; } 1.1 Erstellen Sie die Memberfunction void AddString(char st[]); Diese Function soll den übergebenen String st in das in der Instanz enthaltene dynamische Array s kopieren. Hierzu steht die Function char *strcpy(char *string1, const char *string2); zur Verfügung, wobei string1 das Ziel und string2 die Quelle kennzeichnet. Bevor der String hineinkopiert wird, soll der im dynamsichen Array vorhandene Speicherplatz überprüft werden. Ist kein Platz vorhanden, wird die Aktion nicht durchgeführt. 1.2 Erstellen Sie die Memberfunction void Print(); Diese Function soll den in der Instanz vorhandenen String auf dem Bildschirm ausgeben. ######## Grundlagen der Programmierung Seite 2 Zusatzblatt 1.3 Erstellen Sie die Memberfunction void AppendString(char st[]); Diese Function soll an den in der Instanz bestehenden String den String st hinten anhängen. Hierzu steht die Function char *strcat(char *string1, const char *string2); zur Verfügung, wobei string1 das Ziel und string2 die Quelle kennzeichnet. Bevor der String angehangen wird, soll der im dynamsichen Array noch vorhandene Speicherplatz überprüft werden. Ist kein Platz vorhanden, wird die Aktion nicht durchgeführt. 1.4 Erstellen Sie die Memberfunction unsigned int Length(); mit der die Länge des in der Instanz gespeicherten Strings abgefragt werden kann. Hierzu steht die Function unsigned int strlen(const char *string); zur Verfügung. Aufgabe 2 Folgende Klassendefinition und zugehöriger Constructor und Destructor seien gegeben: class vector { private: double *v; unsigned long iDim; char *n; public: vector(unsigned long dim = 2, char name[] = ""); ~vector(); void Print(); unsigned long GetDim(); double GetElement(unsigned long index); void SetElement(unsigned long index, double value); }; vector::vector(unsigned long dim, char name[]) { v = new double[iDim = dim]; for (unsigned int i = 0; i < iDim; i++) v[i] = 0.0; n = new char[strlen(name) + 1]; strcpy(n, name); } ################## Grundlagen der Programmierung Seite 3 Zusatzblatt vector::~vector() { delete []v; delete []n; } 2.1 Erstellen Sie die Memberfunction void vector::Print(); die den gespeicherten Vektor auf dem Bildschirm ausgibt. 2.2 Erstellen Sie die Memberfunction unsigned long vector::GetDim(); die die im Constructor festgelegte Dimension des Vektors zurückgibt. 2.3 Erstellen Sie die Memberfunction double GetElement(unsigned long index); mit der das Element mit dem entsprechenden Index zurückgegeben wird. Ist der Index zu groß, soll 0.0 zurückgegeben werden. 2.4 Erstellen Sie die Memberfunction void vector::SetElement(unsigned long index, double value); mit der der Wert value unter dem vorgegebenen Index im Vektor gespeichert wird. Ist der übergebene Index zu groß, unterbleibt das Speichern. #################### Grundlagen der Programmierung Seite 4 Zusatzblatt Aufgabe 3 Zur Stringbehandlung existieren in der Runtime-Library für die Programmiersprache C eine Reihe von Funktionen. Drei von ihnen sollen nun von Ihnen selbst erstellt werden. 3.1 Erstellen Sie eine Funktion mit der folgenden Signatur! char *my_strchr(char *Str, char item); Die Funktion ‚my_strchr’ liefert als Return-Value innerhalb eines Zeichenstrings den Pointer auf einen einzelnen vorgegebenen Character ‚item’, der innerhalb dieses Strings zu suchen ist. Existiert dieser Character nicht im String, wird der Return- Value ‚NULL’ zurückgegeben. 3.2 Erstellen Sie eine Funktion mit der folgenden Signatur! char * my_strcpy(char *string1, char *string2); Die Funktion ‘my_strcpy’ kopiert den Inhalt des Strings ‘string2’ in den String ‚string1’ hinein. Als Return-Value wird der Pointer auf den String ‚string1’ zurückgegeben. 3.3 Erstellen Sie eine Funktion mit der folgenden Signatur! char *my_strcat(char *string1, char *string2); Die Funktion ‘my_strcat’ kopiert den Inhalt des Strings ‘string2’ an das Ende des in der Variable ‘string1’ enthaltenen Inhaltes. Als Return-Value wird der Pointer auf den String ‚string1’ zurückgegeben. Beispiel: Inhalt von ‘string1’ vor Aufruf: „Dies ist das Haus“ Inhalt von ‘string2’ vor Aufruf: „ von Nikolaus.“ Inhalt von ‘string1’ nach dem Aufruf von ‘strcat’: „Dies ist das Haus von Nikolaus.“ Hinweis: In C schließen alle Strings mit dem Character ‘\0’ ab! #################### Grundlagen der Programmierung Seite 5 Zusatzblatt Aufgabe 4 Folgende Klassendefinition und zugehöriger Constructor seien gegeben: class Matrix_3_3 { private: double m[3][3]; public: Matrix_3_3(); char FillMatrix(unsigned int row, unsigned int column, double value); void Identity(); double Det(); }; Matrix_3_3::Matrix_3_3() { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) m[r][c] = 0.0; } 4.1 Programmieren Sie die Memberfunction char FillMatrix(unsigned int row, unsigned int column, double value); Diese Funktion weist einem einzelnen Matrixelement den Wert ‚value’ zu. Wenn die Arraygrenzen überschritten sind, sodass eine Zuweisung nicht möglich ist, ist der Return-Value 1, anderenfalls ist er 0. 4.2 Programmieren Sie die Memberfunction void Identity(); Diese Funktion erzeugt in der Variablen m im Inneren der Klasse eine Einheitsmatrix. 4.3 Programmieren Sie die Memberfunction double Det(); Diese Funktion berechnet die Determinante der Matrix und liefert sie als Return- Value zurück.
-
http://www.c-plusplus.net/forum/200753
Punkte 1, 2, 5 und 6.
-
Stell doch wenigstens eine Frage. Oder soll ich deinen Aufgabenzettel für dich lösen? Das hilft dir für die Klausur auch nicht.
-
seldon schrieb:
http://www.c-plusplus.net/forum/200753
Punkte 1, 2, 5 und 6.
Ich würde noch 4 hinzufügen.
Ich würde dir dringend eine Nachhilfe empfehlen und dass du dich schleunigst ans Lernen machst, denn hier wird keiner die Lust aufbringen, mit viel Aufwand und kostenlos deine bisherige Faulheit zu belohnen.
(Ein Nutzer mit ähnlichem Verhalten bekam erst neulich einen Permabann, daher rate ich dir, meine Worte sehr ernst zu nehmen)