BPS #1: Buchstaben zählen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

hamZta

Administrator

Betreff: BPS #1: Buchstaben zählen

BeitragFr, Dez 24, 2010 0:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Aufgabenstellung:
Ziel ist es, ein Programm zu schreiben das zählt, welcher Buchstabe wie oft in einem Text vorkommt. Dazu liest es den Inhalt einer Textdatei zeilenweise ein und erhöht dann seinen Zähler für den jeweiligen Buchstaben. Die Zeile "Das ist ein Test" enthält zum Beispiel ein A, kein B, kein C, etc. Sonderzeichen und Zahlen werden ignoriert. Wenn das Ende der Datei erreicht wird gibt das Programm seine Zähler aus.

Tipps:

  • Benutzt ein Array um die Anzahl der Buchstaben zu speichern.
  • Arbeitet mit ASCII-Codes der Buchstaben für den Zugriff auf das Array.
  • Kommentiert euren Code während des Schreibens!
  • Die Musterlösung verwendet nur Dateibefehle, Schleifen und eine If-Bedingung.
  • Nützliche Befehle:

    • BlitzBasic: Readfile, Asc, Mid
    • BlitzMax: Slices (Siehe Hilfe in der MaxIDE)



Beispiel:
test.txt:
Code: [AUSKLAPPEN]
Das ist ein Test! Hier stehen ein paar Buchstaben.
In der naechsten Zeilen stehen auch ein paar.
Hier sind's ein paar weniger.


Ausgabe:
Code: [AUSKLAPPEN]
A: 10
B: 2
C: 3
D: 3
E: 19
F: 0
G: 1
H: 7
I: 11
J: 0
K: 0
L: 1
M: 0
N: 13
O: 0
P: 3
Q: 0
R: 7
S: 9
T: 7
U: 2
V: 0
W: 1
X: 0
Y: 0
Z: 1


Zeit:
Ihr habt ab heute eine Woche Zeit Euren Code zu entwickeln. Bitte postet Eure fertigen Codes erst in einer Woche, wenn der Auswertungsthread erstellt wird, dort hinein.
Fragen könnt ihr hier natürlich jederzeit stellen.

RELATED TOPIC: Auswertungsthread
RELATED TOPIC: Die Beginner's Practice Series (BPS)
Blog.
  • Zuletzt bearbeitet von hamZta am Mi, Jan 05, 2011 14:12, insgesamt einmal bearbeitet
 

Loewe95

Betreff: Super Idee

BeitragFr, Dez 24, 2010 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde das ist eine tolle Idee und die beste Möglichkeit fortgeschrittene Anfänger weiterzubringen. Ich werde auf jeden Fall auch meinen PC bemühen. Smile
 

just

Betreff: Groß und Kleinschreibung

BeitragFr, Dez 24, 2010 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Sollen Groß und Kleinschreibung berücksichtigt werden?
Frohe Weihnachten Cool

ozzi789

BeitragFr, Dez 24, 2010 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Super Idee.
Nett um wieder etwas BB aufzufrischen
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

BladeRunner

Moderator

BeitragFr, Dez 24, 2010 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Aufgabenstellung geht mal nur von Großbuchstaben aus. Fühl Dich frei den Code für dich selbst zu erweitern.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

hazumu-kun

BeitragFr, Dez 24, 2010 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist eine sehr gute Idee, ich schreib auch gleichmal.
Das kann man übrigens dazu benutzen um eine Cäsar Verschlüsselung zu knacken Wink
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
 

exastion

Betreff: Gute Idee

BeitragFr, Dez 24, 2010 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde das eine gute Idee.
Habe mich auch mal dahingesetzt, und das umgesetzt.

InFaIN

BeitragSa, Dez 25, 2010 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Dazu liest es den Inhalt einer Textdatei zeilenweise ein und erhöht dann seinen Zähler für den jeweiligen Buchstaben.


Muss das Programm die Textdatei Zeilenweise auslesen?
Zum einen geht es mit ReadByte einfacher und zum anderen deutlich schneller.

Ein vergleich von ReadLine und ReadByte mit einer Testdatei gibt es hier. Ich denke 1000000 Wörter sind eine gute vergleichsbasis.

Natürlich gibt es keinen Code sondern nur die Exe Dateien...



InFaIN

Xeres

Moderator

BeitragSa, Dez 25, 2010 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal soll das Programm funktionieren - was und wie es unter welchen Umständen am günstigsten ist, wird im Nachhinein geklärt werden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

FunctionBauer

BeitragDo, Dez 30, 2010 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso hat noch niemand Ergebnisse gepostet? Shocked
Intel Quad Core 6600 Geforce 9500 GT
4 GB DDR-2 RAM 500 GB-Samsung

markus

BeitragDo, Dez 30, 2010 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
FunctionBauer hat Folgendes geschrieben:
wieso hat noch niemand Ergebnisse gepostet? Shocked

hamZta hat Folgendes geschrieben:

Zeit:
Ihr habt ab heute eine Woche Zeit Euren Code zu entwickeln. Bitte postet Eure fertigen Codes erst in einer Woche, wenn der Auswertungsthread erstellt wird, dort hinein.
Fragen könnt ihr hier natürlich jederzeit stellen.


Den ersten Post einfach mal ganz durchlesen Wink

FunctionBauer

BeitragDo, Dez 30, 2010 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
uups. tut mir leid. Embarassed
Intel Quad Core 6600 Geforce 9500 GT
4 GB DDR-2 RAM 500 GB-Samsung
 

BBPro2

BeitragDo, Dez 30, 2010 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
wer darauf aufbauend noch was weiterführendes entwickeln will:

mit einer geeigneten kodierung lässt sich daraus ein komprimierungsalgorithmus entwickeln.
für häufig auftretende buchstaben eine "kurze" verschlüsselung in binärschreibweise verwenden (z.b. 01) und für seltene eine längere (z.b. 10010110101101)
wie man eine optimale kodierung erhält lässt sich mithilfe von google leicht rausfinden (mir fallen die namen der alg leider gerade nicht ein)
wichtig ist, dass die einzelnen kodierungen präfixfremd sind, sonst kann man das ganze nicht wieder dekodieren, was recht nervig wäre Wink

Eingeproggt

BeitragDo, Dez 30, 2010 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Name des Algorithmus den du meinst ist Huffman Wink

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

BBPro2

BeitragDo, Dez 30, 2010 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
eine Huffman-Kodierung, das wars. Danke, Eingeproggt Wink
 

exastion

Betreff: Hallo

BeitragMo, Jan 03, 2011 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Läuft hier noch irgendetwas? Die Woche ist doch schon um, und ich finde noch immer keinen Abgebethread.

BladeRunner

Moderator

BeitragMo, Jan 03, 2011 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Wir hatten bei Erstellung der ersten Ausgabe leider nicht berücksichtigt dass mit den Feiertagen und diversen Urlaubsplänen die Woche Laufzeit problematisch ist.
Ich bitte dies zu entschuldigen und ebenso um ein klein wenig Geduld.
Der Thread wird im laufe der nächsten ein-zwei Tage kommen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group