![]() |
AW: Vokale entfernen
Also soll ich die "While >= length(Text)" schreiben?
Das beschriebene Index hatten wir in Verbindung mit Delete noch gar nicht. Deswegen hab ich grad voll das Problem eure Lösungen so zu verstehen... |
AW: Vokale entfernen
... welcher der folgenden Begriffe sagt die denn was:
- rekusiv - Menge - pos({code}) - if ...or... then je nach dem welche du kennst kann man einen Ansatz herausarbeiten |
AW: Vokale entfernen
Zitat:
einfach statt Delete(Text,a) ein Delete(Text,a,1) machen. Das heißt soviel wie: Lösche von Text, ab der Stelle a, 1 Stelle. Edit: Warum wird hier eigentlich ständig um den heißen Brei herumgeredet? *duck_und_weglauf MfG |
AW: Vokale entfernen
Liste der Anhänge anzeigen (Anzahl: 1)
Habs, als rekursive Lösung.
d.h. das sich die procedure oder hier function in sich selbst aufruft. das funktioniert hier z.B. so: Ist der String leer? -Nein Ist der erste Buchstabe ein Vokal? -Ja : lösche ihn und frage erneut -Nein : merke ihn dir _________lösche den ersten Buchstaben _________gebe den gemerkten Buchstaben mit dem ergebniss einer erneuten prüfung aus -Ja tue nichts Also für das Wort 'Vokal' ergibt sich folgendes: ist V ein Vokal? -Nein -result1:=V+ ist o ein Vokal? _________-Ja _________-result2:= ist k ein Vokal? __________________-Nein __________________-result3:=k+ ist a ein Vokal? ___________________________-Ja ___________________________-result4:= ist l ein Vokal? ____________________________________-Nein ____________________________________-result5:=l _______________________________________________res ult1:=Vkl ich glaube der Rest wird spätestens dann klar wenn du dir den Quellcode ansiehst... :arrow: |
AW: Vokale entfernen
So, wir haben heute in der Schule die Lösung bekommen, mit Case haben wir vorher aber auch nicht gearbeitet, so sieht mein Text jetzt aus:
Delphi-Quellcode:
Ich musste ein bisschen selbst dazu schreiben und langsam wird es verständlicher mit Delphi umzugehen...
procedure TForm1.EntvokalisierenClick(Sender: TObject);
var Text :String ; i :Integer ; begin Text := Normaltext.Text ; i := 1 ; While i <= length(Text) Do Begin Case Text[i] of 'A','E','I','O','U','a','e','i','o','u' : Begin Delete (Text, i, 1) ; i := i - 1 ; end; end; i := i + 1 ; AusgabeText.Text := Text; end; end; end. |
AW: Vokale entfernen
Das Hochzählen von i gehört aber mit in die While-Schleife, oder nicht? ;)
|
AW: Vokale entfernen
Und beim Löschen unbedingt die Schleife umdrehen!
|
AW: Vokale entfernen
Wieso? Es wird ja keine For-Schleife verwendet, da ist das in der Tat notwendig.
|
AW: Vokale entfernen
Zitat:
Delphi-Quellcode:
i := 1;
while i <= length(Text) do case Text[i] of 'A','E','I','O','U','a','e','i','o','u' : Delete(Text, i, 1); else inc(i); // i := i + 1; end; |
AW: Vokale entfernen
:wall: Stimmt, das liegt an der "kreativen" Einrückung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz