Autor Beitrag
lordsocke
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 20.08.17 20:57 
Hallo,
das hier ist mein erster Post in diesem Forum und ich hoffe im richtigen Bereich, deswegen bitte ich um Nachsicht.

Also, wir haben in der Uni folgende Aufgabe:
Zitat:
Deklarieren Sie ausgehend von der angegebenen Typdeklaration und dem angegebenen Prozedurkopf die Prozedur LoescheNamen.

type TGeschlecht = (maennlich, weiblich);
procedure LoescheNamen (var Eingabe : string; Geschlecht : TGeschlecht);

Im String-Wert von Eingabe soll die Zeichenfolge gelöscht werden, die sich jeweils an alle Vorkommen der Zeichenfolge 'Herr ' (wenn der Parameter Geschlecht den Wert maennlich hat) oder an die Zeichenfolge 'Frau ' (wenn der Parameter Geschlecht den Wert weiblich hat) anschließt und sich bis zum nächsten Leerzeichen erstreckt. Anstelle der gelöschten Zeichenfolge soll ein Fragezeichen in den String-Wert von Eingabe eingefügt werden.
Wenn 'Herr ' bzw. 'Frau ' ganz am Ende des String-Werts von Eingabe stehen soll, dort natürlich nichts mehr gelöscht/eingesetzt werden.
Zur Vereinfachung können Sie ansonsten davon ausgehen, dass hinter 'Herr ' bzw. 'Frau ' eine Zeichenfolge kommt, die an irgendeiner Stelle sicher ein Leerzeichen enthält, bis zu dem dann gelöscht werden soll.


Beispiel für die Wirkung der Prozedur:
Parameter Eingabe
'Herr Maier u. Herr Müller treffen Frau Schmidt dort.' ParameterGeschlecht maennlich
beim Aufruf

Parameter Eingabe nach Aufruf
'Herr ? u. Herr ? treffen Frau Schmidt dort.'

'Herr Maier u. Herr Müller treffen Frau Schmidt dort.' Parameter Geschlecht weiblich
Parameter Eingabe beim Aufruf

'Herr Maier u. Herr Müller treffen Frau ? dort.'

Ich habe das jetzt ungefähr so gelöst:
1. Ich nach dem Geschlecht und lege dieses zugewiesen auf "Frau" oder "Mann" in einer Variablen ab.
2. Ich suche nach eben diesem in meinem String
3. Ich addiere +5 auf diesen Wert und bekomme den Anfang des Wortes nach Frau/Mann
4. Ich gucke mit einem weiteren Pos nach dem nächsten Leerzeichen nach Frau/Mann
5. Ich ziehe die beiden von einander ab löschen einfügen bla bla

Aber ich kann mir nicht vorstellen das die Lösung in irgendeiner Form richtig ist.
Es dürfen keine Funktionen, außer den Standartdingern verwendet werden. (Stringreplace etc.)
Wäre super wenn mir jemand helfen kann!

Moderiert von user profile iconNarses: Beitragsformatierung überarbeitet: code- gegen quote-Tag getauscht.
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: Mo 21.08.17 08:20 
Moin... 8)
Willkommen... :welcome:

Zitat:
wir haben in der Uni

Ich finde es gut das nicht nur der Mainstream wie Java gelehrt wird. :party:

Zum Thema:
Zitat:
Ich habe das jetzt ungefähr so gelöst:

Im Prinzip gut soweit...

Zitat:
Aber ich kann mir nicht vorstellen das die Lösung in irgendeiner Form richtig ist.

...kommt denn das raus was du willst? Viele Wege führen nach Rom. :zustimm: Wenn du den Quelltext einstellst, dann können wir die Feinheiten besprechen.

PS:
Wo liegt die Grenze was denn "Standard" ist? Für mich zählen auch PosEx und StringReplace dazu... :zwinker:

PS2:
In der Uni seid doch ihr dem Englischem mächtig...oder? :zwinker: Wer hat denn die Aufgabe erstellt? In der Programmierei ist Englisch die "universelle" Eingabesprache und nicht Deutsch. Oder hast du schon mal einen chinesischen Programmierer gesehen der chinesisch programmiert. :zwinker: Dann hat das ganze einen Mini Syntaxfehler. TGeschlecht = (maennlich, weiblich) Enums sollten (nicht müssen) einen gleichen Präfix haben... Ich würde das zu TGender = (genMale, genFemale) machen. Da hat man auch mit Umlauten weniger Probleme.

:wave: