• Hallo
    ich muss zu Hause ein Programm entwickeln das aus einem Text die vokale heraus sucht und sie durch andere Buschstaben ersetzt. Ich habe leider gar keine Idee wie ich das anstellen soll. Wäre echt nett von euch wenn ihr mir dabei behilflich sein könntet.


    lg

  • Du brauchst ein eingabe feld und evtl noch ein button, dem du ein e Event-Methode zuordnest. Also eine Methode die ausgeführt wird wenn man beispielsweise auf den Button klickt.


    Aus dem Textfeld erhälst du ja eine Zeichenkette. Je nach aufgabenstellung kannst du nun durch die Replace-Funktion alle a s os usw durch andere Zeichen ersetzen lassen oder du machst es manuell und gehst mithilfe einer Zählschleife jedes Zeichen der Zeichenkette selbst durch (die Replace-Funktion macht das ebenfalls so, nur in Assambler glaub ich). Du überprüfst nun jedes Zeichen ob es ein Vokal ist und ersetzt es gegebenfalls durch ein anderes zeichen.

  • ich denke nicht dass die bevorzugte Variante des Lehrers die Replace-Funktion ist, viel mehr soll man sie durch die erwähnte Zählschleifen-Konstruktion selbst nachbauen. So dass man den direkt Zugriff auf short-Strings mit Längen kleiner 255 Bytes lernt.


    Es gibt halt viele Varianten das Problem zu lösen. Da müsste man schon die Aufgabenstellung Wort für Wort kennen.

  • Nein, willst du das mithilfe der Replace-Funktion lösen oder willst du die Zeichen selber per Hand tauschen (unter verwendung von Pascal-Strings).


    Und sollen alle as gegen denselben Buchstaben getauscht werden oder soll jedes Vorkommen eine Vokals anders getauscht werden?


    Wie lautet denn die exakte Aufgabenstellung?

  • Also die genaue Aufgabenstellung lautet: Gesucht ist ein Programm, das alle in einem Text vorkommenden Vokale durch ein vom Benutzer ausgewählten zeichen ersetzt.
    Ich denke mal wir sollen das mithilfe der Pascal Strings tauschen, weil wir das mit der Replace Funktion noch nicht gemacht haben.

  • OK, also alle Vokale gegen EIN anderes Zeichen.


    Schon einen Vorschlag für die Abfrage ob es ein Vokal ist?


    Man könnte das über mehere Abfragen (z.B. Case ) oder über einen Vergleich ob das Zeichen in einer definierten Menge ist lösen

  • Ausnahmsweise


    Hier eine einfache Version die alle kleinen Vokale mithilfen einer Menge tauscht


    [PRE]
    procedure Tauschen(Zeichenkette:string);
    var Zeichenkette : String;
    i : integer;
    Ersatzzeichen : char;
    Vokale : set of char;
    begin
    Vokale := ['a','e','i','o','u'];
    Ersatzzeichen := '#';
    for i:=0 to Length(Zeichenkette) do begin
    If Zeichenkette[i] in Vokale then Zeichenkette[i] := Ersatzzeichen;
    end;
    end;[/PRE]

  • Ausnahmsweise


    Hier eine einfache Version die alle kleinen Vokale mithilfen einer Menge tauscht


    [PRE]
    procedure Tauschen(Zeichenkette:string);
    var Zeichenkette : String;
    i : integer;
    Ersatzzeichen : char;
    Vokale : set of char;
    begin
    Vokale := ['a','e','i','o','u'];
    Ersatzzeichen := '#';
    for i:=0 to Length(Zeichenkette) do begin
    If Zeichenkette[i] in Vokale then Zeichenkette[i] := Ersatzzeichen;
    end;
    end;[/PRE]

  • ok erst mal vielen dank. Ich hätte da aber noch ein paar fragen.
    Muss ich da nicht noch was eingeben, das es den Text erst mal aus dem Edit Fenster heraus liest?
    Und zweitens, wie kann ich das Editfenster frößer machen?

  • der Text in der Edit-Box mit dem namen Edit1 liest du über Edit1.Text


    lesen:
    --> Zeichenkette := Edit1.Text;


    schreiben:


    --> Edit1.Text:= Zeichenkette;




    DIe Edit-Box machst du am besten im entsprechenden Fenster größer ähnlich wie normale Fenster. Anklicken und dann die Kanten ziehen.