Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C++ Sprache » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (6): « erste ... « vorherige 3 4 [5] 6 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++ Sprache
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

mmh, ich weiß halt wirklich nicht, wie ich Dir am ehesten helfen kann. Ich schicke Dir einfach mal, wie ich es programmiert habe, aber wir müssen das dann noch zusammen durch sprechen, damit Du überhaupt etwas davon hast. Normalerweise mache ich das nicht, weil es eigentlich nicht viel nutzt, weder Dir noch mir. Aber ich weiß sonst wirklich nicht, wie wir sonst irgendwie voran kommen sollen.
Hier mal mein Vorschlag für die CCalendar.cpp:
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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
#include "CCalendar.h"
#include "CCalendarEntry.h"
#include "CJulianDate.h"

CCalendar::CCalendar(){}
CCalendar::~CCalendar() {
	if(m_entries != nullptr)
		delete[] m_entries;
}

CCalendar& CCalendar::operator+=(const CCalendarEntry& entry) {
	CCalendarEntry *newEntries = new CCalendarEntry[m_numberOfEntries + 1]();
	bool alreadyInserted = false;
	for(unsigned int i = 0; i < m_numberOfEntries; i++) {
		if(!alreadyInserted && (entry.getDate() < m_entries[i].getDate())) {
			newEntries[i] = entry;
			alreadyInserted = true;
		}
		newEntries[alreadyInserted ? i + 1 : i] = m_entries[i];
	}
	if(!alreadyInserted)
		newEntries[m_numberOfEntries] = entry;

	if(m_entries != nullptr)
		delete[] m_entries;
	++m_numberOfEntries;
	m_entries = newEntries;
	return *this;
}

void CCalendar::print() const{
	cout << "Einträge im Kalender:" << endl;
	for(unsigned int i = 0; i < m_numberOfEntries; i++) {
		m_entries[i].print();
	}
}


Also zuerst merke ich mir, ob denn der neue Eintrag schon eingefügt wurde oder nicht in einer Boolschen Variablen alreadyInserted. Ich muss das mir merken, weil ich den Eintrag ja nur einmal machen darf, allerdings wenn ich durch das ganze alte Array durch gelaufen bin aber noch keinen Eintrag gefunden habe, der nach dem neuen stattfindet, sprich der neue ist der späteste (oder auch einzige bisher), dann muss ich den ja noch ans Ende einfügen.
Ich kopiere das m_entries nicht in ein oldEntries um. Für was? Ich kann doch die m_entries noch so lange auf das alte zeigen lassen, bis ich es abgearbeitet habe und dann das alte löschen, bevor ich m_entries das neue zuweise.
In meiner if()-Bedingung muss ich aber nicht nur das Datum vergleichen, sondern auch schauen, ob ich nicht schon vielleicht vorher den neuen entry schon eingefügt habe. Wenn das der Fall war, brauche ich nicht mehr zu vergleichen.
Zeile 19 ist vielleicht noch kompliziert: Das ist das kopieren eines Eintrags vom alten Array in das neue. Allerdings ist die Position im neuen Array abhängig davon, ob ich schon den neuen Eintrag eingefügt habe oder nicht. So lange ich den alten noch nicht eingefügt habe, muss ich von Position i im alten Array nach Position i im neuen kopieren. Wenn ich aber ins neue Array schon den neuen Eintrag dazwischen geschoben habe, muss ich vom alten Array von Position i auf die Position i+1 im neuen Array kopieren, weil im neuen ja schon ein Eintrag mehr ist als im alten.

Nach der Schleife schau ich, ob nun entry auch schon eingefügt wurde oder nicht, indem ich alreadyInserted nochmal überprüfe. Falls das noch nicht passiert ist, muss ich jetzt entry an die letzte Position im neuen Array kopieren.
Danach kann ich das alte Array löschen (falls überhaupt schon eines vorhanden war) und dem Zeige m_entries das neue aufgebaute Array zuweisen und bin im Großen und Ganzen fertig, wenn ich noch m_numberOfEntries um eins erhöhe.

Versuche das mal wirklich komplett zu verstehen und frage nach, wenn etwas unklar ist. Das ist nur ein Vorschlag für eine Implementierung. Man könnte ein paar Sachen eventuell noch anders lösen, vielleicht eleganter, flexibler oder auch performanter.
Klarer wäre es eventuell, wenn man zwei Index-Variablen i und j eingeführt hätte, wobei i auf die Stelle im alten Array zeigt und j auf die im neuen. Dabei ist i und j gleich, so lange der neue Eintrag noch nicht eingefügt wurde aber j eins größer, sobald er eingefügt ist. Das würde dann auch die Boolsche Variable alreadyInserted ersetzen, würde dann aber auch wieder aufs selbe raus kommen. Vorteil wäre allerdings: Wenn man das ganze noch weiter erweitern wollte und ein ganzes Array von neuen Terminen einfügen wollte, braucht man so wie so mehrere laufende Indizes und so wäre es dann eventuell besser erweiterbar. Aber das war hier ja auch gar nicht verlangt...

Gruß
Marco
28.08.2017 18:04 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe mir noch nicht deinen obigen Beitrag durchgelesen .

Ich hatte nur teilweise eine Idee gehabt

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:
Calendar& operator+=(const CCalendarEntry& entry){

    CCalendarEntry * oldEntries = m_entries;  // das alte Array
    CCalenderEntry * newEntries = new CCalendarEntry [m_numberofEntries + 1];
    m_entries = newEntries;  // m_entries auf das neue Array zeigen lassen
    delete [] oldEntries;  // das alte Array zerlegen
    for(unsigned int i = 0; i < m_numberOfEntries; i++) {

    if( CCalendarEntry [i]   >CCalendarEntry [i+ 1]){
        
        CCalendarEntry [i] = CCalendarEntry [i+ 1];
        
        CCalendarEntry [i+ 1]= new Entries;




    }
m_entries = newEntries;  // m_entries auf das neue Array zeigen lassen
    delete [] oldEntries;  // das alte Array zerlegen

    } 





Das sind teilweise Ideen .

ich weiss das der Code nicht komplett ist .

Macht das ein wenig Sinn?
28.08.2017 18:54
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Habe jetzt den insertion Sort Algorithmus genommen und versucht anzuwenden :

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:
28:


Calendar& operator+=(const CCalendarEntry& entry){

	
	CCalendarEntry * newEntries = new CCalendarEntry [m_numberofEntries + 1];
	unsigned int i,temp,j,m_numberofSize;
	for(i=1; i<m_numberofSize; i++){
		
		temp = CCalendarEntry[i];
		j= i-1;
		while(j>=0 && CCalendarEntry[j]< temp){
			CCalendarEntry[j+1] = CCalendarEntry[j];
			j--;
			
		}
		CCalendarEntry[j+1]= temp;
		}
		
	}



	}
	}



Wie sieht es jetzt aus string ?

Bisschen besser ?

Oder wieder quatsch? großes Grinsen
28.08.2017 23:34
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe das Gefühl, Du hast von dem, was ich geschrieben habe, gar nichts begriffen, oder vielleicht auch einfach gar nicht gelesen...
Statt dessen versuchst Du es mit trial-and-error. Das wird nicht weiterhelfen...
29.08.2017 08:07 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nicht mal teilweise richtig ?
Schade .Ich wollte selbst auf die Lösung kommen .
29.08.2017 15:44
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja, das ist ja ein schönes Ziel, aber ich denke, Du gehst das komplett falsch an.
Du musst doch ersteinmal die ganzen Basics lernen, bevor Du sinnvoll an so eine Aufgabe überhaupt ran gehen kannst.
Wenn Du z. B. schreibst: "CCalendarEntry[i]" Was soll das denn überhaupt bedeuten? CCalendarEntry ist eine Klasse. Offenbar willst Du aber auf ein Element irgendeines Arrays zugreifen mit dem "[i]". Aber dann musst Du vorne dran auch den Namen des Arrays und nicht den der Klasse schreiben.
Ich weiß nicht, ob Dir so richtig klar ist, was eine Klasse ist, was ein Objekt ist und was ein Array von Objekten ist. Ich denke, wir sollten vielleicht zuerst da anfangen das zu klären.

Aber ich hatte oben ja schon gesagt: Du brauchst keinen speziellen Sortieralgorithmus! Du hast ein schon sortiertes Array und willst in dieses an die richtige Stelle einen neuen Eintrag einfügen. Dafür brauchst Du doch nicht das komplette Array sortieren, sondern es genügt, beim ohnehin notwendigen Umkopieren das neue Element zum richtigen "Zeitpunkt" dazuwischen zu schieben.
Weil ich das schon geschrieben habe und auch ausführlich das Vorgehen erklärt habe, verstehe ich einfach nicht, warum Du jetzt wieder mit einem Sortieralgorithmus kommst. Warum schreibe ich dann überhaupt solche Romane? Und um das zu verstehen, was ich mit Worten beschrieben habe, brauchst Du nicht programmieren zu können und erst recht keine Programmiersprache zu können. Wenn man sich etwas konzentriert kann man das auch so verstehen ganz ohne Vorkenntnisse.

Dann legst Du eine Variable m_numberofSize an, die Du gleich (ohne Initialisierung!) als Obergrenze für die for-Schleife benutzt. Erstens sollen nur Membervariablen ein "m_..." vorne dran haben, aber das ist ja eine lokale Variable in der Methode. Kennst Du den Unterschied zwischen Membervariablen einer Klasse und lokalen Methoden-Variablen?
Aber ich frage mich: Hast Du Dir überlegt, was in dieser Variable überhaupt drin stehen soll? Du musst doch irgendeine Idee gehabt haben? Oder hast Du das einfach irgendwie irgendwoher kopiert und wunderst Dich jetzt, dass ich sage, das ist alles Quatsch?

Mach doch einfach mal folgendes ganz ohne sortieren: Lege ein neues Array mit m_numberOfEntries + 1 an. Dann mache eine for-Schleife über alle Elemente im m_entries Array und kopiere jedes einzelne Element vom m_entries Array in das neu angelegt Array um.
Danach kopierst Du das übergebene entry an die letzte Stelle des neu angelegten Arrays, die ja noch frei sein muss, weil Du es ja um eins größer angelegt hattest.
Dann delete[]-e das m_entries Array und weise dem m_entries-Zeiger das oben erstellte neue Array zu.
Wenn Du das hinbekommst können wir schauen, wie wir das so erweitern können, dass der neue Eintrag in die richtige Stelle eingefügt wird.

Gruß
Marco
29.08.2017 17:36 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich versuche jetzt ein wenig deinen Code zu verstehen und mache mich dann an einer neuen Aufgabe ran .

Was machst du hier genau ?
Oder sind hier nicht Schreibfehler drin ?

code:
1:
2:
3:
4:
	newEntries[alreadyInserted ? i + 1 : i] = m_entries[i];

29.08.2017 17:48
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok.
Wahrscheinlich kennst Du den Operator a?b:c nicht. Das ? und : ist zusammen ein Operator, nur dass er nicht wie + oder / oder so zwei Operanden hat, sondern 3.
Das funktioniert so: der Ausdruck "a ? b : c" nimmt den Wert b an, wenn a wahr ist, aber c, wenn a falsch ist.
Was bedeutet das hier?
In der eckigen Klammer steht quasi ein i + 1, wenn alreadyInserted wahr ist, aber nur i, wenn alreadyInserted noch nicht wahr ist.
Ich will ja aus dem Array m_entries alle Elemente rüber ins newEntries kopieren. Zuerst, wenn ich den neuen Eintrag noch nicht eingefügt habe, muss ich das erste Element von m_entries auf das erste Element von newEntries kopieren, das zweite an die zweite Stelle und so weiter. Wenn ich aber irgendwann den neuen entry in newEntries eingefügt habe, bin ich ja in newEntries schon einen Platz weiter als in m_entries. Also muss ich ab dann an die Stelle i+1 kopieren.

Gruß
Marco
29.08.2017 21:20 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

alternativ könnte man auch schreiben:
code:
1:
2:
3:
4:
5:
6:
if(alreadeInserted)
    newEntries[i + 1] = m_entries[i];
else
    newEntries[i] = m_entries[i];

aber ich mag es kurz und knackig...

Gruß
Marco
29.08.2017 21:23 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Woher wusstest du das das Array bereits sortiert ist ?
In der Aufgabenstellung steht das ja nicht
29.08.2017 21:31
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe jetzt versucht das zu machen was du gesagt hast :

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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:

* CCalendar.cpp
 *
 *  Created on: 21.08.2017
 *      Author: vaio
 */

#include "CCalendar.h"




CCalendar::CCalendar() {


}

CCalendar::~CCalendar() {
	if( m_entries >=0 ){
	delete m_entries;
	}
}

Calendar& operator+=(const CCalendarEntry& entry){

	CCalendarEntry * oldEntries = m_entries; 
	CCalendarEntry * newEntries = new CCalendarEntry [m_numberofEntries + 1];
	
	for(i=1; i<m_numberofSize; i++){
		
		oldEntries[i] = newEntries[i];kopiere jedes einzelne Element vom m_entries Array in das neu angelegt Array um.
		newEntries [i] = newEntries[i+1]; Danach kopierst Du das übergebene entry an die letzte Stelle des neu angelegten Arrays, die ja noch frei sein muss, weil Du es ja um eins größer angelegt hattest.
		}
	m_entries = newEntries;  // m_entries auf das neue Array zeigen lassen
	    delete [] oldEntries;  // das alte Array zerlegen

	    } 





Mir ist es egal ob du denkst ,dass ich nichts peile .
Ich will es irgendwie selbst schaffen großes Grinsen e
29.08.2017 23:41
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das sieht ja schon deutlich vernünftiger aus, aber...

Zeile 31: bei einer Zuweisung mit dem Gleichheitszeichen, wird von rechts nach links kopiert, dem linken wird das rechte zugwiesen, nicht umgekehrt. Wenn Du also in das neue Array kopieren willst, muss das logischerweise links stehen.

Zeile 32 willst Du ja nur einmal machen, nachdem Du alle anderen Elemente schon kopiert hast. Das darf dann nicht in der for-Schleife stehen, sonst wird das doch auch bei jedem Schleifendurchlauf ausgeführt und nicht nur einmal.
Dann verstehe ich nicht, warum Du in der Anweisung etwas komplett anderes kopierst, als Du im Kommentar schreibst. Du willst das neu übergebene entry irgendwo hin kopieren. Also haben wir gelernt dass es rechts stehen muss weil von rechts nach links kopiert wird. Aber in der ganzen Zeile steht nichts von entry.
Dann darf links nicht i in der eckigen Klammer stehen. Da die Anweisung ja so wie so außerhalb der for-Schleife stehen muss, darf da gar kein i mehr vorkommen. Stattdessen musst Du Dir überlegen, was der höchste Index ist, der noch in dem neu angelegten Array drin ist.
Du hast das Array oben mit der Größe m_numberOfEntries + 1 angelegt (vorsicht! Du hast schon wieder ei. Kleines o geschrieben, so kann er die Variable nicht finden!). Die Indizes eines Arrays gehen in C++ immer von 0 bis Arraygröße minus eins. Der höchste Index wäre hier also (m_numberOfEntries + 1) - 1 = m_numberOfEntries.
Deine Zuweisung muss also wie aussehen?

Am Ende musst Du noch m_numberOfEntries um einschließlich zählen, das fehlt auch noch.

Gruß
Marco
30.08.2017 08:12 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:

* CCalendar.cpp
 *
 *  Created on: 21.08.2017
 *      Author: vaio
 */

#include "CCalendar.h"




CCalendar::CCalendar() {


}

CCalendar::~CCalendar() {
        if( m_entries >=0 ){
        delete m_entries;
        }
}

Calendar& operator+=(const CCalendarEntry& entry){

        CCalendarEntry * oldEntries = m_entries; 
        CCalendarEntry * newEntries = new CCalendarEntry [
  (m_numberOfEntries + 1) - 1   ];     
        for(i=0; i<m_numberofSize; i++){
                
                oldEntries[i] = entry;kopiere jedes einzelne Element vom m_entries Array in das neu angelegt Array um.
               
                }
         entry = newEntries[i+1]; D
        m_entries = newEntries;  // m_entries auf das neue Array zeigen lassen
            delete [] oldEntries;  // das alte Array zerlegen

            } 







Wo muss ich m_numberOfEntries++ hinschreiben ?
Ist mir nicht klar ?

Warum heisst das neu angelegte Array entry und nicht newEntry ?

CCalendarEntry * newEntries = new CCalendarEntry [
(m_numberOfEntries + 1) - 1 ];
30.08.2017 10:09
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe auch die if Bedingung ein wenig eingebaut mithilfe des obigen codes.

Kann man nicht statt einer bool variable irgendwas anderes machen?

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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
* CCalendar.cpp
 *
 *  Created on: 21.08.2017
 *      Author: vaio
 */

#include "CCalendar.h"




CCalendar::CCalendar() {


}

CCalendar::~CCalendar() {
        if( m_entries >=0 ){
        delete m_entries;
        }
}

Calendar& operator+=(const CCalendarEntry& entry){

        CCalendarEntry * oldEntries = m_entries; 
        CCalendarEntry * newEntries = new CCalendarEntry [
  (m_numberOfEntries + 1) - 1   ];     
        for(i=0; i<m_numberofSize; i++){
                f( (entry.getDate() < m_entries[i].getDate())) {
                        newEntries[i] = entry;
...........................................................................................
                        
                }

                oldEntries[i] = entry;kopiere jedes einzelne Element vom m_entries Array in das neu angelegt Array um.
               
                }
         entry = newEntries[i+1]; D
        m_entries = newEntries;  // m_entries auf das neue Array zeigen lassen
            delete [] oldEntries;  // das alte Array zerlegen

            } 

30.08.2017 11:08
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hatte vergessen das kopieren zu korriegieren:

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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:

* CCalendar.cpp
 *
 *  Created on: 21.08.2017
 *      Author: vaio
 */

#include "CCalendar.h"




CCalendar::CCalendar() {


}

CCalendar::~CCalendar() {
        if( m_entries >=0 ){
        delete m_entries;
        }
}

Calendar& operator+=(const CCalendarEntry& entry){

        CCalendarEntry * oldEntries = m_entries; 
        CCalendarEntry * newEntries = new CCalendarEntry [
  (m_numberOfEntries + 1) - 1   ];     
        for(i=0; i<m_numberofSize; i++){
                f( (entry.getDate() < m_entries[i].getDate())) {
                         entry = newEntries[i] ;
                        
                }

                oldEntries[i] = entry;kopiere jedes einzelne Element vom m_entries Array in das neu angelegt Array um.
               
                }
          newEntries[i+1]= entry ; D
        m_entries = newEntries;  // m_entries auf das neue Array zeigen lassen
            delete [] oldEntries;  // das alte Array zerlegen

            } 


30.08.2017 11:15
Seiten (6): « erste ... « vorherige 3 4 [5] 6 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » C++ Sprache