zahl die auf 5 endet überspringe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Hyperion hat geschrieben:(Welcher Basic-Dialekt klappte hier ganz gut für das Syntax-Highlighting? Vergesse ich immer wieder)
BlitzBasic und FreeBasic, denke ich. Das Forum benutzt doch GeSHi?

Edit: Und QBasic/QuickBasic und sdlBasic.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

nomnom hat geschrieben:BlitzBasic und FreeBasic, denke ich. Das Forum benutzt doch GeSHi?

Edit: Und QBasic/QuickBasic und sdlBasic.
"locobasic" wars :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@Hyperion: Ich nehme immer ``locobasic`` bei GeSHi, denn das ist auch so ein „altes” BASIC aus der 8-Bit-Ära; Locomotive BASIC vom Amstrad CPC. Die Syntaxhervorhebung für moderne BASICs funkioniert bei diesen alten Dialekten nicht immer so gut.

Edit: Mist, zu langsam. :-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben: Edit: Mist, zu langsam. :-)
Hehe... hatte nen alten Beitrag von Dir gesucht, gefunden und per "Edit" reingeguckt. War auch in so nem "problemthread" :-D (Artikel 5 GG wird da aufgeführt... herrlich!)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

Ich glaube einen Ansatz, der nur mit einer Modulo-Operation aus kommt, hatten wir noch nicht (in Pascal dieses mal):

Code: Alles auswählen

Program Skip5;
Var i : Byte;
Begin
    For i := 1 To 19 Do If i MOD 10 <> 5 Then WriteLn(i);
End.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich hätte da auch noch was:

Code: Alles auswählen

In [12]: from itertools import cycle

In [38]: cycler = cycle((1, 1, 1, 1, 2, 1, 1, 1, 1))

In [39]: c = 0

In [40]: while c < 20:
    c += cycler.next()
    print c,
   ....:     
   ....:     
1 2 3 4 6 7 8 9 10 11 12 13 14 16 17 18 19 20
:mrgreen:
Zuletzt geändert von Hyperion am Sonntag 8. Januar 2012, 16:27, insgesamt 1-mal geändert.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

BlackJack hat geschrieben:Ich glaube einen Ansatz, der nur mit einer Modulo-Operation aus kommt, hatten wir noch nicht
nomnom hat geschrieben:

Code: Alles auswählen

>>> for i in range(1, 21):
...     if i % 10 != 5:
...             print i
...
:P
BlackJack

@nomnom: Ach verdammt, da hatte ich nicht aufgepasst. :oops:
korkak
User
Beiträge: 29
Registriert: Freitag 30. Dezember 2011, 19:44

nur um das mal als programmierneuling zu verstehen, die beste lösung(oder am verständlichsten für einen anfänger :wink: ) kam doch jetzt von /me mit "endswith" oder?
wenn ich das so laufen lasse wird doch alles mit einer 5 am ende ausgelassen so wie der TE es wollte:

Code: Alles auswählen

for i in range(1, 31):
    if not str(i).endswith('5'):
        print i
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

@korkak: Die meisten würden wohl nomnoms Lösung bevorzugen, da sie sehr intuitiv ist und ohne unnötige Konvertierungen auskommt:

Code: Alles auswählen

for i in range(1, 21):
    if i % 10 != 5:
        print i
Das Leben ist wie ein Tennisball.
korkak
User
Beiträge: 29
Registriert: Freitag 30. Dezember 2011, 19:44

@Eydu

jetzt verstehe ich es auch, um endswith zu benutzen muss man die zahl erst in einen string umwandeln, was offensichtlich nicht so gern gesehen wird.
von modulo hatte ich zwar bereits schonmal gehört aber nicht kapiert wieso ihr das hier einsetzt. jetzt hab ich nachgelesen und rausgefunden das bei Division durch 10, der Rest die letzte Ziffer ist und alles ergibt einen sinn.

wieder was gelernt, cooles forum :P
Antworten