Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vokale Zählen (https://www.delphipraxis.net/71603-vokale-zaehlen.html)

userF 18. Jun 2006 13:02

Re: Vokale Zählen
 
So sollte es korrekt aussehen?

Delphi-Quellcode:
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.

TheAn00bis 18. Jun 2006 13:03

Re: Vokale Zählen
 
Ja, aber warum probierst du es nicht einfach aus?

semo 18. Jun 2006 13:04

Re: Vokale Zählen
 
:thumb:

ich hatte weiter oben n och ne möglichkeit genannt um die satzzeichen zu zählen, dann wird dein ergebnis der konsonanten auch nicht durch enthaltene sonderzeichen verfälscht.

userF 18. Jun 2006 13:05

Re: Vokale Zählen
 
Ich wollte zuerst mal Eure Meinungen dazu lesen wenn es geht.Ich bin ja am austesten und bisher scheint es auch zu funzen

userF 18. Jun 2006 13:06

Re: Vokale Zählen
 
computer-glossar.de wo kann ich das am besten dazufügen deiner meinung nach?

semo 18. Jun 2006 13:09

Re: Vokale Zählen
 
guck dir mal das posting nummer #31 an, dürfte das erste auf der dritten seite sein.

ich hoffe du versuchst auch nachzuvollziehen und kopierst hier nicht nur den code?

userF 18. Jun 2006 14:07

Re: Vokale Zählen
 
Danke computer-glossar.de. Was bringt es mir einfach nur den Code zu Kopieren wenn ich es dann morgen nicht erklären kann wie ich dahin komme. Nein,ehrlich ich muss mich da schon mit dem ganzen Thema auseinandersetzen..Danke für die hilfe hier,ich denk nun komm ich bestimmt besser klar.

userF 18. Jun 2006 21:20

Re: Vokale Zählen
 
Was mach ich nur falsch? kann keiner helfen bitte?

Delphi-Quellcode:
unit zaehlen;

interface

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

type
  TForm1 = class(TForm)
    zaehlen: TButton;
    eingabe: TEdit;
    vokalelabel: TLabel;
    konsonantenlabel: TLabel;
    ausgabevokale: TEdit;
    ausgabekonsonanten: TEdit;
    schliessen: TButton;
    procedure zaehlenClick(Sender: TObject);
    procedure eingabeChange(Sender: TObject);
    procedure schliessenClick(Sender: TObject);
  private
    { Private-Deklarationen } 
  public
    { Public-Deklarationen } 
  end;

var
  Form1: TForm1;

implementation
var i:integer;
    satz:string;
    vokal:integer;
    konsonant:integer;

{$R *.dfm} 

procedure TForm1.schliessenClick(Sender: TObject);
begin
close;
end;

procedure TForm1.eingabeChange(Sender: TObject);
begin
satz:=eingabe.text
end;

procedure TForm1.zaehlenClick(Sender: TObject);
begin
    vokal:=0;
    konsonant:=0;
    for i:=1 to length(satz) do
      if (satz[i]='a') or (satz[i]='e') or (satz[i]='i')
         or (satz[i]='u') or (satz[i]='o') then
        vokal:=1 
      else
       konsonant:=1;
end;

end.

3_of_8 18. Jun 2006 21:24

Re: Vokale Zählen
 
:wall:

Das hatten wir schon mal.

vokal:=1;

Wenn ein Buchstabe ein Vokal ist, weißt du der Variable vokal eine 1 zu.

Hat zur Folge: Wenn im Satz ein Vokal ist, kriegst du am Ende IMMER eine 1 raus, ansonsten 0.

Du musst schreiben vokal:=vokal+1; oder inc(vokal);

Das gleiche gilt bei den Konsonanten.

mkinzler 18. Jun 2006 21:25

Re: Vokale Zählen
 
Man könnte den Eindruck bekommen, du hast all die vielen Beiträge nicht gelesen.

Zitat:

vokal:=1
so wirst du nie mehr als ein vokal finden und natürlich auch nicht mehr als ein Konsonat, obwohl ja alles was nicht kleiner Vokal ist, gleich Konsonant ist ( auch große Vokale).

semo 18. Jun 2006 21:27

Re: Vokale Zählen
 
*räusper*

wir hatten dir doch schon genügend fertige beispiele gepostet.

Delphi-Quellcode:
procedure TForm1.eingabeChange(Sender: TObject);
begin
satz:=eingabe.text
end;
--> dies ist überflüssig, da du ja den satz nur in deiner procedure TForm1.zaehlenClick(Sender: TObject); benötigst.

auch lässt du dir norgendwo ein ergebnis anzeigen, was du doch vorhin schon drin hattest?

es gibt auch due möglichkeit schrittweise durch das programm zu steppen (debugging genannt),
setze dazu einen breakpoint (durch drücken von F5) in der Zeile "begin" der procedure:
Delphi-Quellcode:
procedure TForm1.zaehlenClick(Sender: TObject);
begin
    vokal:=0;
    konsonant:=0;
    for i:=1 to length(satz) do
      if (satz[i]='a') or (satz[i]='e') or (satz[i]='i')
         or (satz[i]='u') or (satz[i]='o') then
        vokal:=1
      else
       konsonant:=1;
end;
danach kannst du mit F8 Zeilenweise durch da sProgramm steppen und dir die Inhalte der Variablen anzeigen lassen.

userF 18. Jun 2006 21:29

Re: Vokale Zählen
 
sorry ich sitze schon den ganzen tag da dran.die ideen waren bisher auch gut zu verwenden nur einige funktionen hatte ich davon noch nicht in der schule und kann die deshalb nicht anwenden und hab versucht die so hinzubekommen das es mit den funktionen klappt die ich kenne.

mkinzler 18. Jun 2006 21:33

Re: Vokale Zählen
 
Du kannst natürlich auch
Delphi-Quellcode:
vokal := vokal +1;
bzw.
Delphi-Quellcode:
konsonant := konsonant + 1;
schreiben.

semo 18. Jun 2006 21:34

Re: Vokale Zählen
 
welche funktionen hattest du denn davon nicht? ist doch alles standard?!
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;
wenn du das AnsiLowerCase nicht hattest, dann musst du nur die Großbuchstaben bei deinen Abfragen berücksichtigen:
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 := 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']) or (satz[i] in ['A'..'Z']) then
    begin
      // unterscheiden zwischen vokalen und Konsonanten
      if (satz[i] in ['a', 'e', 'i', 'u', 'o', '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;

3_of_8 18. Jun 2006 21:35

Re: Vokale Zählen
 
Ich schätze mal, Sets wird er auch noch nicht gehabt haben.

EDIT: Und wenn du ne Funktion noch nicht hattest, sag deinem Lehrer, dass du in die OH geschaut hast.

semo 18. Jun 2006 21:38

Re: Vokale Zählen
 
wenn erkeine sets hatte, dann muss er ja nur seine if-prüfungen erweitern um die Großbuchstaben.....

3_of_8 18. Jun 2006 21:52

Re: Vokale Zählen
 
Das kann ein Problem geben bei den Konsonanten. 42 and's in nem if, uuuh...

semo 18. Jun 2006 21:54

Re: Vokale Zählen
 
wenn der lehrer das so will, kenne da auch so einige exemplare...
die kennen nur bestimmte funktionen und techniken und was anderes wird nicht erlaubt - voll schwachsinnig

mkinzler 18. Jun 2006 21:54

Re: Vokale Zählen
 
Man kann ja auch ein case mit den ASCII-Codes nehmen.

3_of_8 18. Jun 2006 21:59

Re: Vokale Zählen
 
Ich glaube, dass er auch das noch nicht hatte.

mkinzler 18. Jun 2006 22:00

Re: Vokale Zählen
 
userF, kennst du den Case-Befehl?

Hawkeye219 18. Jun 2006 22:02

Re: Vokale Zählen
 
Zitat:

Zitat von 3_of_8
Das kann ein Problem geben bei den Konsonanten. 42 and's in nem if, uuuh...

Wenn er deinem Vorschlag aus Beitrag #15 folgt, kommt er mit deutlich weniger ANDs aus...

Gruß Hawkeye

//Edit: ANDs, nicht IFs...

3_of_8 18. Jun 2006 22:04

Re: Vokale Zählen
 
Wenn... :roll:

Nach einer genauen Analyse bin ich zu dem Schluss gekommen, dass er das wahrscheinlich nicht tun wird.

mkinzler 18. Jun 2006 22:04

Re: Vokale Zählen
 
Zitat:

Wenn er deinem Vorschlag aus Beitrag #15 folgt, kommt er mit deutlich weniger ANDs aus...
Aber halt nicht ohne SETs

Hawkeye219 18. Jun 2006 22:08

Re: Vokale Zählen
 
Delphi-Quellcode:
else if (satz[i] >= 'A') and (satz[i] <= 'Z') then
Aber wenn Manuel Recht behält...

Gruß Hawkeye

EDatabaseError 19. Jun 2006 12:54

Re: Vokale Zählen
 
und jetzt werden auch leerzeichen als konsonant gezählt schau dir doch das was oben steht an...

//Edit :oops: war auf der ersten site und hab die 2. ignoriert schande über mich

userF 19. Jun 2006 14:26

Re: Vokale Zählen
 
hallo,ich bin anfänger leute und ich kenn gerade mal etwas die grundfunktionen. verlangt nicht das ich perfekt bin.ich bin nur der neueinsteiger mehr nicht.und ehrlich ich bin für jede hilfe dankbar.

3_of_8 19. Jun 2006 16:37

Re: Vokale Zählen
 
Das tun wir ja gar nicht, aber wir haben fast schon fertige Lösungen gepostet und mehrfach erklärt, und du machst die gleichen Fehler öfters.

userF 19. Jun 2006 17:31

Re: Vokale Zählen
 
Sorry ich mach diese Fehler ja nur weil ich es auch verstehen möchte was ich da mache und nicht einfach nur Eure lösungsvorschläge Kopieren möchte.Ich muss das für mich eben immer wieder auseinander nehmen und zusammen setzen bis ich begriffen habe um was es geht. sorry das ich mich so dabei anstelle.ich will es doch nur verstehen. Ich musste übrigens die Vorstellung von dem Programm heute in der Schule verschieben weil ich gestern noch bis 2 uhr daran gesessen hatte und das irgendwie kaputt programiert habe. Morgen ist neuer vorstellungstermin dann aber endgültig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr.
Seite 2 von 2     12   

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