AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Vokale Zählen

Ein Thema von userF · begonnen am 18. Jun 2006 · letzter Beitrag vom 19. Jun 2006
Antwort Antwort
Seite 2 von 7     12 34     Letzte » 
userF

Registriert seit: 12. Jun 2006
33 Beiträge
 
#11

Re: Vokale Zählen

  Alt 18. Jun 2006, 10:18
Ich möchte wirklich kein fertiges Projekt von Euch haben,ich will es nur richtig verstehen.ich hab von delphi echt nicht soviel ahnung und in der schule wird das auch nicht so richtig erklärt finde ich.ich setz mich mal ran und lass mir das nochmal und nochmal durch den kopf gehen.ich muss da doch drauf kommen. Danke Matze und Klaus01 für Eure hilfe
  Mit Zitat antworten Zitat
userF

Registriert seit: 12. Jun 2006
33 Beiträge
 
#12

Re: Vokale Zählen

  Alt 18. Jun 2006, 10:46
Ich hab mal aufgeschrieben wie ich mir das Projekt genau vorstelle und ich hab auch schon vieles versucht aber ich bekomm das nicht hin irgendwie.
ich muss ein feld haben wo ich einen satz eingeben kann
und dann muss ich einen button haben und wenn ich drauf klicke muss das programm in dem eingegebenen satz alle konsonanten und vokale zählen und die muss er dann einen einzelnen felder dann reinschreiben
also ein 1 feld für konsonanten und eins für vokale und ich denke man muss als variable schonmal vokale und konsonanten angeben ganz am anfang muss die variable den wert 0 erhalten und vokal auch
und wenn der dann die einzelnen buchstaben vom satz durchgeht und einen vokal oder konsonant findet muss der immer 1 dazuzählen und am ende alles addieren und das ergebnis ins ausgabefeld schreiben.so sollte das ganze aussehen aber ich bekomm das einfach nicht gebacken sorry
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Vokale Zählen

  Alt 18. Jun 2006, 10:55
ich denke dir muss erstmal klar werden wie das ohne Delphi geht. Desweiteren gewöhne dich bitte an den "Edit"-Button.
Du schreibst ja das du immer 1 dazuzählen musst (bei Konstante bzw. Vokal). Am Ende schreibst du jedoch noch das du alles dann addieren musst. Wenn du ummer 1 dazu zählst ist es doch schon addiert.

Wenn du etwas zählen willst solltest du einen Variablentyp nutzen der Zahlen beherbergt. Und dann ist das Prinzip folgendes.
1.) AnzahlKonsonanten = 0
2.) AnzahlVokale = 0
3.) Alle Buchstaben der Reihe nach durchgehen. Wenn Es ein Vokal ist dann wird die Anzahl der Vokale um 1 erhöht ansonsten die Anzahl der Konsonanten. Wenn du dann alle Buchstaben duchgegangen bist hast du somit schon die Anzahl der Vokale und die Anzahl der Konsonanten. Diese musst du dann noch ausgeben.

Wie bereits geschrieben hab ich eher das Gefühl das du dir nicht klar bist wie die Aufgabe ohne Delphi (auf Blatt papier) gelöst werden kann.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#14

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:00
also du fügst in deine Form ein edit ein, 2 labels und ein button.

auf den button machst du dann:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var konsonanten,vokale,i:integer;
begin
// beides 0 setzen
konsonanten:=0;
vokale:=0;

for i:=1 to length(edit1.text) do // jedes Zeichen des satzes durchgehen
begin
if edit1.text[i] in ['a','e','i','o','u'] then
vokale:=vokale+1; // wenn ein Vokal, dann eins Hochzählen

//konsonanten zählen
if edit1.Text[i] in ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','u','v','w','x','y','z']
then konsonanten:=konsonanten+1; // wenn kosonant, dann eins hochzählen
end;
label2.caption:=inttostr(konsonanten); // ausgeben
label1.caption:=inttostr(vokale); // ausgeben
end;
so das war es dann schon.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:04
Es soll ein Satz eingegeben werden.

Die meisten Sätze enthalten Interpunktionszeichen und Leerzeichen.

Ich würde Kommata und Leerzeichen nicht gerade als Konsonanten bezeichnen.

Daher würde ich es eher so machen:

Delphi-Quellcode:
procedure TForm1.zaehlenClick(Sender: TObject);
  begin
    satz:=AnsiUpperString(satz);
    vokal:=0;
    konsonant:=0;
    for i:=1 to length(satz) do
      if satz[i] in ['A', 'E', 'I', 'O', 'U'] then
        inc(vokal;
      else if satz[i] in ['A'..'Z'] then
        inc(konsonant);
end;
BTW: Sind Umlaute eigentlich Vokale oder Konsonanten?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
userF

Registriert seit: 12. Jun 2006
33 Beiträge
 
#16

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:06
ich muss zugeben das ich damit schon etwas überfordert bin sorry.für mich ist das alles neuland und ich versuch es einfach nur zu verstehen. Ich möchte zuerst alle Vokale einzeln und alle Konsonanten einzeln ermitteln ( zahlenmässig) und dann das ganze zusammen rechnen irgendwie. Ich hab das auf Papier schon versuicht mit zeichnung und so eben aber in der realität sieht es völlig anderst aus. ich check das irgendwie nicht sorry.Ich bin für jede hilfe dankbar. Wenn ich antwort erstellen anklicke finde ich nirgens einen Edit button sorry sonst würde ich diesen benutzen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:09
es ist ja wunderschön ds ihr eine komplettlösung postet, aber anscheinend habt ihr nicht daran gedacht das er dabei nicht viel lernt und das diese unvollständig sind. Ihr berücksichtigt jeweils nur groß oder kleingeschriebenes aber nicht beides.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#18

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:09
Zitat von userF:
ich muss zugeben das ich damit schon etwas überfordert bin sorry.für mich ist das alles neuland und ich versuch es einfach nur zu verstehen. Ich möchte zuerst alle Vokale einzeln und alle Konsonanten einzeln ermitteln ( zahlenmässig) und dann das ganze zusammen rechnen irgendwie. Ich hab das auf Papier schon versuicht mit zeichnung und so eben aber in der realität sieht es völlig anderst aus. ich check das irgendwie nicht sorry.Ich bin für jede hilfe dankbar. Wenn ich antwort erstellen anklicke finde ich nirgens einen Edit button sorry sonst würde ich diesen benutzen
Ich habe das doch schon einzeln gepostet.
was verstehst du an meinem Text nicht, denn ich auch schon kommentiert habe...
aber eine Frage: ein bissl englisch kannst du?
oder du kennst die schleifen, if anweisungen?

das einfach auf deinen Button legen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var konsonanten,vokale,i:integer;
begin
edit1.Text:=ansilowercase(edit1.text);// Groß- und Kleinschreibung ignorieren

// beides 0 setzen
konsonanten:=0;
vokale:=0;

for i:=1 to length(edit1.text) do // jedes Zeichen des satzes durchgehen
begin
if edit1.text[i] in ['a','e','i','o','u'] then
vokale:=vokale+1; // wenn ein Vokal, dann eins Hochzählen

//konsonanten zählen
if edit1.Text[i] in ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z']
then konsonanten:=konsonanten+1; // wenn kosonant, dann eins hochzählen
end;
label2.caption:=inttostr(konsonanten); // ausgeben
label1.caption:=inttostr(vokale); // ausgeben
end;
  Mit Zitat antworten Zitat
userF

Registriert seit: 12. Jun 2006
33 Beiträge
 
#19

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:14
Mein Englisch geht so sag ich mal und Schleifen und if anweisungen hab ich schon gehört und in der Schule auch sogar schonmal benutzt nur eben viel zu selten wie ich sehe sorry.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Vokale Zählen

  Alt 18. Jun 2006, 11:37
Zitat von SirThornberry:
es ist ja wunderschön ds ihr eine komplettlösung postet, aber anscheinend habt ihr nicht daran gedacht das er dabei nicht viel lernt ...
Hai Sir,

ich gebe Dir recht. Aber trotzdem poste ich hier mal meine Lösung.
Wichtig ist: Die Funktionalität ist von der GUI (OnClick getrennt). Leider machen diesen schweren Fehler immer noch viel zu viele.
Dann habe ich versucht das ganze so offen wie nur möglich zu halten. Es geht dabei einfach darum verschiedene "Char-Arten" zu zählen. Diese "Arten" sind einfach in den Records eines Arrays definiert. Was man damit macht ist aufgabe des Entwicklers

Delphi-Quellcode:
type
  TCharCountInfo = record
    Chars: set of Char;
    Counter: Cardinal;
  end;

function CountCharTypes(const aString: string; var CharTypes: array of TCharCountInfo): Cardinal;
var
  ndx1: Integer;
  ndx2: Integer;
  CharCount: Cardinal;
  CountString: string;
begin
  CountString := aString;
  CharCount := 0;
  for ndx1 := 0 to Length(aString) do
  begin
    for ndx2 := Low(CharTypes) to High(CharTypes) do
    begin
      if (aString[ndx1] in CharTypes[ndx2].Chars) then
      begin
        Inc(CharTypes[ndx2].Counter);
        Inc(CharCount);
      end;
    end;
  end;
  result := CharCount;
end;

procedure TDemoForm.btn_testClick(Sender: TObject);
var
  myCharTypes: array[1..6] of TCharCountInfo;
  s: string;
  count: Integer;
begin
  myCharTypes[1].Chars := ['a'..'z'] - ['a', 'e', 'i', 'o', 'u'];
  myCharTypes[1].Counter := 0;

  myCharTypes[2].Chars := ['a', 'e', 'i', 'o', 'u'];
  myCharTypes[2].Counter := 0;

  myCharTypes[3].Chars := ['A'..'Z'] - ['A', 'E', 'I', 'O', 'U'];
  myCharTypes[3].Counter := 0;

  myCharTypes[4].Chars := ['A', 'E', 'I', 'O', 'U'];
  myCharTypes[4].Counter := 0;

  myCharTypes[5].Chars := ['ö', 'ü', 'ä', 'ß'];
  myCharTypes[5].Counter := 0;

  myCharTypes[6].Chars := ['Ö', 'Ü', 'Ä'];
  myCharTypes[6].Counter := 0;

  s := 'qwaeiouäöüßÄÖÜQWR';
  count := CountCharTypes(s, myCharTypes);

  Label1.Caption := Format('Es wurden %d Zeichen gezählt', [count]);
  Label2.Caption := Format('davon waren %d Zeichen in myCharTypes[1]', [myCharTypes[1].Counter]);
  Label3.Caption := Format('davon waren %d Zeichen in myCharTypes[2]', [myCharTypes[2].Counter]);
  Label4.Caption := Format('davon waren %d Zeichen in myCharTypes[3]', [myCharTypes[3].Counter]);
  Label5.Caption := Format('davon waren %d Zeichen in myCharTypes[4]', [myCharTypes[4].Counter]);
  Label6.Caption := Format('davon waren %d Zeichen in myCharTypes[5]', [myCharTypes[5].Counter]);
  Label7.Caption := Format('davon waren %d Zeichen in myCharTypes[6]', [myCharTypes[6].Counter]);
end;
Stephan B.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.
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