Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Strict On
- Option Explicit On
- Imports System.Console
- Module Module1
- 'Deklarieren Sie die Prozedur Einlesen, die vom Benutzer die Eingabe von
- 'Zeichenfolgen verlangt
- 'und diese als Funktionsergebnis zurück liefert. Die Eingabe wird solange
- 'wiederholt, bis folgende
- 'Kriterien erfüllt sind:
- '- Erlaubte Zeichen sind Leerzeichen, Buchstaben, Punkt, Ausrufezeichen,
- 'Fragezeichen, Doppelpunkt, Ziffern.
- '- Am Ende der Eingabe steht ein Punkt, Ausrufezeichen oder Fragezeichen.
- Sub Einlesen(ByRef satz As String)
- Dim i As Integer
- satz = ""
- Do
- WriteLine("Bitte geben sie einen Satz ein: ")
- satz = ReadLine()
- i = 0
- Do While i < satz.Length AndAlso UCase(satz.Chars(i)) Like "[A-Z0-9 :.?!]"
- i += 1
- Loop
- If Not satz Like "*[.?!]" Or i < satz.Length Then
- WriteLine("Eingabe ist fehlerhaft")
- End If
- Loop Until satz Like "*[?!.]" And i = satz.Length
- End Sub
- 'Es gilt: Ein Text (eine beliebige Zeichenfolge als String-Wert) enthält
- 'einen oder mehrere Sätze.
- 'Jeder Satz In diesem Text ist entweder durch einen Punkt, ein Fragezeichen
- 'oder ein Ausrufezeichen
- 'abgeschlossen. Deklarieren Sie ausgehend vom unten angegebenen
- 'Funktionskopf die
- 'Funktion SatzEnde, welche die Position des ersten In Text vorkommenden
- 'Punktes, Fragezeichens
- 'oder Ausrufezeichens ermittelt (und damit das Ende des ersten In Text
- 'enthaltenen Satzes).
- 'Ermitteln Sie die Position, indem Sie den String-Wert von Text
- 'zeichenweise durchlaufen. Die
- 'ermittelte Position soll als Funktionsergebnis zurückgeliefert werden (
- 'Positionswerte von 1 an
- 'gezählt).
- Function SatzEnde(Text As String) As Integer
- Dim index As Integer = 0
- Do While index < Text.Length AndAlso Not Text.Chars(index) Like "[.?!]"
- index += 1
- Loop
- SatzEnde = index + 1
- End Function
- 'Deklarieren Sie ausgehend vom unten angegebenen Funktionskopf die Funktion
- 'ErsterSatz, welche
- 'den ersten In Text enthaltenen (und mit einem entsprechenden Zeichen
- 'abgeschlossenen)
- 'Satz als Funktionsergebnis liefert. Außerdem soll dieser erste Satz durch
- 'die Funktion aus dem
- 'Wert von Text entfernt werden (einschließlich Satzendezeichen). Nutzen Sie
- 'zur Realisierung
- 'dieser Funktion die Funktion SatzEnde
- Function ErsterSatz(ByRef Text As String) As String
- Dim startindex = 0
- ErsterSatz = Text.Substring(0, SatzEnde(Text))
- Text = Text.Remove(0, SatzEnde(Text))
- End Function
- 'Deklarieren Sie eine Funktion AlleSaetze, die ausgehend von einem als
- 'String-Wert übergebenen
- 'Text alle In diesem Text enthaltenen Sätze als Elemente eines String-
- 'Arrays zurückliefert. Rufen
- 'Sie zur Ermittlung der einzelnen Sätze die deklarierte Funktion ErsterSatz
- 'entsprechend oft auf.
- Function AlleSaetze(saetze As String) As String()
- Dim arr As String()
- Dim i As Integer = 0
- While saetze <> ""
- ReDim Preserve arr(i)
- arr(i) = ErsterSatz(saetze)
- i += 1
- End While
- AlleSaetze = arr
- End Function
- 'Deklarieren Sie ausgehend vom unten angegebenen Funktionskopf die Funktion
- 'IstBuchstabe,
- 'so dass sie das Ergebnis True liefert, wenn der Parameterwert ein großer
- 'Buchstabe (A bis Z)
- 'oder ein kleiner Buchstabe (a bis z) ist. Für alle anderen Zeichen soll
- 'die Funktion False liefern.
- 'Um die maximale Punktzahl zu erreichen, versuchen Sie, den Funktionsrumpf
- 'mit einer einzigen
- 'Anweisung zu realisieren.
- Function IstBuchstabe(c As Char) As Boolean
- IstBuchstabe = UCase(c) Like "[A-Z]"
- End Function
- 'Einführung in die Programmierung - Übung 8
- 'Deklarieren Sie ausgehend vom angegebenen Funktionskopf die Funktion
- 'LoescheWort, die im
- 'String-Wert von Eingabe alle Vorkommen des String-Werts von Loeschwort
- 'durch ... (also drei
- 'Punkte) ersetzt. Die Ersetzung soll jedoch nur an den Stellen erfolgen, an
- 'denen unmittelbar
- 'hinter der zu ersetzenden Zeichenfolge kein Buchstabe (A bis Z oder a bis
- 'z) folgt. Rufen Sie
- 'zur Prüfung, ob ein Buchstabe folgt, die oben deklarierte Funktion
- 'IstBuchstabe auf. Sie können
- 'davon ausgehen, dass hinter dem zu ersetzenden String-Wert In Eingabe
- 'immer noch mindestens
- '1 Zeichen folgt. Die Funktion soll den veränderten String-Wert als
- 'Ergebnis liefern.
- Function LoescheWort(Eingabe As String, LoeschWort As String) As String
- Dim pos As Integer = 1
- Do While InStr(pos, Eingabe, LoeschWort) > 0
- pos = InStr(pos, Eingabe, LoeschWort)
- If Not IstBuchstabe(Eingabe.Chars(pos + LoeschWort.Length - 1)) Then
- Eingabe = Eingabe.Remove(pos - 1, LoeschWort.Length).Insert(pos - 1, "...")
- Else
- pos += LoeschWort.Length
- End If
- Loop
- LoescheWort = Eingabe
- End Function
- 'Deklarieren Sie ausgehend von diesem Funktionskopf die Funktion
- 'Anonymisiert, die im Wert
- 'von Eingabe auftretende Namen durch ein X ersetzt. Ein zu ersetzender Name
- 'steht immer
- 'hinter den Zeichen von Anrede, von diesen jedoch mit einem Leerzeichen
- 'abgetrennt. Jeder
- 'Name endet am folgenden Leerzeichen.
- Function Anonymisiert(Eingabe As String, Anrede As String) As String
- Dim position As Integer = 1
- Do While InStr(position, Eingabe, Anrede) > 0
- position = InStr(position, Eingabe, Anrede) + Anrede.Length
- If Eingabe.Chars(position - 1) = " " Then
- Do While position < Eingabe.Length AndAlso Eingabe.Chars(position) <> " "
- Eingabe = Eingabe.Remove(position, 1)
- Loop
- Eingabe = Eingabe.Insert(position, "X")
- End If
- Loop
- Anonymisiert = Eingabe
- End Function
- 'Deklarieren Sie ausgehend von dem unten angegebenen Funktionskopf die
- 'Funktion ErstesWort,
- 'die in dem String-Wert von Eingabe das erste Wort ermittelt, das mit einem
- 'Leerzeichen von der
- 'restlichen Zeichenfolge im String-Wert von Eingabe abgetrennt ist. Die
- 'Funktion soll dieses Wort
- 'als Funktionsergebnis zurückliefern und den String-Wert von Eingabe um
- 'dieses Wort kürzen.
- 'Wenn im String-Wert von Eingabe kein Leerzeichen enthalten ist, soll der
- 'unveränderte Wert
- 'von Eingabe als Funktionsergebnis zurückgeliefert werden und der Wert von
- 'Eingabe auf den
- 'leeren String-Wert gesetzt werden.
- Function ErstesWort(ByRef Eingabe As String) As String
- End Function
- Sub Main()
- Dim menue As Char
- Dim satz As String = ""
- Dim foo, saetze(-1) As String
- Dim loesche, anrede As String
- Do
- WriteLine("A) Eingabe Satz")
- WriteLine("B) Satz zerlegen")
- WriteLine("C) Löschwort einfügen")
- WriteLine("D) Anonymisieren")
- WriteLine("E) Erstes Wort")
- WriteLine("X) Ende")
- Write("Wahl: ")
- menue = CChar(UCase(ReadLine))
- Select Case menue
- Case "A"c
- Einlesen(satz)
- Case "B"c
- saetze = AlleSaetze(satz)
- For Each foo In saetze
- WriteLine(LTrim(foo))
- Next
- Case "C"c
- Write("Bitte das Löschwort eingeben:")
- loesche = ReadLine()
- WriteLine(LoescheWort(satz, loesche))
- Case "D"c
- Write("Bitte die Anrede eingeben:")
- anrede = ReadLine()
- WriteLine(Anonymisiert(satz, anrede))
- Case "E"c
- saetze = AlleSaetze(satz)
- For Each foo In saetze
- 'WriteLine("Erstes Wort:{0}", ErstesWort(foo))
- WriteLine("Restsatz:{0}", foo)
- Next
- End Select
- Loop Until menue = "X"
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement