Zum Inhalt springen

Faustenator

Mitglieder
  • Gesamte Inhalte

    81
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Faustenator

  1. Laut Deiner Aufgabenstellung hängt das garnicht zusammen. Ein Feld bietet Dir lediglich eine "übersichtliche" Speicherung Deiner Daten. Stell Dir vor es gäbe keine Felder oder ähnliche Strukturen. Dann würde Dein Code vielleicht so ausehen: //Variablen für das zählen der verscheidenen Buchstaben, unter Vernachlässigung von Zahlen und Satzzeichen long a = 0; long b = 0; long c = 0; long d = 0; ... long z = 0; Da hättest Du dann 26 verschiedene Variablen die Du hochzählen würdest und die Du irgendwie ansprechen müsstest. Vielleicht in etwa so: ... char buchstabe = text[i]; //gibt Dir der Reihe nach alle Buchstaben zurück switch(buchstabe) { [INDENT]case 'a': {a = a + 1; break; }[/INDENT] [INDENT]case 'b': {b = b + 1; break; }[/INDENT] [INDENT]case 'c': {c = c + 1; break; }[/INDENT] [INDENT]...[/INDENT] [INDENT]case 'z': {z = z + 1; break; }[/INDENT] [INDENT]case default: { break;} //ungültiges Zeichen[/INDENT] } ... Die Ausgabe der gezählten Buchstaben sieht dann auch wieder ähnlich umständlich aus. Und vom Sortieren will ich hier garnicht erst anfangen :-) Deshalb bietet es sich an Felder zu verwenden. (oder wie von bigredeyes erwähnt, ne List oder ne Map). Ich würde für diesen Fall das einfache Feld bevorzugen da es bei sehr großen Texten performanter sein dürfte. (kannste ja mal mit der Bibel als eBook versuchen) Das Feld kann man auf verschiedene Weisen erstellen. Auch wenn man nicht den kompletten Zeichensatz verwendet würde ich der Einfachheit halber erstmal ein Feld der größe 256 erstellen. int[] zeichenhäufigkeit = new int[256]; Die Buchstaben (und Zahlen, ...) wie Du sie kennst haben in der Asciitabelle auch eine Dezimaldarstellung. A = 65, B = 66, ..., Z = 90 bzw. a = 97, b = 98, ..., z = 122 Diese Umwandlung lässt sich in C# folgenderweise machen int dez = (int)zeichen; Diesen Wert kann man nun innerhalb des Feldes als Index verwenden, und somit z.B. für ein 'A' an der Stelle 65 im Feld den "Zähler" erhöhen: zeichenhäufigkeit[dez] += 1; // bzw. zeichenhäufigkeit[dez] = zeichenhäufigkeit[dez] + 1; Das ganze tust Du dann für alle Zeichen. Wenn Du nun nur kleine oder große Zeichen verwenden willst verwendest Du wie schon erwähnt die Methode "toUpper()" oder "toLower()". Diese Funktion liefert auch wieder einen String zurück. Daher (mindestens) 2 Möglichkeiten. Entweder Du überschreibst die "alte" Variable oder legst den Text dann auf eine neue. string eingabe; ... //Variante 1 eingabe = eingabe.ToLower(); //Variante 2 String kleinerText = eingabe.ToLower(); So, ich hoffe das hilft Dir erstmal weiter. Ansonsten gibts viele Quellen im Netz wo man so die Grundlagen gut erklärt bekommt.
  2. Man muss nicht gleich an sich Zweifeln. Vielleicht fehlts auch nur an Übung.
  3. Da steht nirgends C++-Code. Ich meinte lediglich das ich es mal in C++ machen musste.
  4. Es gibt verschiedene Möglichkeiten die Buchstaben im Text durchzugehen. String text = "Das hier ist mein toller langer Text"; //Möglichkeit 1 foreach (char zeichen1 in text) { //hier kannst Du nun irgendwas mit dem Buchstaben machen //Du könntest es ausgeben Console.Write(zeichen1); } //Möglichkeit 2 char zeichen2; for (int i = 0; i < text.Length; i++) { zeichen2 = text[i]; //hier kannst Du nun irgendwas mit dem Buchstaben machen //Du könntest es ausgeben Console.Write(zeichen2); } Es gibt sicher noch andere Lösungen...
  5. Ich hab damals für ne Huffman-Codierung auch die Häufigkeit von Buchstaben bestimmen müssen. (Da allerdings noch in C++) Die Version mit ner Liste oder ner Map für die verscheidenen Buchstaben war vergleichsweise langsam. Eine recht fixe Methode war es, einfach nen Integer-Array mit 256 Feldern zu nehmen. (Für große Texte dann Long) int[] buchstaben = new int[256]; Bevor man mit dem Array dann noch was macht sollte man erstmal die Werte auf 0 setzen. Im folgenden geht man dann auch den Text Buchstabenweise durch und erhöht den Zahlwert für den jeweilgen Buchstaben. Ein 'A' wäre Dezimal 65, also würde man am entsprenden Index ( z.B.buchstaben[65]) den Wert um eins erhöhen. foreach(char c in text) { buchstaben[(int)c]++; } Danach kann man dann einmal das Array durchgehen und sich die entspechenden Werte (also wahrscheinlich alle die größer 0 sind) ausgeben lassen. Und dann kannst Du natürlich auch noch sortieren.
  6. Faustenator

    [c# -> C++]

    Anmerkung: Also theoretisch zu finden im Namespace "System.Configuration.Install" :mod: Die Funktion könnte andererseits natürlich auch selbst geschrieben sein...
  7. Faustenator

    [c# -> C++]

    Also die Funktion "ParseCommandLine" liest die Befehlszeilenparameter in ein Zeichenfolgenwörterbuch ein. Laut MSDN wäre der Rückgabetyp nicht "void" sondern "StringDictionary" --> protected static StringDictionary ParseCommandLine ( string[] args) StringDictionary --> Implementiert eine Hashtabelle, bei der Schlüssel und Wert strikt als Zeichenfolgen und nicht als Objekte typisiert sind. Findest Du aber auch alles in der MSDN.
  8. Das musst Du mir nicht sagen. Ich durfte meins ja nehmen. :-)
  9. Das dort die gleichen Regeln gelten wie hier (und sonstwo) weiß ich. Die Leute haben sich bei der IHK beschwert, und haben von selbiger auch Post bekommen das sich die IHK bzgl. der Bewertung was ausdenken will.
  10. Was die Zeit angeht konnte ich bei uns keine Abweichungen feststellen. Jedoch haben ein paar meiner Klassenkameraden irgendwo in Thüringen geschrieben und durften als FIAE nicht das "IT-Handbuch" nutzen da laut Prüfungsunterlagen :mod: nur ein "Tabellenbuch" genutzt werden durfte. 2 Räume weiter durften Leute der gleichen Ausbildungsrichtung allerdings die Bücher nutzen.
  11. Also ich hab 10 Thin-Clients gekauft. 8 von denen mit dem "Card-Reader" und 2 von denen mit dem Druckeranschluss. Brachte mich logischerweise auf irgendwas unter 5000€. Den mit dem Linux konnte man eigentlich gleich wegtun, da sowas nicht gewollt war.
  12. Ansonsten hab ich vergessen mal die beiden Begriffe "Tiefensuche" und "Breitensuche" zu erwähnen. Das könnte Dir auch noch helfen falls Du noch kein Ergebniss hast...
  13. Ich hab damals im Studium auch mal über so eine Aufgabe nachdenken müssen und hab auch noch meine kleine Dokumentation dafür. Da es sich dabei um ein Labyrinth mit sechs-eckigen Feldern handelt müsstest Du aber ein wenig umdenken, um nicht zu sagen "vereinfachen". Schau einfach mal hier! Vielleicht hilfts ja... mfg. ...

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...