Programmierung 2 |
Victor unregistriert
|
|
Ah ja jetzt verstehe ich was du meinst .
Wir legen ja zuerst einmal speicher an ,damit wir das bei der d) irgendwie bei der add Methode verwenden können .
Wie man das bei der d) jetzt genau macht , weiss ich nicht
|
|
14.10.2017 23:03 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Ja aber für was soll denn die add()-Methode diesen reservierten Speicher denn verwenden? Was meinst Du ist denn am Ende der große Zweck des ganzen?
Und was hat es denn jetzt mit diesem "dynamischen Array" auf sich? Was soll das denn sein? Was unterscheidet es von einem normalen Array? Was kann das dynamische, was das normale nicht kann? Für was benötigen wir das hier?
|
|
14.10.2017 23:44 |
|
|
Victor unregistriert
|
|
Das dynamische Array kann man vergrössern ?
|
|
14.10.2017 23:48 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
OK, sehr gut!
Und wie kann man das erreichen, dass es seine Größe ändern kann? Immerhin verwendet es ja ein normales Array als Basis, das eine feste Größe hat, richtig?
|
|
15.10.2017 00:53 |
|
|
Victor unregistriert
|
|
Ich poste mal ideen zur add Methphe :
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
m_rectangles = new CRectangle[initialSize];
for(int i =0 ; i>= initialSize ;i++){
m_rectangles = new CRectangle[initialSize+i]; nächste freie Position geschrieben ?
}
if(m_rectangles <= CRectangle[initialSize+99]){
m_rectangles = new CRectangle[initialSize+initialSize]; verdoppelt?
}
|
|
|
|
15.10.2017 06:02 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Sorry, das ist schon wieder auf so vielen Ebenen falsch, ich gebe auf. Das macht einfach keinen Sinn, das ist reine Zeitverschwendung, auch für mich.
|
|
15.10.2017 10:45 |
|
|
Victor unregistriert
|
|
Ich weiss das paar Fehler drinnen ist.
Ich war mir nicht sicher was ich genau machen muss.
Ich wusste nicht genau wie ich zuerst den Array aufrufen soll damit ich es verdoppeln ?
Muss ich irgendwie eine temporäre Variable erstellen ?
Steht so auf vielen Internet Seiten
|
|
15.10.2017 10:53 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Zitat: |
Original von Victor
Ich war mir nicht sicher was ich genau machen muss.
|
Dann macht es so wie so keinen Sinn irgendetwas programmieren zu wollen.
|
|
15.10.2017 11:12 |
|
|
Victor unregistriert
|
|
Also die Aufgabe ist ja eindeutig was man machen muss .
Aber der code scheint irgendwie nicht zu stimmen
Um an die nächste freie Position zu schreiben , brauche ich ja eine Variable ?
for(int i =0 ; i>= initialSize ;i++){
m_rectangles = new CRectangle[initialSize+i]; nächste freie Position geschrieben ?
}
Ich bin über die for schleife zuerst gegangen und es an die i te Stelle schreiben ?
Ist das total quatsch oder wie ?
|
|
15.10.2017 11:22 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Das fängt doch schon damit an, dass Du ständig "initialSize" dastehen hast. Die Variable gibt es in der Methode add() doch gar nicht!
Erklär mir doch bitte erstmal, was Du im Konstruktor mit jetzt genau machst. Inzwischen überprüfst Du ja gar nichts mehr (mit diesen Zusicherungen). Fang doch erstmal so an und erkläre in eigenen Worten, was diese Zusicherungen sollen, warum sie sinnvoll sind bzw. was der Grund jeweils ist.
Warum machst Du schon mit der add() rum, wenn der Konstruktor noch gar nicht fertig ist?
|
|
15.10.2017 11:58 |
|
|
Victor unregistriert
|
|
In der add Methode gibt es initialSize tatsächlich nicht.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
void add(const CRectangle& rectangle){
for(int i =0 ; i>= rectangle ;i++){
m_rectangles = new CRectangle[rectangle+i]; nächste freie Position geschrieben ?
}
|
|
Die Zusicherungen sind sinnvoll damit man weiss ,wann was benutzt werden muss .
Sonst weiss ja gar nicht das Programm wann was benutzt wird.
|
|
15.10.2017 12:25 |
|
|
Victor unregistriert
|
|
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
|
void CDrawing::add(const CRectangle& rectangle){
for(int i =0 ; i<= rectangle ;i++){
m_rectangles = new CRectangle[rectangle+i]; nächste freie Position geschrieben ?
}
m_rectangles = new CRectangle[rectangle];
CRectangle[rectangle] =100;
int *tmp = CRectangle;
if(CRectangle[rectangle]<=CRectangle[100]){ wenn der Speich kleiner 100 ist
m_rectangles = new CRectangle[rectangle*2]; doppelte Grösse
for(int i =0 ; i<= rectangle ;i++){
CRectangle[rectangle]= tmp[rectangle];
}
delete[] tmp;
CRectangle[rectangle];
rectangle++;
}
}
|
|
Ich weiss nicht ob dieser Ansatz auch katastrophe ist aber ich poste ihn mal.
Stimmt dieser Teil ein wenig ?
Ich habe auch eine temporäre Variable erstellt.
|
|
15.10.2017 22:47 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Da ist wirklich so ziemlich jede einzelne Zeile totaler Schwachsinn. Das wird ja immer schlimmer!
|
|
16.10.2017 09:44 |
|
|
Victor unregistriert
|
|
Ok dann weiß ich auch nicht mehr weiter .
Hab keine Idee mehr
|
|
16.10.2017 10:13 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Ich verstehe nicht, warum Du Deine Zeit und die anderer verschwendest. Warum nimmst Du nicht endlich mal die Ratschläge an und arbeitest ein beliebiges Buch über C++ durch. Da hättest Du in der Zeit, die Du hier verschwendet hast, sicherlich schon deutlich mehr gelernt.
Deine Herangehensweise ist grundlegend falsch, auch das habe ich Dir schon mehrfach und eindringlich gesagt gehabt, nur interessiert Dich nicht wirklich, was Dir die Leute sagen, nicht nur diesbezüglich.
Das bringt mich zum nächsten, was bringt es eigentlich irgendwo zu posten und dann nicht wirklich auf das einzugehen, was Dir Leute schreiben?
Insgesamt habe ich den Eindruck, dass Programmieren generell nichts für Dich ist. Warum versuchst Du es dann überhaupt? Brauchst Du es für eine Vorlesung oder eine andere Prüfung? Dann muss ich sagen: Die wirst Du nie bestehen, wenn Du das so angehst wie bisher. Oder sind das Hausaufgaben? Dann hättest Du erstens schon gelogen und wirklichen Nutzen bringt das ganze Unterfangen auch nicht.
Mein Tipp: Wenn Du eine Ausbildung machst, in der Du diese Fähigkeiten brauchst, dann such Dir eine andere Ausbildung! Das ist wirklich nichts für Dich. Muss ja auch nicht jeder ein Programmierer sein...
Gruß
Marco
|
|
16.10.2017 13:45 |
|
|
|