<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Bewerbungstest (Backend (Server)) C++ Basics]]></title><description><![CDATA[<p>Hallo erstmal. Es geht um vollgendes. Vor einiger Zeit habe ich mich bei einer Firma auf eine Lehrstelle als Fachinformatiker für Anwendungsentliklung beworben. Nun bin ich zur Zeit ohnehin im Stress und habe heute ne email dieser Firma erhalten der ein Test beigefügt ist, der binnen der nächsten 5 Werktage möglichst gelöst zurückgeschickt werden soll. Nunja, ich selbst habe noch nicht die Zeit dazu gehabt mich ernsthaft mit c++ auseinander zu setzen, deshalb bräuchte ich dringen Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Aufgabe ist folgende:</p>
<p>1. Ziel „Wortsortierer“<br />
Alle Worte eines Textes sollen aus einer Textdatei eingelesen<br />
und alle Buchstaben in Kleinbuchstaben verwandelt werden.<br />
Danach sollen die Worte sortiert und wieder ausgegeben werden.<br />
Interpunktionen und Zahlen werden dabei ignoriert. Die<br />
Ausgabe soll dabei nach den beiden Anfangsbuchstaben der<br />
Worte gruppiert werden. Innerhalb dieser Gruppen erfolgt die<br />
Ausgabe in umgekehrter alphanumerischer Reihenfolge. Doppelte<br />
Worte werden nur einmal mit der Häufigkeit ihres Auftretens<br />
ausgegeben.<br />
2. Verlauf<br />
Dem Programm wird die einzulesende Datei übergeben. Danach<br />
liest das Programm die Datei ein, sortiert die Worte und<br />
gibt die Liste direkt auf den Bildschirm aus.<br />
3. Abgabe<br />
Das Programm soll in C++ geschrieben werden. Andere Programmiersprachen<br />
werden nicht anerkannt.<br />
4. Abzugeben sind<br />
- fertig kompiliertes Programm<br />
- kommentierter Source-Code<br />
- kurze Beschreibung des Programms mit Ablaufprotokoll</p>
<p>Schon seit längerem plane ich mich eingehender mit c++ auseinander zu setzen bin aber noch nicht dazu gekommen. Es soll weißgott nicht so ausgelegt werden, als sei ich zu faul die Arbeit selbst zu machen, nur schaff ichs momentan nicht mir die Basics selbst beizubringen.</p>
<p>Was ich mir von dem Threat erhoffe, sind konstruktive Lösungsansätze (tut so als ob ihr es einem Unwissenden erklärt, damit ich es auch auf jedenfall verstehe^^), Ein bisschen Basiswissen, was man halt zum bewältigen der Aufgabe gebraucht wird.</p>
<p>Ich würde mich riesig über jede hilfe freuen, werde mich auch selbst noch ein bissl da hinnein fuchsen, danke zunächst allen die sich die mühe gemacht haben meinen ellenlangen Text zu entziffern und erwägen mir beizustehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227605/bewerbungstest-backend-server-c-basics</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 20:53:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227605.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Nov 2008 17:18:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Mon, 17 Nov 2008 17:18:45 GMT]]></title><description><![CDATA[<p>Hallo erstmal. Es geht um vollgendes. Vor einiger Zeit habe ich mich bei einer Firma auf eine Lehrstelle als Fachinformatiker für Anwendungsentliklung beworben. Nun bin ich zur Zeit ohnehin im Stress und habe heute ne email dieser Firma erhalten der ein Test beigefügt ist, der binnen der nächsten 5 Werktage möglichst gelöst zurückgeschickt werden soll. Nunja, ich selbst habe noch nicht die Zeit dazu gehabt mich ernsthaft mit c++ auseinander zu setzen, deshalb bräuchte ich dringen Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Aufgabe ist folgende:</p>
<p>1. Ziel „Wortsortierer“<br />
Alle Worte eines Textes sollen aus einer Textdatei eingelesen<br />
und alle Buchstaben in Kleinbuchstaben verwandelt werden.<br />
Danach sollen die Worte sortiert und wieder ausgegeben werden.<br />
Interpunktionen und Zahlen werden dabei ignoriert. Die<br />
Ausgabe soll dabei nach den beiden Anfangsbuchstaben der<br />
Worte gruppiert werden. Innerhalb dieser Gruppen erfolgt die<br />
Ausgabe in umgekehrter alphanumerischer Reihenfolge. Doppelte<br />
Worte werden nur einmal mit der Häufigkeit ihres Auftretens<br />
ausgegeben.<br />
2. Verlauf<br />
Dem Programm wird die einzulesende Datei übergeben. Danach<br />
liest das Programm die Datei ein, sortiert die Worte und<br />
gibt die Liste direkt auf den Bildschirm aus.<br />
3. Abgabe<br />
Das Programm soll in C++ geschrieben werden. Andere Programmiersprachen<br />
werden nicht anerkannt.<br />
4. Abzugeben sind<br />
- fertig kompiliertes Programm<br />
- kommentierter Source-Code<br />
- kurze Beschreibung des Programms mit Ablaufprotokoll</p>
<p>Schon seit längerem plane ich mich eingehender mit c++ auseinander zu setzen bin aber noch nicht dazu gekommen. Es soll weißgott nicht so ausgelegt werden, als sei ich zu faul die Arbeit selbst zu machen, nur schaff ichs momentan nicht mir die Basics selbst beizubringen.</p>
<p>Was ich mir von dem Threat erhoffe, sind konstruktive Lösungsansätze (tut so als ob ihr es einem Unwissenden erklärt, damit ich es auch auf jedenfall verstehe^^), Ein bisschen Basiswissen, was man halt zum bewältigen der Aufgabe gebraucht wird.</p>
<p>Ich würde mich riesig über jede hilfe freuen, werde mich auch selbst noch ein bissl da hinnein fuchsen, danke zunächst allen die sich die mühe gemacht haben meinen ellenlangen Text zu entziffern und erwägen mir beizustehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616090</guid><dc:creator><![CDATA[knusperkekz]]></dc:creator><pubDate>Mon, 17 Nov 2008 17:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Mon, 17 Nov 2008 18:07:41 GMT]]></title><description><![CDATA[<p>Erstmal ein nützlicher Link zu einer Klassenreferenz:</p>
<p><a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a></p>
<p>Was du brauchst sind die Streamklassen für die Eingabe/Ausgabe. Zur Speicherung der Worte aus der Datei bietet sich jeweils die Stringklasse an. Da viele Worte im Speicher haben willst, brauchst du irgendeine Datenstruktur. Die vordefinierte Containerklasse &quot;vector&quot; sollte zu deinem Problem passen. Zur Verarbeitung der Daten könntest du entweder die fertigen Algortithmen aus der STL nehmen oder einen eigenen entwerfen. Wenn ich deinen Ausbildungsstand richtig einschätze, ist es wohl besser, du schreibst einen eigenen Algorithmus. Die Verwendung der Standardalgorithmen ist zwar sehr elegant, aber es wäre etwas was man noch zusätzlich lernen müsste und deine Zeit ist ja anscheinend knapp. Das du einen Sortieralgortihmus schreiben kannst, setze ich dabei mal voraus, ansonsten musst du dir eben auch noch die Algorithmenbibliothek angucken.</p>
<p>Abgesehen von der Referenz die ich oben angegeben habe, noch folgende Tipps: Die Ein-/Ausgabe vom und zum Bildschirm wird in jedem C++ Anfängerbuch gleich am Anfang behandelt. Die Benutzung der fstreams zur Datei Ein-/Ausgabe geht ziemlich analog.<br />
Zur Stringklasse gibt es eigentlich nicht viel zu sagen, außer dass sie schönerweise schon Vergleichoperatoren vordefiniert hat, was das Sortieren einfacher macht, sei es mit den Standardalgorithmen oder von Hand. Für das Konvertieren in Kleinbuchstaben wirst du wohl selbst was schreiben müssen.<br />
Für die Verwendung der Vectorklasse musst du dich mit Templates auseinandersetzen, was für Anfänger nicht ganz einfach ist. Mit dem Anschauen von ein paar Beispielen und ein bisschen Herumspielen sollte es aber machbar sein, zumindest etwas funktionierendes hinzubekommen, auch wenn vieleicht nicht ganz klar wird, was da passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616103</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Nov 2008 18:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 03:46:40 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Für das Konvertieren in Kleinbuchstaben wirst du wohl selbst was schreiben müssen.</p>
</blockquote>
<p>Was nicht all zu schwierig ist:</p>
<pre><code class="language-cpp">//main.cpp
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cctype&gt; // tolower(char)
using std::cout;
using std::endl;
using std::string;

int main()
{
	string s(&quot;KLEIN&quot;);
	// Wandelt jeden Großbuchstaben eines Strings in einen Kleinbuchstaben um
	for(string::size_type index = 0; index != s.size(); ++index)
		s[index] = tolower(s[index]);
	// Ausgabe des veränderten Strings
	cout &lt;&lt; s &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>knusperkekz schrieb:</p>
<blockquote>
<p>...nur schaff ichs momentan nicht mir die Basics selbst beizubringen.</p>
</blockquote>
<p>Ohne ein paar Grundlagen, glaube ich kaum das du das in nur 5 Werktagen schaffen wirst. Neben SeppJs Tipps würde ich dir raten, dir vielleicht auf die schnelle noch ein C++-Buch wie z. B. &quot;C++ Primer&quot; zuzulegen und dort die entsprechenden Abschnitte zu lesen um die Aufgabe damit dann zu lösen.</p>
<p>Edit zur späten Stunde: Nachdem ich mich jetzt selber mal an deiner Aufgabe versucht habe, würde ich dir doch eher zu einer <code>std::map</code> anstatt zu einem <code>std::vector</code> raten, da sich mit einer <code>std::map</code> sowohl das zählen, als auch das sortieren der eingelesenen Wörter viel leichter realisieren lässt und nicht zuletzt auch deshalb, weil es ja in der Aufgabe heißt das mehrfach auftauchende Wörter am Ende nur einmal ausgegeben werden sollen :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616118</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 18 Nov 2008 03:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 07:39:50 GMT]]></title><description><![CDATA[<p>Hast du schon Vorkenntnisse im Programmieren? Was kannst du schon alles bzw. was hast du schon gemacht?<br />
Ansonsten musst du dich 5 Tage wirklich konsequent vollzeit auf den Arsch setzen und etwas tun, sonst ist das auf keinen Fall lösbar. Sorry, dass nicht gerade hoffnungsvoll klingt, aber das ist denke ich ehrlich.</p>
<p>Jemanden zu finden, der dir das Programm schreibt oder nötige Schnippsel gibt, ist wohl kein Problem. Dadurch hast du aber nichts gewonnen. Denn Du bist der jenige, der im Gespräch erklären können muss, was du da gemacht hast. Und du bist auch der jenige, der - je nach dem wie professionell das Programm gemacht ist - sich mit den Erwartungen konfrontiert sieht, wenn du aufgrund des Programms eingestellt wirst.</p>
<p>Im Übrigen finde ich es schon ein wenig dreist, jemanden, der Anwendungsentwickler <em>lernen</em> will, mit so einer Aufgabe zu konfrontieren. Klingt ein wenig danach, als wenn dort eine billige Arbeitskraft gesucht wird.</p>
<p>Um aber nicht nur zu labern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Das fertige Programm könnte sich wohl im Rahmen eines 10-Zeilers bewegen, wenn man schon gut gefestige C++-Kenntnisse hat.</p>
<p>Für eine Lösung solltest du Dir folgende Konzepte sowie Klassen aus der C++ Standard Bibliothek anschauen und verstehen und erklären können <em>was</em> sie machen (<em>wie</em> sie es machen, braucht dich für den Anfang nicht zu interessieren, das solltest du abstrakt betrachten):</p>
<p>Die Parameterübergabe an ein C++-Programm mit argc und argv<br />
std::ifstream (aus &lt;fstream&gt;)<br />
std::cout (aus &lt;iostream&gt;)<br />
std::string ( aus &lt;string&gt;)<br />
tolower (aus &lt;cctype&gt;)<br />
std::map (aus &lt;map&gt;)<br />
Iteratoren. In Verbindung mit std::map deren reverse-Iteratoren.</p>
<p>Such dir Beispiele dazu und schreib dir kleine Testprogramme, um alles für sich mal auszuprobieren, bevor du es in das Gesamt-Programm einbaust. Bei Fragen frag ruhig wieder. Denk aber daran, dass du wirklich <em>nichts</em> davon hast, wenn dir das Programm auf dem Goldteller serviert wird. Zumal die entsprechende Firma vielleicht sogar dieses Forum hier kennt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616258</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Tue, 18 Nov 2008 07:39:50 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 08:10:16 GMT]]></title><description><![CDATA[<p>7H3 N4C3R schrieb:</p>
<blockquote>
<p>std::map (aus &lt;map&gt;)<br />
Iteratoren. In Verbindung mit std::map deren reverse-Iteratoren.</p>
</blockquote>
<p>Ich hab die Aufgabenstellung jetzt nicht seziert, aber std::set (für den OT: &lt;set&gt;) klingt meiner Meinung nach für diesen Fall nach der besseren Alternative.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616276</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Tue, 18 Nov 2008 08:10:16 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 08:12:19 GMT]]></title><description><![CDATA[<p>Hättest du sollen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Die Anzahl der mehrfachen Vorkommen soll gezählt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616277</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Tue, 18 Nov 2008 08:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 08:12:58 GMT]]></title><description><![CDATA[<p>Oh pardon, ja habs auch grad nochmal gelesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616279</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Tue, 18 Nov 2008 08:12:58 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 12:06:00 GMT]]></title><description><![CDATA[<p>7H3 N4C3R schrieb:</p>
<blockquote>
<p>Das fertige Programm könnte sich wohl im Rahmen eines 10-Zeilers bewegen, wenn man schon gut gefestige C++-Kenntnisse hat.</p>
</blockquote>
<p>Hu, inklusive meiner zum Teil recht ausschweifenden Kommentare und den Using-Deklarationen komme ich mit meiner Lösung auf genau 142 Codezeilen. Offenbar mach ich irgendwas falsch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    />.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616426</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 18 Nov 2008 12:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 13:16:14 GMT]]></title><description><![CDATA[<p>Hab jetzt 40 gebraucht, mit Leerzeilen. Allein 7 Zeilen für die Includes und 9 für die toLower-Funktion.</p>
<p>Würd's dir ja per PN schicken, wenn das aktiviert wäre. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616458</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Tue, 18 Nov 2008 13:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 13:22:13 GMT]]></title><description><![CDATA[<p>35 mit allem drum und dran. ToLower ist in 2 Zeilen aber die doofe Vergleichsfunktion alleine schluckt schon 10 Zeilen. Bekomm aber gerad' 'nen Knoten im Gehirn beim Versuch die zu ändern. Und das &quot;ignorieren&quot; von Sonderzeichen etc. habe ich einfach mal wörtlich genommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616469</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 18 Nov 2008 13:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 13:33:41 GMT]]></title><description><![CDATA[<p>40 Zeilen und 35 Zeilen sind echt verdammt kurz <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    />. Hmmm... ich werde vielleicht mal noch ein bisschen an meinem Code herumschrauben :). Meine Funktion zur Umwandlung in Kleinbuchstaben ist 6 Zeilen lang (ohne Kommentare und ohne die Deklaration der Funktion mitzuzählen).</p>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Und das &quot;ignorieren&quot; von Sonderzeichen etc. habe ich einfach mal wörtlich genommen.</p>
</blockquote>
<p>Ich habe es so gemacht, das ich alle Sonderzeichen und Zahlen einfach aus den Strings lösche (mit einer 11 Zeilen langen Funktion, auch wieder ohne Kommentare und ohne die Deklaration der Funktion mitzuzählen) bevor sie in die <code>std::map</code> geschrieben werden :D.</p>
<p>Wenn ich die Kommentare alle nicht mitzählen würde, wäre mein Code zwar auf jeden Fall auch kürzer als 142 Zeilen, aber ich glaube von 40 Zeilen bzw. 35 Zeilen bin ich noch ein paar Zeilen entfernt :).</p>
<p>Edit: Was ich noch vergessen habe: Includes habe ich für meine oben erwähnten Funktionen auch nicht mitgezählt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616474</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 18 Nov 2008 13:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 14:10:24 GMT]]></title><description><![CDATA[<p>Mit Filterung komm ich auf 40. Etwas doof das die ganzen alten C-Funktionen immer einen int wollen und keinen char...</p>
<p>EDIT: 45. Vergessen das durch simples Entfernen von Sonderzeichen ja Wörter zusammengelegt werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616479</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 18 Nov 2008 14:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 14:21:24 GMT]]></title><description><![CDATA[<p>ohne includes und die Implementation der Funktionen zum Filtern von Zeichen und &quot;verkleinern&quot; der Buchstaben bin ich mit Kommentar- und leerzeilen bei 36 gelandet - lässt sich bestimmt noch quetschen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">bool isNumber(std::string);
std::string filter(std::string); //löscht Interpunktionszeichen und ändert alles auf Kleinbuchstaben

typedef std::multiset&lt;std::string&gt; Strset;
typedef Strset::iterator StrIter;

int main()
{
  ifstream input(&quot;input.txt&quot;);
  std::string s;
  Strset strings;
  while (input &gt;&gt; s)
  { 
    s = filter(s);
    if (!isNumber(s)) 
      strings.insert(s);
  } 

  StrIter first = strings.begin(), end = strings.end();
  while (first != end)
  {
    struct Cmp12 //vergleicht die ersten beiden Buchstaben zweier strings
    { 
      bool operator() (std::string lhs, std::string rhs) 
      { return (lhs[0]==rhs[0]) &amp;&amp; (lhs[1]==rhs[1]); }
    }
    //range = Gruppierung nach Anfangsbuchstaben
    std::pair&lt;StrIter&gt; range = std::equal_range(first, end, *first, Cmp12());
    StrIter it = first = range.second;
    while (it != range.first)
    {
      unsigned int equals = it - std::find(range.first, it, *(it-1));
      std::cout &lt;&lt; equals &lt;&lt; &quot;faches Vorkommen von &quot; &lt;&lt; *(it -= equals) &lt;&lt; std::endl;
    }
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1616502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616502</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Nov 2008 14:21:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 14:56:24 GMT]]></title><description><![CDATA[<p>25 Zeilen, alles mitgezählt. Schön ist das aber nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616524</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 18 Nov 2008 14:56:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 15:02:29 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>25 Zeilen, alles mitgezählt. Schön ist das aber nicht...</p>
</blockquote>
<p>Auch alle Sonderfälle? Sonderzeichen entfernt, dadurch keine Wörter zusammengelegt. Wörter die vorher nur durch ein Sonderzeichen getrennt waren werden danach als einzelne Wörter gewertet etc.?<br />
Diese Kleinigkeiten blähen den Code meist auf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>43 ohne extremes Gestauche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616530</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 18 Nov 2008 15:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 15:47:05 GMT]]></title><description><![CDATA[<p>Also, wenn ich meinen Code so Zähle wie wie es pumuckl getan hat (ohne Inlcudes und ohne Funktionsimplemetierung) und ich außerdem noch alle Kommentare rauspfeffere dann komme ich auf 55 Codezeilen, wobei ich keine Algorithmen der STL verwende (was unter anderem auch daran liegt, das ich <code>std::equal_range</code> bisher noch gar nicht kannte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )<br />
Übrigens geht meine <code>main()</code> so los:</p>
<pre><code class="language-cpp">int main(int argc, char *argv[])
{
	if(argc != 2) {
		cerr &lt;&lt; &quot;Falsche Anzahl an uebergebenen Argumenten.&quot; &lt;&lt; endl;
		warten();
		return EXIT_FAILURE;
	}
/* ... */
</code></pre>
<p>da bei mir der Dateiname der zu lesenden Datei mittels der Befehlszeile des Programms übergeben wird. ( <code>warten()</code> verhindert nur das sich das Konsolenfenster gleich wieder schließt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Wörter die vorher nur durch ein Sonderzeichen getrennt waren werden danach als einzelne Wörter gewertet etc.?</p>
</blockquote>
<p>Das habe ich bei meinem Code aber auch nicht berücksichtigt, was dazu führt, das bei mir aus 2, durch Sonderzeichen getrennte Wörter einfach ein Wort wird. Da besteht wohl auch noch Nachbesserungsbedarf bei mir :D.</p>
<p>An den Threadersteller: Hast du dich eigentlich schon an der Aufgabe probiert? Und falls ja, hast du sie vielleicht schon gelöst? Wenn nicht dann immer her mit deinen konkreten Fragen, wir helfen ja gerne :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616573</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 18 Nov 2008 15:47:05 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 16:38:02 GMT]]></title><description><![CDATA[<p>23 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> (Ohne Inkludes, ohne Leerzeilen, ohne Kommentare, ohne alleinstehende geschweifte Klammern, mit Body der Hilfsfunktionen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616614</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 18 Nov 2008 16:38:02 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 16:42:45 GMT]]></title><description><![CDATA[<p>eine.<br />
Mit allen Hilfsfunktionen und Kommentaren, allerdings ohne includes, ohne Zeilenumbrüche zwischen Befehlen, Blöcken etc. Und vor allem ohne Lesbarkeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616620</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Nov 2008 16:42:45 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 16:45:48 GMT]]></title><description><![CDATA[<p>Ich finds ja schon interessant, wie aus dem Problem ein Wettbewerb um den kürzesten Code entstanden ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p><strong>@ pumuckl:</strong><br />
Gerade wollte ich vorschlagen, dass der Wettbewerb nun nach dem Kriterium &quot;wenigste Zeichen im Code&quot; fortgeführt werden könnte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616623</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 18 Nov 2008 16:45:48 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 16:46:47 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>eine.<br />
Mit allen Hilfsfunktionen und Kommentaren, allerdings ohne includes, ohne Zeilenumbrüche zwischen Befehlen, Blöcken etc. Und vor allem ohne Lesbarkeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Schummler :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616628</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 18 Nov 2008 16:46:47 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 16:58:35 GMT]]></title><description><![CDATA[<p>Ach wo, pro Zeile eine Anweisung und Umbrauch bei Schleifen und Bedingungen sollten wohl selbstverständlich sein.</p>
<p>edit:</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Ich finds ja schon interessant, wie aus dem Problem ein Wettbewerb um den kürzesten Code entstanden ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Ich kann's mir auch nicht erklären, ist aber irgendwie eine reizvolle Aufgabenstellung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616647</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 18 Nov 2008 16:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 17:02:57 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p><strong>@ pumuckl:</strong><br />
Gerade wollte ich vorschlagen, dass der Wettbewerb nun nach dem Kriterium &quot;wenigste Zeichen im Code&quot; fortgeführt werden könnte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>was dann mindestens ebenso unleserlich werden kann:</p>
<pre><code class="language-cpp">using namespace std;
typedef string S;
typedef multiset&lt;S&gt; M;
typedef M::iterator I;
bool i(S);
S g(S); //löscht Interpunktionszeichen und ändert alles auf Kleinbuchstaben
bool c (S l, S r) { //vergleicht die ersten beiden Buchstaben zweier strings
  return (l[0]==r[0]) &amp;&amp; (l[1]==r[1]); 
}

int main() {
  ifstream t(&quot;t.txt&quot;);
  S s; M m;
  while (t &gt;&gt; s) { 
    s = g(s);
    if (!i(s)) m.insert(s);
  } 
  I f = m.begin(), e = m.end();
  while (f != e) {
    pair&lt;I&gt; r = equal_range(f, e, *f, c);
    I i = f = r.second;
    while (i != r.first) {
      int n = i - find(r.first, i, *(i-1));
      cout &lt;&lt; n &lt;&lt; &quot;mal &quot; &lt;&lt; *(i -= n) &lt;&lt; endl;
    }
  }
}
</code></pre>
<p>gleicher code wie oben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616655</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Nov 2008 17:02:57 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 17:05:48 GMT]]></title><description><![CDATA[<p>Du hast ein <code>#define t typedef</code> vergessen, das spart nochmal 7 Buchstaben :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616659</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 18 Nov 2008 17:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 17:06:16 GMT]]></title><description><![CDATA[<p>Meine Güte, ihr klaut mir meine Ideen! Jetzt hatte ich gerade vor, die Spielregeln auf <code>#define</code> zu erweitern... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616661</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 18 Nov 2008 17:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 17:06:21 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<pre><code class="language-cpp">cout &lt;&lt; n &lt;&lt; &quot;mal &quot; &lt;&lt; *(i -= n) &lt;&lt; endl;
</code></pre>
</blockquote>
<p>Eine Kleinigkeit könnte man daran noch kürzer fassen:</p>
<pre><code class="language-cpp">cout &lt;&lt; n &lt;&lt; &quot;x &quot; &lt;&lt; *(i -= n) &lt;&lt; endl;
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Hoffentlich gibts solche Wettbewerbe nicht wirklich, denn der Code sieht ja schrecklich aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    />.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616662</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Tue, 18 Nov 2008 17:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to Bewerbungstest (Backend (Server)) C++ Basics on Tue, 18 Nov 2008 17:24:43 GMT]]></title><description><![CDATA[<p>Ich bin jedenfalls hier gelandet (merkwürdige Einlese-Art, weil z.B. <code>Hallo[Welt]</code> sonst nur ein einziges Wort wäre):</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;set&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;boost/filesystem.hpp&gt;

typedef std::map&lt; std::string, std::set&lt;std::string&gt; &gt; StringCtr;
StringCtr data;
std::map&lt;std::string,int&gt; counts;

void cvtChar( char&amp; c )
{
	c = isalpha(c)?  tolower(c)  :  '\0';
}

void printWord( const std::string&amp; s )
{
	std::cout &lt;&lt; &quot;  &quot;;
	if ( counts[s] &gt; 1 )
		std::cout &lt;&lt; counts[s] &lt;&lt; &quot;x &quot;;
	std::cout &lt;&lt; s &lt;&lt; std::endl;
}

int main( int argc, char** argv )
{
	// Datei komplett binär einlesen
	std::ifstream f( argv[1], std::ios::binary );
	std::vector&lt;char&gt; buf( boost::filesystem::file_size(argv[1])+1 );
	f.read( &amp;buf[0], buf.size() );

	// Buchstaben werden ge-lower-t und alles Sonstige wird zu '\0'.
	std::for_each( buf.begin(), buf.end(), cvtChar );

	// Ganze Wörter extrahieren
	for ( size_t i=0; i&lt;buf.size()-1;  )
	{
		// Nächstes Wort suchen
		while ( !buf[i] &amp;&amp; i&lt;buf.size()-1 )
			++i;

		if ( i &lt; buf.size()-1 )
		{
			// Wort zu Datenbestand hinzufügen
			const std::string txt = &amp;buf[i];
			data[txt.substr(0,2)].insert( txt );
			++counts[txt];
			i += txt.size();
		}
	}

	// Ausgabe gruppiert nach ersten zwei Anfangsbuchstaben, umgekehrt sortiert.
	for ( StringCtr::iterator i=data.begin(); i!=data.end(); ++i )
	{
		// Gruppenname ausgeben
		std::cout &lt;&lt; i-&gt;first &lt;&lt; &quot;:&quot; &lt;&lt; std::endl;

		// Rückwärts alle Wörter der Gruppe ausgeben (mit eventuellem Zähler)
		std::for_each( i-&gt;second.rbegin(), i-&gt;second.rend(), printWord );
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1616674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616674</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 18 Nov 2008 17:24:43 GMT</pubDate></item></channel></rss>