AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vokale Zählen

Ein Thema von userF · begonnen am 18. Jun 2006 · letzter Beitrag vom 19. Jun 2006
 
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#11

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:42
Noch ein Tip:

Es ist sinnvoll solche Aufgaben auf mehrere Prozeduren und auch Funktionen zu verteilen. Denn dann ist der Code viel übersichtlicher, du kannst eine einmal programmierte Prozedur oder Funktion immer wieder verwenden und Fehler sind leichter auszumerzen.

Dazu ein Beispiel:

Diese Prozedur gibt zu jedem ihr übergebenen Satz die Anzahl von Konsonanten und Vokalen zurück:

Delphi-Quellcode:
procedure ZaehleVokUndKons(pSatz: String; var pnVok, pnKons: Integer);
var i:integer;
begin
    pnVok := 0;
    pnKons := 0;
    for i:=1 to length(pSatz) do
      begin
        if (pSatz[i] in ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']) then
            inc(pnVok)
        else if (pSatz[i] in ['a'..'z', 'A'..'Z']) then
            inc(pnKons);
      end;
end;
In deinem Projekt könntest du diese jetzt beliebig oft aufrufen, ohne alles nochmal tippen zu müssen. Aufgerufen würde sie beispielsweise so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var nVok,
    nKons: integer;
begin
  ZaehleVokUndKons(edit1.text, nVok, nKons);
  edit2.text := inttostr(nVok);
  edit3.text := inttostr(nKons)
end;
Noch besser wäre aber auch die Überprüfung, ob es sich bei einem Buchstaben um Vokale oder Konsonanten handelt auch "auszulagern", dazu bieten sich Funktionen an. Dann sähre das ganze so aus:


Delphi-Quellcode:
function istVokal(pChar: Char): Boolean;
begin
  if pChar in ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'] then result := true
    else result := false;
end;

function istKonsonant(pChar: Char): Boolean;
begin
  if (pChar in ['a'..'z', 'A'..'Z']) and (not isVowel(pChar)) then result := true
    else result := false;
end;

procedure ZaehleVokUndKons(pSatz: String; var pnVok, pnKons: Integer);
var i:integer;
begin
    pnVok := 0;
    pnKons := 0;
    for i:=1 to length(pSatz) do
      begin
        if istVokal(pSatz[i] )then
            inc(pnVok)
        else if istKonsonant(pSatz[i]) then
            inc(pnKons);
      end;
end;
Der Aufruf ist der selbe, wie oben.

Mir hat sowas früher im sehr geholfen, da ich mich selber auch verbessern wollte. Wenn es dich weniger interessiert dann überseh den Beitrag einfach.

Edit: Verwirrenden Bezeichner "Konst" in "Kons" geändert.
  Mit Zitat antworten Zitat
 


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 22:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz