ganz einfache frage



  • Is mir klar das es die Std gibt, aber er hat geschrieben das er eine Funktion schreiben soll und nicht eine vorhandene, bzw. er soll was lernen oder ? 👍


  • Mod

    Das schöne an der Benutzung von std::count ist aber, dass sein Lehrer ihm niemals glauben würde, dass er das alleine gemacht hat. Und ist das nicht der Sinn, wenn man im Forum Hausaufgaben macht? 😉



  • SeppJ schrieb:

    Das schöne an der Benutzung von std::count ist aber, dass sein Lehrer ihm niemals glauben würde, dass er das alleine gemacht hat. Und ist das nicht der Sinn, wenn man im Forum Hausaufgaben macht? 😉

    😃 👍



  • Wenn man im Internet nach std::count schaut, kann man auch nach der Nutzung von Strings schauen und die Verwendung als Array finden 😉



  • FreakY<3Cpp schrieb:

    Is mir klar das es die Std gibt, aber er hat geschrieben das er eine Funktion schreiben soll und nicht eine vorhandene, bzw. er soll was lernen oder ? 👍

    Ich sehe das so, dass wenn man eine Aufgabe gibt eine möglichst elegante Lösung des Problemes zu finden und nicht lange drum herum zu programmieren. Ansonsten hätte er eine andere Aufgabe geben müssen, oder in der Aufgabe schreiben müssen, dass keine Standardfunktionen benutzt werden dürfen..



  • drakon schrieb:

    Ich sehe das so, dass wenn man eine Aufgabe gibt eine möglichst elegante Lösung des Problemes zu finden und nicht lange drum herum zu programmieren. Ansonsten hätte er eine andere Aufgabe geben müssen, oder in der Aufgabe schreiben müssen, dass keine Standardfunktionen benutzt werden dürfen..

    Würde ich auch sagen. Sofern keine Einschränkung in der Aufgabenstellung vorhanden ist, sollte die Standardbibliothek legitim sein. Kursiv, weil das nicht 1:1 in die Realität übertragbar ist.

    Und Mango!!, es wäre wirklich sehr nett, wenn du nächstes Mal einen aussagekräftigen Threadtitel wählen könntest.



  • drakon schrieb:

    Ich sehe das so, dass wenn man eine Aufgabe gibt eine möglichst elegante Lösung des Problemes zu finden und nicht lange drum herum zu programmieren. Ansonsten hätte er eine andere Aufgabe geben müssen, oder in der Aufgabe schreiben müssen, dass keine Standardfunktionen benutzt werden dürfen..

    Da hast du definitiv Recht, aber wir haben die tatsächliche Aufgabenstellung ja nicht gesehen, sondern nur eine vage Umschreibung. Insofernm wissen wir's einfach nicht... :p



  • Aeh...

    Ihr wisst schon wie man etwas lernt, oder?
    Indem man es anwendet.

    Ein Funktionsaufruf lehrt garnix. Ausser wie man eine Funktion aufruft.

    Oder sagt ihr auch wenn jemand ein Dictionary schreiben will "nimm std::map" oder wenn jemand wissen will wie eine verkettete Liste funktioniert "nimm std::list"? Oder wie schreibe ich einen Webserver? Nimm apache...

    Ne ne ne ne ne...



  • Shade Of Mine schrieb:

    Aeh...

    Ihr wisst schon wie man etwas lernt, oder?
    Indem man es anwendet.

    Ein Funktionsaufruf lehrt garnix. Ausser wie man eine Funktion aufruft.

    Oder sagt ihr auch wenn jemand ein Dictionary schreiben will "nimm std::map" oder wenn jemand wissen will wie eine verkettete Liste funktioniert "nimm std::list"? Oder wie schreibe ich einen Webserver? Nimm apache...

    Ne ne ne ne ne...

    👍



  • @ Shade Of Mine
    Wir versuchen nur, dem Fragesteller so präzise Antworten wie möglich zu geben. Die "Frage" war: "ich brauche eine Funktion, die das und das macht". Da die händischen Möglichkeiten bereits genannt wurden, sollte es doch legitim sein, eine elegante Methode auch noch zu erwähnen? Gerade weil die Aufgabenstellung keine Bedingungen diesbezüglich stellte...



  • Wenn er sich die Funktion ansieht, kann er daraus lernen 👍



  • Nexus schrieb:

    @ Shade Of Mine
    Wir versuchen nur, dem Fragesteller so präzise Antworten wie möglich zu geben. Die "Frage" war: "ich brauche eine Funktion, die das und das macht". Da die händischen Möglichkeiten bereits genannt wurden, sollte es doch legitim sein, eine elegante Methode auch noch zu erwähnen? Gerade weil die Aufgabenstellung keine Bedingungen diesbezüglich stellte...

    Es spricht nichts dagegen auch die richtige Variante zu nennen - aber drakon hat zB den Sinn einer Aufgabe nicht verstanden.

    Und das schockiert mich.



  • Shade Of Mine schrieb:

    Aeh...

    Ihr wisst schon wie man etwas lernt, oder?
    Indem man es anwendet.

    Ein Funktionsaufruf lehrt garnix. Ausser wie man eine Funktion aufruft....

    Eben.
    Wer sagt denn, dass das Lernen von std::count() (und insgesamt vom lösungsgerechten Umgang mit dem vollständigen Umfang der Sprachmittel) soviel weniger wert ist als das Lernen vom "Raderfinden" ?
    und wo ist die Grenze? Darf man noch std::cout verwenden? Besteht C++ "eigentlich" nur noch aus primitiven Typen und den Operatoren darauf - und der Rest ist "Schummeln" ?

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Wer sagt denn, dass das Lernen von std::count() (und insgesamt vom lösungsgerechten Umgang mit dem vollständigen Umfang der Sprachmittel) soviel weniger wert ist als das Lernen vom "Raderfinden" ?

    ich.

    und wo ist die Grenze? Darf man noch std::cout verwenden? Besteht C++ "eigentlich" nur noch aus primitiven Typen und den Operatoren darauf - und der Rest ist "Schummeln" ?

    solange man lernen alles will, darf man nur das anwenden, was man auch selber gebaut hat oder sicher bauen könnte.

    schau dir das lernen in der mathematik an. gib dem drittklässler einen taschenrechner und sag ihm, daß er das kleine einmaleins nicht lernen soll, und es wird ein stümper werden, der den realschulabschluß nicht packt.



  • Klar, wer "...alles.." lernen will, darf das gerne tun.
    Der sollte aber erstmal wieder anfangen, Feuer nur mit Naturprodukten herzustellen.
    Als nächstes mit selbstgebauten Holzwerkzeugen nach Erz graben (möglichst erstmal Eisen & Kupfer). Lustig wird's dann, seinen ersten Strom herzustellen - da kann er gleich mit Wind-/Wasserkraft anfangen. Mit Windkraft und Strom gräbt sich's dann viel leichter nach Öl (=> Kunststoffe für Isolatoren und irgendwann mal Platinen) und Halbleitermaterialien. ...
    Ich klinke mich dann aber erst in 200 Jahren wieder ein, wenn er seinen ersten Transistor gelötet hat.

    Mal im Ernst: Hier geht es um die Aneignung von Wissen, das einem berufliche Möglichkeiten eröffnet. Und zumindest in unserer Firma brauchen wir deutlich mehr Leute, die die vorgegebenen Strukturen effizient zu einer Lösung der aktuellen Probleme einsetzen können, als solche, die alles aus dem Nichts erschaffen können - aber erst in 3 Jahren fertig sind.

    Natürlich gehören "Schleifen" zum grundlegenden Verständnis und sollten auch meiner Meinung nach gelernt werden. Aber warum müssen die Lehrer immer wieder dieselben Aufgaben stellen, für die es bereits Standardlösungen gibt? Als Schüler kommt man sich da veralbert vor. Sollen sich halt mal was Neues einfallen lassen....

    Gruß,

    Simon2.



  • Simon2 schrieb:

    brauchen wir deutlich mehr Leute, die die vorgegebenen Strukturen effizient zu einer Lösung der aktuellen Probleme einsetzen können,

    warum muss ich jetzt an prof84 denken?

    Natürlich gehören "Schleifen" zum grundlegenden Verständnis und sollten auch meiner Meinung nach gelernt werden. Aber warum müssen die Lehrer immer wieder dieselben Aufgaben stellen,

    weils auch sinnbringende lösungen sein sollen, wo man das gefphl hat, das auch mal später brauchen zu können.

    für die es bereits Standardlösungen gibt?

    weils auch sinnbringende lösungen sein sollen, wo man das gefphl hat, das auch mal später brauchen zu können.

    Als Schüler kommt man sich da veralbert vor. Sollen sich halt mal was Neues einfallen lassen....

    aber bei aufgaben, die völlig praxisfremd sind, wärs schlimmer.
    da soll man dann eine klasse Algorithmus bauen und davon erben oder noch dümmeren schwachsinn.



  • volkard schrieb:

    Simon2 schrieb:

    brauchen wir deutlich mehr Leute, die die vorgegebenen Strukturen effizient zu einer Lösung der aktuellen Probleme einsetzen können,

    warum muss ich jetzt an prof84 denken?...

    Keine Ahnung, kenne ich nicht.

    volkard schrieb:

    ...weils auch sinnbringende lösungen sein sollen, wo man das gefphl hat, das auch mal später brauchen zu können. ...
    aber bei aufgaben, die völlig praxisfremd sind, wärs schlimmer.
    ...

    Was kann es Sinnloseres und Praxisferneres geben, als das Rad neu zu erfinden?

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Was kann es Sinnloseres und Praxisferneres geben, als das Rad neu zu erfinden?

    Bei der Übung hier geht es wahrscheinlich weniger darum, dass man die benötigte Funktionalität hat, als dass man bei der Implementierung etwas lernt. Wieso sollte man sich eine verkettete Liste bauen, wenn es std::list gibt? Entweder man braucht irgendetwas, das std::list nicht bietet, oder aber - was wahrscheinlicher ist - man will sich im Bereich Zeiger, Klassen und Templates fortbilden.

    Nichtsdestotrotz finde ich es angebracht, hier std::count() zu erwähnen. Allerdings sollte dies nicht über die selbstgeschriebene Version gestellt werden, wenn man die Aufgabenstellung nicht genau kennt.



  • Simon2 schrieb:

    Natürlich gehören "Schleifen" zum grundlegenden Verständnis und sollten auch meiner Meinung nach gelernt werden. Aber warum müssen die Lehrer immer wieder dieselben Aufgaben stellen, für die es bereits Standardlösungen gibt? Als Schüler kommt man sich da veralbert vor. Sollen sich halt mal was Neues einfallen lassen....

    Nein. So einfache Sachen sind wichtig - denn du musst es ja selber nachvollziehen können ob dein Ergebnis korrekt ist.

    Super ist zB multiplikation/division über addition/subtraktion zu implementieren, in einem array etwas suchen oder zählen, einfaches sortieren, schauen ob etwas sortiert ist, etc.

    all das wofür es standard lösungen gibt - denn idR gibt es genau deshalb eine standard lösung dafür weil man es immer wieder braucht...

    du fängst beim lernen immer klein an. das macht ja auch sinn. du musst count() implementieren können bevor du es verwenden darfst. denn wenn nicht, dann führt das zu furchtbarem.

    würdest du mathematik lehren indem du eine formel sammlung hergibst und einen taschenrechner. und dann eben die fläche eine quadrats als a^2 ausrechnen lässt? Oder würdest du erklären was ^ macht und was die fläche bedeutet, etc.

    diese grundlagen sind essentiell! count() anwenden ist trivial, das kann ein schimpanse. count() implementieren nicht. da es aber nicht für alles vorgefertigte lösungen gibt muss man lernen probleme selber lösen zu können - am besten fängt man mit problemen an die man im kopf überprüfen kann - das man also weiß ob die lösung korrekt ist oder nicht.

    zB pi auf 200mio stellen berechnen wäre doof, weil das nicht sinnvoll überprüfbar ist. zählen wieviele a in "hallo welt" vorkommen, ist dagegen schon deutlich einfacher überprüfbar.

    Praxis ist dabei erstmal irrelevant. aber stell dir mal einen auto designer vor der keine ahnung hat was die idee und das konzept eines Rads ist. er baut immer die gleichen 4 räder in ein auto ein, weil er das halt so gelernt hat. sehr super. wenn er aber gelernt hat wie ein rad aufgebaut ist und welche probleme es löst, welche es nicht löst, wo es probleme hat, etc. dann wird er in einem gelädewagen größere räder einbauen.

    und deshalb muss man die grundlagen lernen - oder wie es so schön heisst: gehen lernen bevor man läuft.



  • Shade Of Mine schrieb:

    ...

    /sign 👍
    Das ist was ich meinte. Außerdem nochmal zum Threadersteller, eig. steht in seinem Comment das er eine Funktion schreiben soll und nicht nur eine Funktion benutzen soll. Ihr seid doch alle eig. nur besser in C++ geworden, weil ihr Sachen nach programmiert habt, erweitert habt, selbst geschrieben habt. Ich musste letztens eine Verketteteliste schreiben, die grad mal ein paar Sachen konnte wie der Vector-Container. Gedacht hab ich zwar "wofür das Rad nochmal erfinden", im nach hinein dachte ich aber, "wow ich hab was dazu gelernt", hab verstanden wie es funktioniert und was man brauch etc. Wie soll der Threadersteller nun wissen wie std::count() Funktioniert? Er weiß das die Funktion existiert, doch warum und wie sie funktioniert, weiß er nicht.


Anmelden zum Antworten