Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

...Anfänger!!

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gdgutknecht
Gast





BeitragVerfasst am: 21.10.2004, 17:27    Titel: ...Anfänger!! Antworten mit Zitat

Hi Leutz!
Ich hab da eigentlich ein ganz simples problem, aber ich komm damit net zu rande! ziel isses die häufigkeit der zeichen eines strigs zu ermitteln. Also wenn die zeichenfolge "hallo" ist, dann soll das ergebnis 1(1mal h); 1(1mal a); 2(2mal l) usw sein.
ich hab dem so probiert: mein hauptprog inputted den string und gibt ihn zerteilt (mid$) buchstabe für buchstabe an eine sub weiter, die dann mit instr rausfindet, an wlecher stelle der buchst. steht (bei "hallo" also : 12334)
un weiter gehts net. brauch ich neue ansatz, odr kann ich so weitermachen (wie!!)

danke für alle hilfe!!

woody,aligina etc. mit dem Kopf durch die Mauer wollen
Nach oben
ChemicalWarfare



Anmeldungsdatum: 15.09.2004
Beiträge: 152

BeitragVerfasst am: 21.10.2004, 17:50    Titel: Antworten mit Zitat

dim BS(255) as integer

String$ = "Hello, world!"
for i = 1 to len(String$)
BSNr = asc(mid$(String, i, 1))
BS(BSNr) = BS(BSNr) + 1
next

hab jetzt nicht getestet

//edit: Natürlich kannst du das Array einschränken, z.B. dim BS(65 to 90), wenn mit Zahlen, dann dim BS(48 to 90)
_________________
Er ist ein Wunder!
Nein, er ist eine Missgeburt.


Zuletzt bearbeitet von ChemicalWarfare am 21.10.2004, 18:03, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 21.10.2004, 17:55    Titel: Ja, so kanns gehen Antworten mit Zitat

Hallo.

CW's Lösung ist schon ganz gut.
Zur Erklärung des Prinzips: Zu jedem Buchstaben wird die Häufigkeit in ein Array gespeichert.

Wenn die Groß-/Kleinschreibung nicht beachtet werden soll, musst du anstelle von ASC(MID$(String, i, 1)) ASC(UCASE$(MID$(String, i, 1))) nehmen.

Aber du musst unbedingt die Variable String gegen irgendeinen anderen Namen ersetzen, da String eine vordefinierte Basic-Funktion ist. Nimm anstelle davon MeinString oder sowas. zwinkern

Dann kannst du damit die Häufigkeit anzeigen lassen:

Code:
'Anzeige-Schleife für Nicht-Case-Sensitive!!
FOR i% = 65 TO 90
 PRINT "Das "; CHR$(i%); " kam "; LTRIM$(STR$(BS(i%))); "x vor."
NEXT i%
SLEEP


edit: Nimm doch das nächste mal einen aussagekräftigen Betreff, gdgutknecht... zwinkern

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 21.10.2004, 18:07    Titel: AW Antworten mit Zitat

Hallo.

@CW:

Zitat:
//edit: Natürlich kannst du das Array einschränken, z.B. dim BS(65 to 90), wenn mit Zahlen, dann dim BS(48 to 90)


Code:
DIM BS(65 TO 90) AS STRING
MeinString$ = "Hello, world!"
for i% = 1 to len(MeinString$)
BSNr% = asc(mid$(MeinString$, i%, 1))
IF BsNr%>64 AND BsNr% <91 THEN BS(BSNr%) = BS(BSNr%) + 1
next i%


Wenn man das einfach so macht, und in dem String ein ! drinvorkommt, liefert QB aber bei BS(ASC("!")) einen Fehler! Da müsste man also vorher erst überprüfen lassen, ob das Zeichen OK ist. zwinkern

Das Programm oben geht übringens ohne Fehler.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!


Zuletzt bearbeitet von Sebastian am 21.10.2004, 18:10, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChemicalWarfare



Anmeldungsdatum: 15.09.2004
Beiträge: 152

BeitragVerfasst am: 21.10.2004, 18:10    Titel: Antworten mit Zitat

Klar, aber ich meinte "Du KANNST es einschränken"...jetzt überleg mal was ein schreibfauler Typ wie ich damit impliziere...
Aber Du hast recht, ich hätte es hinschreiben sollen.
_________________
Er ist ein Wunder!
Nein, er ist eine Missgeburt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 21.10.2004, 18:11    Titel: OK Antworten mit Zitat

OK, OK... lächeln

Aber das weiß gdgutknecht vielleicht nicht.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Menlow



Anmeldungsdatum: 21.10.2004
Beiträge: 11

BeitragVerfasst am: 21.10.2004, 18:50    Titel: Antworten mit Zitat

Mal eine kleine Frage: Wie kann ich die länge von einem String herausfinden?

Also, wie viele buchstaben in dem wort sind...

Menlow
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 21.10.2004, 18:56    Titel: Antworten mit Zitat

Zitat:
Mal eine kleine Frage: Wie kann ich die länge von einem String herausfinden?

Also, wie viele buchstaben in dem wort sind...

Menlow
normalerweise solltest du dafür nen extra thread aufmachen lächeln Aber naja.

laenge = LEN(MeinString$)

Grüßle, Mecki
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
ChemicalWarfare



Anmeldungsdatum: 15.09.2004
Beiträge: 152

BeitragVerfasst am: 21.10.2004, 18:57    Titel: Antworten mit Zitat

Guck mal oben im Code...
Zitat:

for i = 1 to len(String$)

Hast du's?

Auflösung: len()

//edit: Ach mist, zu spät
_________________
Er ist ein Wunder!
Nein, er ist eine Missgeburt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Menlow



Anmeldungsdatum: 21.10.2004
Beiträge: 11

BeitragVerfasst am: 21.10.2004, 19:13    Titel: Antworten mit Zitat

ja, es geht

danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gdgutknecht
Gast





BeitragVerfasst am: 25.10.2004, 17:02    Titel: DANKE!! Antworten mit Zitat

Hey Leute, vielen Dank an euch alle.
'sebastian', dein Stückchen Code hat mir sehr geholfen.

Gruß GdG. lächeln
Nach oben
ChemicalWarfare



Anmeldungsdatum: 15.09.2004
Beiträge: 152

BeitragVerfasst am: 26.10.2004, 20:22    Titel: Antworten mit Zitat

Jetzt bin ich aber beleidigt zwinkern
_________________
Er ist ein Wunder!
Nein, er ist eine Missgeburt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz