Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Im Text nach Zeichen suchen und die dann zählen - aber wie? (https://www.delphipraxis.net/72379-im-text-nach-zeichen-suchen-und-die-dann-zaehlen-aber-wie.html)

plam 29. Jun 2006 12:15


Im Text nach Zeichen suchen und die dann zählen - aber wie?
 
Hallo erstmal, ihr lieben. Aaalso. Ich soll in Info 'nen Vortrag über besagtes Thema halten, hab aber keinen Plan von garnichts. Ich verlang jetzt nicht, dass ihr mir den Vortrag ausarbeitet, dass kann ich schon allein, haha, aber ich brauch einfach nurnmal fix jemanden, der mich mal in die richtige Richtung weist.

Ich bin jetzt inzwischen beim Knuth-Morris-Pratt-Algorithmus und auch beim Boyer-Moore-Algorithmus angekommen, allerdings suchen die ja nach Wörtern und niucht nach einzelnen Zeichen und mein Lehrer will aber, dass ich irgendwie nur rauskrieg, wieviele as oder bs oder cs oder was auch immer in einem Text sind. Ich hab ja die Vermutung, dass das mit den genannten Algotithmen trotzdem geht, aber dann kommt mir das a) ziemlich sinnlos vor (dann hab ja 'a' als Pattern und ratter das durch und dann hat sich's oder wie oder was) und b) steh ich immernoch vor dem Problem mit dem Zählen.

Wir hatten das so noch nicht in Info. Wir sortieren immer nur.

Macht mich glücklich und helft mir! :warn: (Hüstel. Nein ernsthaft, ich muss den Vortrag morgen halten und fang mal wieder urst zeitig an. Vielleicht lass ich morgen meine Üebrredungskünste und meinen weiblichen Charme spielen und überzeug den Lehrer davon, mir noch 'ne Woche Galgenfrist zu geben. Aber so ganz ohne irgendeine Vorbereitung will ich da nicht aufkreuzen. Ihr seid also praktisch meine letzte Hoffnung, oder so.)

SirThornberry 29. Jun 2006 12:23

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
du brauchst einfach nur alle zeichen einzeln durchgehen.
Wenn du insgesamt also 500 zeischen hast musst du alle 500 zeischen nacheinander prüfen.
Also einfach eine Schleife nehmen.
Dann musst du bei jedem Zeischen überprüfen:
Ist es ein "A" dann vermerken das man ein a gefunden hat, beim nächsten a vermerken das man 2 "A" gefunden hat etc.

Letzter Tipp wäre noch die Suche, auch andere hatten schon solche Aufgaben.

plam 29. Jun 2006 12:38

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Danke erstmal, Suche hab ich schon ausprobiert, da ist nicht so richtig das dabei was ich such. : D Höchstens vielleicht das hier, aber das versteh ich nichtwirklich. (Wie gesagt, ich bin 'ne Null in sowas.)

Und wir erkläre ich denen das dann am besten? Ich soll ja mindestens fünf Minuten reden (Kurzvortrag halt).

Gibt's da nicht irgend 'nen Algorithmus für? :roteyes: Sonst gibt's doch auch immer für alles Algorithmen. XD (Ja ich weiß, an sich sind das alles Algorithmen. Ich mein nur halt Solche Algorithmen, die nach irgendwelchen brühmten Damen und Herren nenannt sind und die einem im I-net lang und breit erklärt werden können.)

Der Herr L. will das glaub ich so, dass ich irgend 'nen Satz an die Tafel schreib und das dann am Beispiel erklär oder so. Ich hätte ihn ja auch nochmal gefragt, aber der war heute weg. Ich kenn ja jemanden der Info studiert hat, den würd ich ja auch fragen, aber den seh ich erst Montag wieder.

Ich krieg Panik. Himmel. Nächstes mal fang ich eher an.

SirThornberry 29. Jun 2006 12:46

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Die Aufgabe ist so einfach (jetzt nichts gegen Leute die das anders sehen) das es Frevel wäre wenn jemand diesem Algorytmus seinen Namen aufdrücken würde.

Die solltest an das ganze so rangehen als ob du es nicht programmiertechnich machen müsstest sondern auf einem Blatt papier - da bekommst du es ja auch hinn die Buchstaben zu zählen.
Und da gehst du ja auch von vorn der reihe nach die buchstaben durch, und wenn ein gesuchter Buchstabe auftaucht zählst du dazu.

TheAn00bis 29. Jun 2006 12:47

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Für sowas gibts bestimmt keinen berühmten Algorithmus.

Überleg doch einfach, wie du es selber machen würdest. Ich vermute mal du würdest einfach jeden Buchstaben des Satzes durchgehen und überprüfen, ob es der gesuchte Buchstabe ist. Ist er es, so addierst du zu der bereits gefundenen Anzahl '1'.

Das ist so tivial, dass man da nicht viel zu sagen muss.


Implementiert sieht das dann so aus: Eine Schleife geht jeden Char des Strings der den Satz enthält durch und vergleicht an jeder Stelle mit dem gesuchten char. Und wenn es der gesuchte ist, dann erhöhst du eine Interger-Variable um 1. Das kannst du bestimmt umsetzen. :)

plam 29. Jun 2006 13:08

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Achso, also mach ich jetzt in Delphi einfach irgendwie zwei Edit-Felder und 'n Label oder so, tipp in das eine Editdings meinen Text und in das andere den gesuchten Buchstaben Buchstaben rein der dann meinetwegen als x bezeichnet wird und dann setz ich n (anzahl) auf 0 und jedesmal wenn ein Buchstabe dazukommt n+1. Ist klar. (Ich weiß ich stell mich blöd an, aber ich versteh's wirklich nicht. :oops: ) Aber wie genau such ich dann nach den Buchstaben in dem String? Haben die dann irgendwelche Nummern oder wie oder was? (Irgendwie muss der ja vorwärtskommen.)

Irks. Ich glaub ich brauch 'n Struktogram. Ich kann ja mal versuchen eins zu malen, aber... Ja.

@TheAn00bis
Ist mir 'n bisschen peinlich das zu fragen, aber kannst du mir das mit dem char Zeug mal bitte als Dings schreiben, also so wie's dann in 'nem Struktogramm aussehen würde?


Vom Prinzip her ist das doch bestimmt so if [hier vermutlich das mit dem char?] = x, then do n+1. Nich? Oder muss ich dann noch so'n Überbegriff für diese ganzen "n"s haben, also als Ausgabe dann, weil... Das muss ja irgendwie zusammengefasst werden, oder?

sakura 29. Jun 2006 13:11

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Zitat:

Zitat von plam
Vom Prinzip her ist das doch bestimmt so if [hier vermutlich das mit dem char?] = x, then do n+1. Nich? Oder muss ich dann noch so'n Überbegriff für diese ganzen "n"s haben, also als Ausgabe dann, weil... Das muss ja irgendwie zusammengefasst werden, oder?

Yepp. Z.B.:
Delphi-Quellcode:
...

for I := 1 to Length(EingabeString) do
  if (EingabeString[I] = 'a') or (EingabeString[I] = 'A') then
    Treffer = Treffer + 1;
...:cat:...

plam 29. Jun 2006 13:19

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Was ist "I" und was hat es mit der 1 auf sich? Ist das der Startwert oder hat das was mit ASCII zu tun? :oops:

TheAn00bis 29. Jun 2006 13:21

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Schau dir das mal an: http://dsdt.info/grundlagen/sprache/schleifen.php

Edit: Zusätzlich solltest du vll noch wissen, dass length() dir die Länge eines Strings zurückgibt (wieviele Zeichen er enthält) und, dass ein String quasi ein Array of Char ist, dass bei 1 beginnt.

sakura 29. Jun 2006 13:21

Re: Im Text nach Zeichen suchen und die dann zählen - aber w
 
Zitat:

Zitat von plam
Was ist "I" und was hat es mit der 1 auf sich? Ist das der Startwert oder hat das was mit ASCII zu tun? :oops:

I ist eine Integervariabel. Jeder String hat eine Länge X welche mit Length(EingabeString) ermittelt wird, also geht die Schleife von Zeichen 1 bis zum Stringende durch und vergleicht jedes Zeichen mit a und A. Bei Erfolg wird die Integervariable Treffer um eins erhöht.

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz