Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Konstruktor

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
18.09.2008, 17:28 Uhr
Ollom



Hallo

ich bereite mich grad auf meine Prüfung in c++ vor und habe in alten Klausuren solch eine Frage gefunden. Könnte mir jemand ein paar tips geben auf welchem weg man zum ergebniss kommt und wie dies aussieht

Welche Wirkung hat der Konstruktor der Klasse CVektor?


C++:
class CVektor
{
  int *z;

public:
  CVektor(int p = 1)
  {
    z = new int[p + 1];
    *z = p;
    for(int i = 1; i < p + 1; i++)
      *(z + i) = 1 + rand() % (p + 1;
  }
};




Bearbeitung von FloSoft:

Hab den Code mal formatiert, nächste mal selber tun!


Dieser Post wurde am 18.09.2008 um 19:46 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.09.2008, 17:53 Uhr
xXx
Devil


Es führt zu Fehlern, wenn p <= -1 ist, da dieser fall nicht definiert ist für new[]. Es fehlt ein), ein } und ein ; sind zu viel.

Nja eigtl. ist es sonst aber relativ einfach. Es wird ein Array von Integern aufm Heap erzeugt, der gewünschte Größe + 1 groß ist, da im ersten Element die Größe gespeichert wird (da ansonsten diese unbekannt ist und späterer Zugriff auf die Elemente zu Problemen führen könnte!). Dann werden alle Elemente von 1 ... size + 1 mit Zufallszahlen gefüllt, die zwischen 1 und (size + 1) liegen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.09.2008, 18:18 Uhr
Ollom



Aber das p<= -1 hat doch nix mit dem konstruktor zu tun oder? Könnte mir jemand das prog noch mal genauer erklären?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.09.2008, 18:49 Uhr
ao

(Operator)


Sei so nett und formatier den Code besser.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.09.2008, 23:36 Uhr
xXx
Devil


Ich hab es dir doch erklärt, was ist daran denn nichtmehr verständlich? Frag einfach nach ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.09.2008, 10:25 Uhr
ao

(Operator)


Die Schleife belegt ein Array mit Zufallszahlen.

Die Organisation des Arrays sieht irre kompliziert aus, ist aber eigentlich einfach: Im Element [0] ist die Anzahl der gültigen Zufallszahlen gespeichert (p), danach folgen noch p Elemente (Index [1] bis [p]). Vielleicht wirds damit schon mal klarer.

Als praktizierender Programmierer finde ich solche Einfälle extrem sch**ß*. Welchen Vorteil hat die Speicherung der Länge im nullten Element? So wie unten ist es absolut identisch (oder nicht?), und alle Indizes laufen brav von 0 bis N-1. Sowas überschaue ich mit einem Blick - bei allem, was davon abweicht, muss ich erst nachrechnen, ob es stimmt.

Wer sich sowas ausdenkt, kennt wohl keine richtigen Probleme. Sorry, aber blöde Klausuraufgaben sind echt mein Lieblingsthema


C++:
class CVektor
{
  int length;
  int *z;

public:
  CVektor(int p = 1)
  {
    length = p;
    z = new int[p];
    for(int i = 0; i < p; i++)
      z[i] = 1 + rand() % (p + 1);
  }
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.09.2008, 12:50 Uhr
Ollom



Größten teils habe ich es jetzt verstanden. Besten dank. Hab deshalb gleich nochmal eine online gestellt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.09.2008, 14:07 Uhr
xXx
Devil


Nja vor allem bekommt er Probleme bei anderen Typen als Integrale Typen ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.09.2008, 16:43 Uhr
Ollom



Und nun noch die fortsetzung der oberen aufgabe.
Schreiben Sie eine Methode, die den Maximalwert der Vektorwerte zurückgibt.

kann man sagen das ein vektor immer ein zeiger ist?
dann könnte es doch nur so aussehen
max(*z)
oder müsste ich gucken wie weit p zählen lässt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.09.2008, 16:46 Uhr
ao

(Operator)


Du sollst die Methode schreiben, nicht aufrufen. Und ja, du musst zuerst nachsehen, wie viele Elemente z hat, und diese Anzahl Elemente absuchen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: