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.
|
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; |
Re: Vokale Zählen
@SirThornberry: Meine Lösung beachtet Groß- und Kleinschreibung.
|
Re: Vokale Zählen
Zitat:
Delphi-Quellcode:
du definierst jedes zeichen außer die Vokale als Konsonanten, aber auch Leerzeichen und Satzzeichen sind zeichen.
for i := 1 to Length(Satz) do
begin if Satz[i] in ['a', 'e', 'i', 'o', 'u'] then inc(VokNum) else inc(KonstNum); end; sonst finde ich keinen Fehler |
Re: Vokale Zählen
Hast du dem Ereignis OnClick bei deinem Button auch die Methode zaehlenClick zugewiesen?
|
Re: Vokale Zählen
definiere einmal bitte "es geht nicht" genauer....
|
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:
[edit=sakura] [delphi]-Tag geschlossen! Mfg, sakura[/edit]
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; |
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:
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.
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. Programmieren ist nun mal eine Tätigkeit die Geduld und Aufmerksamkeit abfordert. |
Re: Vokale Zählen
Danke dir computer-glossar.de. ich schau mir das eben mal an
|
Re: Vokale Zählen
Delphi-Quellcode:
durchlaufen wir mal den Satz: " Hallo du! " mit dem code:
....
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; .... 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:
jedes Zeichen was kein Vokal ist, ist ein Konsonant.
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
inc(vokal) else inc(KonstNum); 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. |
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