Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

größten erlaubten index? sry hab bisher nur die absoluten Grundlagen von visual basic drauf wie variablen difinieren, hier und da mal ne schleife, if anweisung etc ,.. kannst du das für mich verständlicher ausdrücken? vllt ein beispiel?

Geschrieben

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

Geschrieben

ich habe doch geschrieben das ich mit excel programmiere, keine ahnung was das für ne version ist. Studiere maschinenbau da ist EDV nur dafür da das mal das mal gehört hat.

hab auch keinen blassen schimmer was arrays sind !? nie gemacht

danke

Geschrieben
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

Geschrieben

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.)

Geschrieben

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

Geschrieben

lol ja sicherlich ist die programmierung fürn mors aber ich bin halt auch kein Fachinformatiker. für morgen solls wohl reichen hoffe ich mal.

aber das mit den Längen ist ne gute Idee :)

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...