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
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#31

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:40
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  vokal, KonstNum, sonderzeichen: Integer;
  Satz: String;
begin
  vokal := 0;
  KonstNum := 0;
  sonderzeichen := 0;

  // Groß-/Kleinschreibung ignorieren
  Satz := AnsiLowerCase(EdtSatz.Text);

  // jedes Zeichen des Satzes prüfen:
  for i:=1 to length(satz) do
    // prüfen ob wir einen Buchstaben haben:
    if (satz[i] in ['a'..'z']) then
    begin
      // unterscheiden zwischen vokalen und Konsonanten
      if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
        inc(vokal)
      else
        inc(KonstNum);
    end else
      inc(sonderzeichen);

  LblVokNum.Caption := IntToStr(vokal);
  LblKonstNum.Caption := IntToStr(KonstNum);
  LblSonderzeichen.Caption := IntToStr(sonderzeichen);
end;
auf diese Art kannst du nun noch die sonderzeichen herausbekommen.
  Mit Zitat antworten Zitat
userF

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

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:40
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
EdtSatz: TEdit;
LblVokNum: TLabel;
LblKonstNum: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
vokal, KonstNum: Integer;
Satz: String;
begin
vokal := 0;
KonstNum := 0;

// Groß-/Kleinschreibung ignorieren
Satz := AnsiLowerCase(EdtSatz.Text);

vokal :=0;
KonstNum :=0;
for i:=1 to length(satz) do
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
inc(vokal)
else
if satz[i] in ['a'..'z'] then
inc(KonstNum);

LblVokNum.Caption := IntToStr(vokal);
LblKonstNum.Caption := IntToStr(KonstNum);
end;

end.

So sollte es funktionieren?
  Mit Zitat antworten Zitat
TheAn00bis

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

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
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#34

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:45
@userF

Es kam nun ein paar Mal, aber nimm doch bitte endlich mal die Delphi-Tags im Forum zur Hilfe, denn so ist dein QT absolut unleserlich formatiert und nimmt viel Lust an der Hilfe!

air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#35

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:48
@TheAn00bis

ich denke mal wenn du die postings hier verfolgt hast, wirst du gesehen haben das er blutiger anfänger ist und sicher froh ist wenn er es erst einmal ohne auslagern von methoden hinbekommt.
  Mit Zitat antworten Zitat
TheAn00bis

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

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:50
Zitat von computer-glossar.de:
@TheAn00bis

ich denke mal wenn du die postings hier verfolgt hast, wirst du gesehen haben das er blutiger anfänger ist und sicher froh ist wenn er es erst einmal ohne auslagern von methoden hinbekommt.
Jep, erstmal bestimmt, aber ich wollte es ja auch nur zum Weiterlernen anfügen, hinterher sieht er es sich vielleicht gerne mal an!
Ohne die vielen hilfsbereiten Nutzer hier, die mir gezeigt haben, wie ich Sachen hätte besser machen können würde ich heute bestimmt vieles sehr umständlich programmieren.

Schule kann sowas doch kaum vermitteln, denn im Unterricht kommt es in erster Line auf Grundlegende Prinzipien an. (OOP, dann Datenstruckturen, dann Visualisierung via UML und das Umsetzungen der Darstellung etc.)
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#37

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:52
ok, da geb ich dir recht.

wenns fürn unterricht ist, beeindruckt das sicherlich auch noch den lehrer
  Mit Zitat antworten Zitat
userF

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

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:55
TheAn00bis Danke für deine Überlegungen, für mich ist aber das einfachste schon echt schwer genug sorry. Ich brauch nur ein einfache kleines Programm schreiben welches mir die Konsonaten zählt und damit bin ich ja schon maßlos überfordert wie ich sehen muss. Selbst wenn ich den CODE Editieren will und oben auf Delphi Code klicke dazu schaff ich es nichtmal Euch den vernünftig zu zeigen.Ich geb mir alle Mühe aber ich bin da wohl zu doof dafür sorry
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#39

Re: Vokale Zählen

  Alt 18. Jun 2006, 12:59
deinen quelltext markieren, dann einfach auf diesen knopf klicken:
Miniaturansicht angehängter Grafiken
formatierung_212.jpg  
  Mit Zitat antworten Zitat
userF

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

Re: Vokale Zählen

  Alt 18. Jun 2006, 13:01
Sorry ich hatte das genau falsch rum gemacht.erst delphi Code geklickt und dann den Quelltext eingefügt. Werd es ab nun beachten sorry an alle nochmal
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


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 12:42 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