Autor Beitrag
ololo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Mi 30.05.07 16:04 
hi delphi-forum :D

ich bräuchte für eine schulaufgabe ein wenig hilfe...:
Zitat:

schreibe ein programm, das von einem eingegebenen text ermittelt, mit welcher häufigkeit die buchsteben des alphabets vorkommen.

das ich den text in ein memo-feld schreibe ist klar, aber wie kann ich dann herausfinden, wie häufig die einzelnen buchstabeb vorkommen??? es reicht wenn die anzahl als eine variable ausgegeben wird, den rest kann ich dann alleine lösen


hoffe auf viele antworten und danke im vorraus

ps. Ich hoffe ich hab im richtigen bereich gepostet, sonst einfach verschieben :P
pps. wir nutzen delphi 5 also nix benutzen was unser delphi nicht kann^^


Zuletzt bearbeitet von ololo am Mi 30.05.07 21:14, insgesamt 1-mal bearbeitet
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 30.05.07 16:09 
Wenn du die Nummer des Zeichens in eckigen Klammern (bei 1 beginnend) hinter den Namen deiner Variablen mit dem Text schreibst, kannst du auf einzelne Zeichen zugreifen.
Mit Length kommstre an die Länge des Strings.
Dann einfach in ner For-Schleife alles durchgehen und durchgucken.
Falls Groß-/Kleinschreibung egal sein soll, vorher den String mit AnsiUpperCase oder AnsiLowerCase komplett in Groß- bzw. Kleinbuchstaben umwandeln.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
ololo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Mi 30.05.07 22:32 
könntest du mir da nen kleinen beispieltext schreiben, so wie ich das mit den eckicgen klammern mache funzt das net... falls ichs denn richtig verstanden hab^^

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
var a[1] : string;
    b[2] : string;
    c[3] : string;

begin
  //hier muss ja auch noch was hin, was?? (kleines beispiel)
end;


danke im vorraus


@gausi
isses so ok mit der überschrift?
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Mi 30.05.07 22:38 
zu den eckigen Klammern:

bei deiner variabklendeklaration schreibst du einfach

a:string;


nehmen wir nun an a würde der string "albert" zugewiesen, so kannst du dann in der prozedur mit a[1],a[2]...a[5] auf die einzelnen Buchstaben zugreifen und diese abgleichen.

So machst du das auch in deinem Programm, du schreibst eine for schleife von 1 bis zur länge des strings, holst dir jeden buchstaben (s.o.), überprüfst welcher das ist und erhöhst den zähler für den jeweiligen buchstaben


Zuletzt bearbeitet von Jann1k am Mi 30.05.07 22:55, insgesamt 1-mal bearbeitet
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 30.05.07 22:51 
Halt, bevor du das machst:

Der erste Index ist 1, also Zugriff mit a[1], a[2] usw. Die Schleife läuft dann natürlich von 1 bis zur Länge.

EDIT: so, Jann1k hat's editiert, damit ist dieser Post überflüssig und kann ohne Probleme überlesen werden ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."


Zuletzt bearbeitet von Martok am Mi 30.05.07 22:57, insgesamt 1-mal bearbeitet
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Mi 30.05.07 22:55 
stimmt hast recht werd das gleich editieren
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Do 31.05.07 08:13 
auch auf die Gefahr hin, mich wieder unbeliebt zu machen:
(1) Schreibe mir mal die Aufgabe auf einen 100 €-Schein, Lösung kommt dann per Email
oder
(2) Was spricht gegen Aufpassen im Unterricht oder kommt wieder das Märchen: "Der Lehrer hat es nicht erklärt"?
oder
(3) Wenn man die Erklärung schon verpasst hat, sollte man sich eventuell mit ein paar Grundlagen vertraut machen!

mfg

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!


Zuletzt bearbeitet von Kroko am Do 31.05.07 14:54, insgesamt 1-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 31.05.07 09:23 
Sach mal Kroko, was soll eigentlich diese ständige Motzerei? Ich lass das Posting mal stehen, auch wenn es absolut nichts mit dem Thema zu tun hat und einfach nur eine destruktive Wirkung hat. Weitere Kommentare dazu werde ich löschen - wenn Diskussionsbedarf darüber besteht: Neues Topic aufmachen. Und nein, das hat nichts mit Zensur zu tun.

Zum Thema: Wie schon gesagt, brauchst du eine Schleife, die den String durchgeht. Das könnte so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i:= 1 to length(Memo1.text) do
begin
// hier der Zähl-Code
end;


Dabei ist i die Schleifenvaribale vom Typ Integer.

Zum Zählen braucht man ein Array, was soviele Zahlen speichern kann, wie es Buchstaben im Alphabet gibt. Also z.B. LetterCount: Array[1..26of Integer;

Um z.B. den Buchstaben "A" zu zählen, könnte der Code in der Zählschleife so aussehen:

ausblenden Delphi-Quelltext
1:
if (Memo1.Text[i] = 'a'OR (Memo1.Text[i] = 'A'then LetterCount[1] := LetterCount[1] + 1;					


Das ganze kann man auch schöner schreiben bzw. so umformulieren, dass das ganze Programm in drei oder vier Zeilen passt, aber ich belass es jetzt mal dabei ;-)

_________________
We are, we were and will not be.
ololo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Fr 01.06.07 15:53 
jaa danke an alle, jetzt funzt es, habs noch n bissl geändert mich otionen etc aba danke, das hauptproblem wurde gelöst

danke nochma an alle die mir geholfen haben!!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Fr 01.06.07 15:55 
user profile iconololo hat folgendes geschrieben:
jaa danke an alle, jetzt funzt es, habs noch n bissl geändert mich otionen etc aba danke, das hauptproblem wurde gelöst

danke nochma an alle die mir geholfen haben!!
D1

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!