Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

21

01.05.2006, 14:45

Jetzt ist eine Auswertung dabei... Damit sie aber funktioniert, müsst ihr den Test nochmals machen (alle User wurden gelöscht, da es eine Änderung in der DB gab...)
http://www.archexcubitor.net/cpp-tester/index.php

Zitat


Ne, aber die Beispiele ham teilweise echt nix mit C++-Wissen zu tun...

Welche Tests soll ich rausnehmen bzw abändern?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

22

01.05.2006, 14:56

Naja, ich finde, Fragen wie "wie heißt diese oder jene Funktion" haben eigentlich nicht viel mit Programmierung zu tun. Dazu hat man die msdn, da kann man alles nachschaun. Außerdem beschränkt sich dein Test hauptsächlich auf Fehlersuchen - je mehr Erfahrung, je schneller findet man die Fehler, aber hat das was mit Cpp-Wissen zu tun?

Und dann müsstest du eigentlich schon mehrere Möglichkeiten bedenken. Die Frage mit dem DWORD-Array hatte ich falsch, weil ich sizeof(adwArray) geschrieben hab, genau 16 Zeichen, anstatt iSize * sizeof(DWORD).

Ok, das mit den Schleifen, da muss man ein bissel nachdenken. Wenn du Cpp-Wissen abfragen willst, solltest du vielleicht etwas mehr auf die Theorie eingehen, wurde ja vorher schon gesagt.

Btw. noch was zur Auswertung: da ist bei Aufgae 11 ein Kreuz, aber es gibt keine Aufgabe 11, oder?

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

23

01.05.2006, 15:00

Wie du schon sagst, das mit der Auswertung ist ein Problem... Vielleicht ist es doch besser wenn ich hauptsächlich Multiple-Choise-Fragen bringe...

Fehler bei der Auswertung behoben, danke für den Hinweis... War mir nicht aufgefallen...
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

24

01.05.2006, 16:26

Zitat von »"Black-Panther"«

weil sie so auch falsch ist.. so ist sie korrigiert:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
//Diese Funktion soll einen Speicher reservieren, und den pointer darauf 

//als Parameter zurückgeben 

template <typename T> 
bool MemoryAlloc(T** pOut, const int iSize) 
{ 
    if(!pOut) return false; 

    *pOut = new T[iSize]; 
    return true; 
}


Sonst überschreibt man ja den Pointer der übergeben wird, und der User bekommt seinen Speicherbereich nie zu gesicht!

//Edit:
Vielleicht ist sie auch etwas ungenau beschrieben... Anders hätte sie ja auch funktioniert, wenn T ein Pointer wäre... das hab ich vergessen zu erwähnen! T ist KEIN Pointer!

ich hab sie so 'korrigiert':

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
//Diese Funktion soll einen Speicher reservieren, und den pointer darauf 

//als Parameter zurückgeben 

template <typename T> 
bool MemoryAlloc(T* pOut, const int iSize) 
{ 
//    if(!pOut) return false; 


    pOut = new T[iSize]; 
    return true; 
}

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

25

01.05.2006, 16:44

Ne die oben genannte Variant funktioniert schon (die)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
template <typename T>
bool MemoryAlloc(T** pOut, const int iSize)
{
    if(!pOut) return false;

    *pOut = new T[iSize];
    return true;
}


ich hab bei den !pOut auch nachdenken müssen, aber klar ist logisch.... Weil ein Pointer auf nen Pointer natürlich eine Adresse hat (auch wenn der Zeiger auf den der zeigt keine hat). Ein Pointer an sich hat ja auch eine Speicherzelle nur eben die Adresse auf der der Pointer zeigt ist undefiniert.

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

26

01.05.2006, 22:48

12/25
Vielleicht sollte man auch noch sagen, dass kein einziges Programm dabei war, dass auch kompilieren würde. Die main und die includes gehören ja wohl dazu...

Außerdem sind diese _s Funktionen NICHT Standard, man kann also nicht davon ausgehen, dass sie existieren oder man sie überhaupt kennt.

Und es ist wohl auch etwas sinnlos zu fragen, welche Funktion einen Unicodestring kopiert. Davon gibts mindestens 100 Varianten.

Ciao

john

Alter Hase

Beiträge: 786

Beruf: Schüler

  • Private Nachricht senden

27

01.05.2006, 23:13

Das sehe ich eigentlich recht ähnlich.
Allerdings vom Prinzip her eine nette Idee, würde ich eventuell nur ein wenig anders gestalten. :)
mfg
john

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

28

01.05.2006, 23:16

Zitat


Vielleicht sollte man auch noch sagen, dass kein einziges Programm dabei war, dass auch kompilieren würde. Die main und die includes gehören ja wohl dazu...

Das sind Code-AUSSCHNITTE! Das hat nichts, aber auch gar nichts mit einem lauffähigen Programm zu tun... Ich wüsste nicht, wieso ich den Code unnötig lang durch includes und main-Funktion machen sollte...

Zitat


Außerdem sind diese _s Funktionen NICHT Standard, man kann also nicht davon ausgehen, dass sie existieren oder man sie überhaupt kennt.

Wenn man sie nicht kennt, Zeit sie kennen zu lernen! ^^
Nein, aber ernsthaft... Ich denke, dass diese Funktionen bald zum Standard werden, da sie wirklich sicherer sind, als deren unsecure-Variante...

Zitat


Und es ist wohl auch etwas sinnlos zu fragen, welche Funktion einen Unicodestring kopiert. Davon gibts mindestens 100 Varianten.

Stimmt... das ist auch die schlechteste aller Fragen... War anfangs eigentlich nur für Testzwecke gemacht, hab sie dann aber drin gelassen... im Cpp-Knowlege-Tester v2 wird sie sicher nicht mehr drin sein ;) (und ja, es wird einen geben, aber stark überarbeitet, und die Punkte werden dann auf verschiedenen Bereichen vergeben (zB Wissen, Debuggen, Logik, usw))
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

john

Alter Hase

Beiträge: 786

Beruf: Schüler

  • Private Nachricht senden

29

01.05.2006, 23:35

Das hört sich doch gut an. :)
mfg
john

Sicaine

unregistriert

30

01.05.2006, 23:52

Sowas is müll. Zum einen hab ich ne IDE zum anderen hab ich keine Chance wenn ich mich nich grad mit der Materie beschäftige. Ob dus glaubst oder nicht, wenn man mal ne Zeitlang nichts in x programmiert hat, macht man auch wieder fehler oder muss erst nachdenken und dafür is ja ne IDE und Msdn und co da. Wie schrieb Petzold so schön in seinem Buch: Niemand merkt sich die winmain mit schleife sondern kopiert sichs irgendwo her.

Zudem hab ich auch keine Lust zu sehen ob das jetzt nen Schreibfehler ist oder sonst was und ne Auswertung in form von x ist richtig y ist falsch, ha sinnlos so lernt man nix und weiß nichtmal wies richtig wäre bzw. wo die fehler waren. Und bei 25 kleinen Fragen öh wieder weitermachen oO? Machs raus.

Ich würd nen compiler auf deiner Maschine installieren und man soll dann halt quellcode schreiben der einfache tests überstehen muss. So sieht man ob jemand die Aufgabe gelöst hat oder nicht. Ala google halt die ham das bei ihrer Challange auch so gemacht. Danach kann man halt performance etc. noch testen um zu sehen welche implementierung besser ist. Dass das bei Zeigern etwas _riskanter_ ist, sollte allerdings auchklar sein ;-)

Werbeanzeige