Re: Vokale Zählen
Delphi-Quellcode:
auf diese Art kannst du nun noch die sonderzeichen herausbekommen.
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; |
Re: Vokale Zählen
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? |
Re: Vokale Zählen
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:
In deinem Projekt könntest du diese jetzt beliebig oft aufrufen, ohne alles nochmal tippen zu müssen. Aufgerufen würde sie beispielsweise so:
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;
Delphi-Quellcode:
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:
procedure TForm1.Button1Click(Sender: TObject);
var nVok, nKons: integer; begin ZaehleVokUndKons(edit1.text, nVok, nKons); edit2.text := inttostr(nVok); edit3.text := inttostr(nKons) end;
Delphi-Quellcode:
Der Aufruf ist der selbe, wie oben.
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; 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. :D Edit: Verwirrenden Bezeichner "Konst" in "Kons" geändert. |
Re: Vokale Zählen
@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 |
Re: Vokale Zählen
@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. |
Re: Vokale Zählen
Zitat:
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.) |
Re: Vokale Zählen
ok, da geb ich dir recht.
wenns fürn unterricht ist, beeindruckt das sicherlich auch noch den lehrer :thumb: |
Re: Vokale Zählen
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
|
Re: Vokale Zählen
Liste der Anhänge anzeigen (Anzahl: 1)
deinen quelltext markieren, dann einfach auf diesen knopf klicken:
|
Re: Vokale Zählen
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
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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