Mehrere Elemente aus nem Char-Array ausgeben
-
@hustbaer sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Sowas wie diese Aufgabe ist schon OK um Grundlagen zu lernen
Das ist Bullshit.
-
Lustig, wie ihr darüber urteilt ohne auch nur den Hauch einer Ahnung zu haben, wo diese Aufgabe herkommt.
An der Uni, wo es z.B. darum gehen kann -zur Not auch mit einer Pseudo-Sprache- irgendwelche Algorithmen zu lernen, ist die Aufgabe natürlich okay.
Im Programmierkurs "Werde schnell zum C++-Profi", ist die Aufgabe zumindest fragwürdig.
-
@jockelx sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Im Programmierkurs "Werde schnell zum C++-Profi", ist die Aufgabe zumindest fragwürdig.
Ein Programmierkurs "Werde schnell zum C++-Profi" ist in sich schon "zumindest fragwürdig".
Davon abgesehen gebe ich der Sache mal einfach den "benefit of the doubt", d.h. ich gehe davon aus dass die Aufgabe in einem Kurs eingesetzt wird wo es darum geht eben die Dinge zu lernen, für die sie geeignet ist. Und dann ist sie mMn. durchaus OK.
-
@manni66 sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Das ist Bullshit.
Mit diesem fundierten Argument hast du mich jetzt völlig überzeugt.
-
Leute, das ist ne Aufgabe von meinem Ausbildungsbetrieb (Bin im ersten Lehrjahr).
Der Ausbilder meinte ich soll mal versuchen mir so ne eigene Funktion zusammenzustellen und nicht mit vorgefertigten Funktionen zu arbeiten, da er der Meinung ist, dass man Programmieren so besser lernen kann und auch die Hintergründe besser versteht, anstatt immer irgendwelche string funktionen hinzuschreiben und diese mit Parametern zu befüllen.
-
@testettester sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Leute, das ist ne Aufgabe von meinem Ausbildungsbetrieb (Bin im ersten Lehrjahr).
Der Ausbilder meinte ich soll mal versuchen mir so ne eigene Funktion zusammenzustellen und nicht mit vorgefertigten Funktionen zu arbeiten, da er der Meinung ist, dass man Programmieren so besser lernen kann und auch die Hintergründe besser versteht, anstatt immer irgendwelche string funktionen hinzuschreiben und diese mit Parametern zu befüllen.Wenn man mit den string-Funktionen halbwegs sicher umgehen kann, kann man auch eigene Funktionen implementieren, die auf den string-Klassen arbeiten. Man kann auch eine eigene Stringklasse implementieren. Wenn man das schafft, kann und muss man sich auch mit C-Strings und strcpy & Co beschäftigen. Aber nicht andersrum.
-
@manni66
Wissen hat noch nie geschadet
-
@mgaeckler sagte in Mehrere Elemente aus nem Char-Array ausgeben:
@manni66
Wissen hat noch nie geschadetEs geht um Vermittlung von Wissen aka Lehre, nicht um Wissen.
-
@manni66 Nein, es geht darum dass er lernt wie man programmiert. Nicht dass er weiss wie die Funktion heisst mit der man String-Operation XYZ macht.
Schleifen, verschachtelte Schleifen, Arrays, Listen, Rekursion etc. - das alles lernst du nicht wenn du mitstd::string
rumspielst.Und um diese Dinge zu lernen ist diese Aufgabe mal ein ganz guter Einstieg.
-
@hustbaer sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Nein, es geht darum dass er lernt wie man programmiert.
Ganz genau. Und dafür kann man wunserbar std::vector und std::string einsetzen.
-
OK, wenn du glaubst.
-
@hustbaer sagte in Mehrere Elemente aus nem Char-Array ausgeben:
OK, wenn du glaubst.
Naja, schon. Was spricht hier gegen string statt char-Array? Nichts. Die Aufgabe kann man genauso gut damit lösen. Was spricht gegen char-Array statt string? Keine richtig harten Gründe, aber jede Menge weiche Gründe:
- Man lässt char-Arrays als legitime Alternative für Anwendungsfälle wie diesen erscheinen, was sie nicht sind.
- Sie sind vom grundlegenden Umgang unnötig schwieriger und nerviger. In diesem Fall hier hätte man beispielsweise das
sizeof
falsch machen können. Beim string entfällt überhaupt die Notwendigkeit und es ist automatisch immer richtig. Wenn es ums Lernen von Schleifen geht, ist das doch unnötige Ablenkung vom Wesentlichen. Ebenso unnötiges Implementierungsdetails ist hier die Nullterminierung.
Wenn's doch objektiv nur Gründe gegen die char-Arrays gibt (auch wenn's nur mäßig starke Grunde sind), wieso hat der Lehrer dann trotzdem char-Arrays vorgeschrieben? Wir alle haben schon zu viele Horrorgeschichten über den typischen C++-Lehrer gelesen, um nicht zu dem Schluss zu gelangen, dass hier bloß ein weiterer Fall vorliegt, in dem der Lehrer es einfach selber nicht besser weiß, anstatt dass er ein ganz toller Lehrer mit guten didaktischen Gründen für seine Wahl ist.
-
@seppj sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Was spricht hier gegen string statt char-Array?
- Man muss
string
schon durchgemacht haben. - Man muss explizit nen Haufen Memberfunktionen von
string
verbieten. Oder die 2-3 wenigen die man sinnvollerweise braucht explizit erlauben und alles was nicht explizit erlaubt ist verbieten.
Die Aufgabe korrekt zu formulieren wird dadurch nicht gerade einfacher. Die Aufgabe korrekt zu verstehen vermutlich auch nicht.
Auch weiss ich nicht ob es nicht genau so schlimm ist eine Aufgabe zu machen wo man zeichenweise in einem
string
rumfummelt. Das ist nämlich auch was was man in echt so nicht macht.Ich hab auch nix dagegen dass jemand fundiert kritisiert. Nur was @manni66 macht ist einfach nur unfundiert pöbeln.
- Man muss
-
@hustbaer sagte in Mehrere Elemente aus nem Char-Array ausgeben:
@seppj sagte in Mehrere Elemente aus nem Char-Array ausgeben:
Auch weiss ich nicht ob es nicht genau so schlimm ist eine Aufgabe zu machen wo man zeichenweise in einemstring
rumfummelt. Das ist nämlich auch was was man in echt so nicht macht.Dann sind wir wieder, ob es ums Programmieren an sich oder um C++ geht. In keiner Sprache würde man einen Zeichenkettenvergleich von Hand schreiben. Und C ist vermutlich die einzige Sprache, in der man einen allgemeinen Sequenzvergleich noch selber schreiben würde. In C++ und allen anderen abstrakteren Sprachen hat man dafür ja fertige Funktionen.
Was die Offtopic-Frage aufwirft: Ist das eigentlich noch zeitgemäß, so Programmieren zu lernen? Dieser Sequenzvergleich ist schließlich ein Rezept, dass man heutzutage kaum mehr braucht. Alle mittelalten Sprachen bieten fertige Funktionen dafür an, und in einigen neuen Sprachen (z.B. Python) müsste man sogar aktiv gegen die Sprache ankämpfen, wenn man eine solche low-level for-Schleife möchte. Da wäre es doch besser, wenn man lernt, wie man Daten und Abläufe richtig modelliert. Also das, wie man hinterher 'richtig' produktiv programmiert, anstatt sich das Dahinter anzueignen. Meiner Erfahrung nach scheitern viele Programmierer am High-Level Zeug, weil sie das nie richtig geübt haben. Dabei ist das der schwerste und wichtigste Teil.
Ich hab auch nix dagegen dass jemand fundiert kritisiert. Nur was @manni66 macht ist einfach nur unfundiert pöbeln.
Das ist korrekt. Ich hätte an deiner Stelle vermutlich ebenso reagiert.