Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Drei Chinesen mit dem Kontrabass (https://www.delphipraxis.net/105178-drei-chinesen-mit-dem-kontrabass.html)

Oimeldoimel 17. Dez 2007 15:50


Drei Chinesen mit dem Kontrabass
 
Guten Tag liebe Leute,

ich stehe vor folgendem Problem, dass ich die Aufgabe bekommen habe....
ein Programm zu erstellen mit Delphi, das nach der Eingabe der Liedzeile:
"Drei Chinesen mit dem Kontrabass" und der Wahl des Vokals A E I O U
eine neue Liedtextzeile ausgibt in der alle Vokale ersetzen wurden....

z.B alle Vokale werden durchs I ersetzt:
Drii Chinisin mit dim Kintribiss

Wie setzt man das nun erstmal in ein Struktogramm um und dann anschließend in einen Delphi-
quelltext.

Würde mich sehr auf Antworten freuen:)
mfg oimel

DeddyH 17. Dez 2007 15:54

Re: Drei Chinesen mit dem Kontrabass
 
Das geht mit einer einfachen Schleife (String durchgehen, Zeichen auf Vokal prüfen und ggf. ersetzen).

P.S: Willkommen in der DP :dp:

mkinzler 17. Dez 2007 15:59

Re: Drei Chinesen mit dem Kontrabass
 
Oder in einem Rutsch.

Die Muhkuh 17. Dez 2007 16:01

Re: Drei Chinesen mit dem Kontrabass
 
Für ein Struktogramm bietet sich eine For-Schleife an (siehe DeddyH), im (Delphi-)Source bietet sich die Funktion "StringReplace" an.

sirius 17. Dez 2007 16:01

Re: Drei Chinesen mit dem Kontrabass
 
Zitat:

Zitat von mkinzler
Oder in einem Rutsch.

in so 1 bis 5 stringreplacerutschen :mrgreen: Dann wird das Struktogramm aber ein bisschen fad.

DeddyH 17. Dez 2007 16:03

Re: Drei Chinesen mit dem Kontrabass
 
StringReplace dürfte intern auch mit einer Schleife arbeiten.

STS301 17. Dez 2007 16:04

Re: Drei Chinesen mit dem Kontrabass
 
oder abfragen ob es ein Vokal ist und dann ihn statt den Vokalen einfügen
zb.

Delphi-Quellcode:
Showmessage('Dr'+edit1.text+edit1.text+' Ch'....) //zwar nicht die beste, aber die einfachste Methode

angos 17. Dez 2007 16:36

Re: Drei Chinesen mit dem Kontrabass
 
Zitat:

Zitat von STS301
oder abfragen ob es ein Vokal ist und dann ihn statt den Vokalen einfügen
zb.

Delphi-Quellcode:
Showmessage('Dr'+edit1.text+edit1.text+' Ch'....) //zwar nicht die beste, aber die einfachste Methode

... ich gehe davon aus, das durch die aufgabe etwas beigebracht werden soll..., und das hier ist zwar eine möglichkeit die für wahrscheinlich jeden ersichtlich ist, aber so ziemlich das schlechteste was man machen kann (man lernt nichts und wird durch stupides hundertfaches tippen des selben wertes eher gefrustet als alles andere ;) ), eine schleife ist da doch schon wesentlich angebrachter ;) und wird auch bei dem ein oder anderem ein lichtlein aufgehen lassen.

Gruß
Ansgar

STS301 17. Dez 2007 16:38

Re: Drei Chinesen mit dem Kontrabass
 
wie gesagt, das ist die einfachste

vlees91 17. Dez 2007 16:51

Re: Drei Chinesen mit dem Kontrabass
 
Pseudo Code
Delphi-Quellcode:
function ersetzInString(text: String, vokal: Char): String;
var
  position: integer;
  vokale: array['a', 'e', 'i', 'o', 'u'] of Char;
  neuerText: string;
begin
  neuerText := '';
  for position := 1 to count(text) - 1 do
  begin
    if text[position] not in vokale then             //ist das kein Vokal? (warum kein? weil man normalerweise das ins if setzt, was am oeftesten passiert
      neuerText := neuerText + text[position]        //alter Buchstabe dran; ACHTUNG siehe unten
    else                                             //und hier was weniger oft passiert
      neuerText := neuerText + vokal;                //neuer Vokal dran; ACHTUNG siehe unten
  end;
  result := neuerText;                                  //zurueckgeben
end;
hab seit langem nicht mit Delphi gearbeitet und da ich auch grade keins hier hab weiss ich niccht ob das hier funktionieren wird.

bei dem ACHTUNG: hier muss man um das text[position] bzw. vokal ein String(...) setzen, da es sonst ein inkompatibeler Typ ist (String und Char).


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.
Seite 1 von 2  1 2      

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