Delphi-PRAXiS
Seite 3 von 7     123 45     Letzte »    

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

Re: Vokale Zählen
 
Danke Sharky ist echt nett gemeint von dir aber soviel verständniss darfst du von mir da nicht erwarten das ich das verstehe sorry.ich kenn die grundfunktionen ja nichtmal richtig wie ich bemerkt hatte. s soll was ganz einfaches sein meinte mein Lehrer aber ich versteh es trozdem irgendwie nicht sorry.

userF 18. Jun 2006 11:47

Re: Vokale Zählen
 
Nun hab ich das so gemacht aber es geht irgendwie trozdem nicht

[delphi]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
eingabe: TEdit;
vokale: TLabel;
Label2: TLabel;
ausgabevokale: TEdit;
ausgabekonsonanten: TEdit;
zaehlen: TButton;
schliessen: TButton;
procedure zaehlenClick(Sender: TObject);
procedure schliessenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
var satz:string;
procedure TForm1.BtnZaehlenClick(Sender: TObject);
var
i: Integer;
VokNum, KonstNum: Integer;
Satz: string;
begin
VokNum := 0;
KonstNum := 0;

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

for i := 1 to Length(Satz) do
begin
if Satz[i] in ['a', 'e', 'i', 'o', 'u'] then
inc(VokNum)
else
inc(KonstNum);
end;

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

3_of_8 18. Jun 2006 11:53

Re: Vokale Zählen
 
@SirThornberry: Meine Lösung beachtet Groß- und Kleinschreibung.

Noobinator 18. Jun 2006 11:55

Re: Vokale Zählen
 
Zitat:

Zitat von userF
Nun hab ich das so gemacht aber es geht irgendwie trozdem nicht

Delphi-Quellcode:
  for i := 1 to Length(Satz) do
  begin
    if Satz[i] in ['a', 'e', 'i', 'o', 'u'] then
      inc(VokNum)
    else
      inc(KonstNum);
  end;
du definierst jedes zeichen außer die Vokale als Konsonanten, aber auch Leerzeichen und Satzzeichen sind zeichen.

sonst finde ich keinen Fehler

3_of_8 18. Jun 2006 12:04

Re: Vokale Zählen
 
Hast du dem Ereignis OnClick bei deinem Button auch die Methode zaehlenClick zugewiesen?

semo 18. Jun 2006 12:05

Re: Vokale Zählen
 
definiere einmal bitte "es geht nicht" genauer....

userF 18. Jun 2006 12:11

Re: Vokale Zählen
 
Das habe ich nun,ob es so richtig sein kann weiß ich selbst noch nicht.Wollte Eure meinung dazu mal lesen.

Delphi-Quellcode:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    eingabe: TEdit;
    vokale: TLabel;
    Label2: TLabel;
    ausgabevokale: TEdit;
    ausgabekonsonanten: TEdit;
    zaehlen: TButton;
    schliessen: TButton;
    procedure zaehlenClick(Sender: TObject);
    procedure schliessenClick(Sender: TObject);
  private
    { Private-Deklarationen } 
  public
    { Public-Deklarationen } 
  end;
var
  Form1: TForm1;
implementation
var satz:string;

procedure TForm1.BtnZaehlenClick(Sender: TObject);
var
  i: Integer;
  VokNum, KonstNum: Integer;
  Satz: string;
begin
  VokNum := 0;
  KonstNum := 0;

  // Groß-/Kleinschreibung ignorieren
  Satz := AnsiLowerCase(EdtSatz.Text);
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
        inc(vokal;
      else
       inc(konsonant);
end;

  LblVokNum.Caption := IntToStr(VokNum);
  LblKonstNum.Caption := IntToStr(KonstNum);
end;
[edit=sakura] [delphi]-Tag geschlossen! Mfg, sakura[/edit]

semo 18. Jun 2006 12:25

Re: Vokale Zählen
 
erstens: wenn du quelltext postest, dann nutze bitte den button "Delphi-Code" hier oben um den Quelltext richtig zu formatieren, damit er schön lesbar ist, danke!

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
      inc(KonstNum);


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

end.
So funktioniert es, da waren ein Haufen kleine Fehler drin. Wenn du kompilierst dann wirft dir der Compiler Meldungen aus. Wenn du diese nachverfolgst und einen nach dem anderen behebst, gelangst du auch allein ans Ziel.
Programmieren ist nun mal eine Tätigkeit die Geduld und Aufmerksamkeit abfordert.

userF 18. Jun 2006 12:31

Re: Vokale Zählen
 
Danke dir computer-glossar.de. ich schau mir das eben mal an

Noobinator 18. Jun 2006 12:37

Re: Vokale Zählen
 
Delphi-Quellcode:
....
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
      inc(KonstNum);


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

....
durchlaufen wir mal den Satz: " Hallo du! " mit dem code:

dann erkennt er 3 x Vokal: a o u
aber er erkennt 6x Konsonat: H L L Leerzeichen D !

der fehler ist Hier:
Delphi-Quellcode:
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
      inc(vokal)
    else
      inc(KonstNum);
jedes Zeichen was kein Vokal ist, ist ein Konsonant.

das müsste so aussehen:
Delphi-Quellcode:
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
      inc(vokal)
    else
if satz[i] in ['a'..'z'] then
      inc(KonstNum);


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Seite 3 von 7     123 45     Letzte »    

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