Zum Inhalt springen

Wörter eines Satzes zählen


IYTI

Empfohlene Beiträge

Hallo,

ich schreibe morgen eine EDV Klausur und mache Übungsaufgaben zu VB

folgende Aufgabenstellung:

/////

Schreiben Sie ein Funktionsunterprogramm, dass die Wörter eines Satzes zählt. Schreiben Sie ferner eine kleine Prozedur, mit der das Funktionsunterprogramm getestet wird.

/////

mein bisheriger Ansatz:

Sub wörter()

Dim satz As String

Dim liste As String

Dim leerzeichen As String

Dim element As String

satz = InputBox("Bitte geben sie ihren Satz ein")

leerzeichen = " "

liste = Split(satz, leerzeichen)

end sub

wie kann ich jetzt am besten die Wörter zählen? Programmiere mit Excel also bitte berücksichtigen (ohne Form etc.) nur Inputboxen und so

Link zu diesem Kommentar
Auf anderen Seiten teilen

wie Klotzkopp schon erwähnt hat: du darfst "liste" nicht als datentyp "String" definieren, da die funktion Split als ergebnis keinen String, sondern ein Array (oder Variant-Array) liefert - abhängig von der nicht angegebenen verwendeten VB-version.

weiters soll laut aufgabenstellung eine funktion ("Funktionsunterprogramm"), keine prozedur ("Sub") erarbeitet werden. erstere gibt normalerweise ein ergebnis zurück - es ist anhand der aufgabe anzunehmen, dass damit die anzahl der wörter des satzes zurückgegeben werden sollen, damit die aufrufende "kleine Prozedur" ("Sub") dies auswerten kann.

die weiters erwähnte funktion Ubound liefert dir die anzahl der elemente (wörter) in einem array zurück.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dim liste As String

liste = Split(satz, leerzeichen)

wie gesagt, du kannst daten eines Array nicht in den datentyp String zwängen. was du bekommst, ist ein fehler, dass VB(A) die datentypen nicht umwandeln kann. verwende ein array - welches mit einem variablennamen und abschliessenden klammern '()' deklariert wird, oder verwende ein Array vom typ Variant.

Sub wörter()

meiner meinung nach ist hier eine funktion erfoderlich, keine prozedur. persönlich finde ich ausserdem umlaute im funktionen und variablennamen unschön.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hab das jetzt so gemacht:


Sub splitstring()


Dim Text As String, Punkt As String

Dim Position As Integer, Wörter As Integer, Zeichen As Integer


Text = InputBox("Bitte Text eingeben und mit einem Punkt abschließen!")

Position = 1

Wörter = 1

Zeichen = 0

Text = Trim(Text)


Do Until Punkt = "."

Punkt = Mid(Text, Position, 1)

Position = Position + 1

If Punkt = " " Then

    Wörter = Wörter + 1

Else

    Zeichen = Zeichen + 1

End If

Loop


MsgBox ("Es sind " & Wörter & " Wörter im Satz enthalten, außerdem " & Zeichen & " Zeihen mit Punkt und ohne Leerzeichen.")


End Sub

das geht auch und ganz ohne arrays :) natürlich mit ein paar einschränkungen (Punkt am ende, nur ein leerzeichen zwischen den Wörtern etc.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

dir ist aber schon klar dass das coding fürn Popo ist, oder? :D

mach das lieber mit split, da haste was ordentliches... oder frage die wörter selber ab, aber bitte nicht die leerzeichen :(

und was soll das mit dem punkt? wenn die position größer ist als die länge des strings ist schluss... nicht wenn ein punkt kommt

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...