Totaler Anfänger, Rene Meyers Buch, Aufgabenstellung Kap.3
Übersicht

![]() |
VracasBetreff: Totaler Anfänger, Rene Meyers Buch, Aufgabenstellung Kap.3 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
Ich bin der neue hier ![]() Heiße Christian, komme aus der schönen Pfalz und bin so um die 20ig ![]() Ich interresiere mich schon länger für Spiele Programmierung und habe mir jetzt endlich das Buch "Spiele programmieren mit Blitz Basic" von Rene Meyer geholt. Soweit läuft alles ganz super und die Aufgabenstellung aus Kapitel 2 war auch ruckzuck gelöst. So, nun zu Kapitel 3 und der Aufgabe: " Schreiben sie ein Programm, das die Zahl 1 bis 100 auf den Bildschirm ausgibt. Dabei sollen jeweisl zehn Zahlen in einer Zeile stehen." Ich hab mir dann mal so meine Gedanken gemacht und bin zu diesem Code gekomme: Code: [AUSKLAPPEN] For I = 1 To 100 Write I If I = 10 Then Print "" ElseIf I = 20 Then Print "" ElseIf I = 30 Then Print "" ElseIf I = 40 Then Print "" ElseIf I = 50 Then Print "" ElseIf I = 60 Then Print "" ElseIf I = 70 Then Print "" ElseIf I = 80 Then Print "" ElseIf I = 90 Then Print "" EndIf Next WaitKey Funktioniert auch wunderbar, nur denke ich dass man das ganze auch weitaus einfacher und besser programmieren kann?! Und meine Ausgabe der Zahlen ist auch nicht schön, da ich niemals ein Freizeichen zwischen den einzelnen Zahlen habe. Leider komm ich ums verrecken nicht drauf was ich anders bzw. wie ich es besser coden kann. Ich danke euch schonmal für eure Hilfe! Vracas |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal sehen wie hier der Mini-Code-Kontest darüber ausbricht...
Code: [AUSKLAPPEN] Local i, n
For i=1 To 100 n=n+1 Write(i+" ") If n=10 Then n=0 :Print() Next WaitKey() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
WüstLing |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] Local i P.S.: Mod(ulo) berechnet den Rest einer Division! |
||
![]() |
Vracas |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow das ging ja echt super schnell.
Sieht um längen besser aus und ist auch viiiiel kürzer ![]() Ich danke Euch! Werd mir wohl nochmal die Schleifen anschauen müssen, ist wohl nicht alles hängen geblieben... Nur das mit dem Mod befehl, davon hab ich noch nichts gehört lol. Naja wird auch noch kommen, ich habe ja erst angefangen. Vracas |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na wenigstens einer!
BlitzBasic: [AUSKLAPPEN] Local i Oh, und willkommen im Portal Vracas ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
WüstLing |
![]() Antworten mit Zitat ![]() |
---|---|---|
.. was ich wiederum so lösen würde ![]() BlitzBasic: [AUSKLAPPEN] Local i Edit: Moment - is noch nicht ganz das selbe :p Edit2: Allerdings wäre deine Lösung somit doch etwas übersichtlicher Xeres Herzlich Willkommen Vracas! |
||
- Zuletzt bearbeitet von WüstLing am Mo, Mai 11, 2009 23:49, insgesamt 2-mal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] For x = 0 To 90 Step 10 Der Möglichkeiten gibt es ja bekanntermaßen viele... |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Vracas |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xeres hat Folgendes geschrieben: Code: [AUSKLAPPEN] Local i, n
For i=1 To 100 n=n+1 Write(i+" ") If n=10 Then n=0 :Print() Next WaitKey() Danke, Danke für die nette Aufnahme hier ![]() Alles was hiernach kommt ist noch totales neuland für mich lol. Sieht allerdings dann aber auch noch schöner aus. Nochmal ne kurze Verständnissfrage zur For-Schleife: Die Variable N wird also bei jedem Schleifen durchlauf um 1 erhöht, um dann immer wenn N = 10 erreicht, nen Print befehl zu setzten der mir in dem Fall einen Zeilenumbruch bringt. Hab ich das richtig verstaden? Vracas |
||
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meiner Meinung nach ist diese Version viel einfacher, kommt sogar ohne if aus:
BlitzBasic: [AUSKLAPPEN] For i = 0 To 9 |
||
- Zuletzt bearbeitet von Nova am Di, Mai 12, 2009 6:34, insgesamt 2-mal bearbeitet
mDave |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Herzlich Willkommen im Forum Vracas!
Ja das hast du richtig verstanden: Bei jedem Schleifendurchgang wird n um eins erhöht. Da dies 100mal (i=1 to 100) passiert und wenn n=10 ist wird n zurück auf 0 gesetzt. Damit bekommst du auch 10 Zeilen (100/10=10) und da i ständig in der Schleife gedruckt ist dein Problem gelöst ![]() Viel Spaß mit der unbändigen Energie der Community ![]() Mfg mDave |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
WüstLings Version mit mod![]() Code: [AUSKLAPPEN] Local i
For i = 1 To 100 Print("Teilt man "+i+" durch 10, bleibt der Rest "+(i Mod 10)) If i Mod 10 = 0 Then Print("(Taste)") : WaitKey() Next WaitKey() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Vracas |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh ok, also es gibt ja echt eine Menge Lösungswege ![]() Da ich aber noch nicht viele Befehle kenne, wie Mod und andere, ist für mich momentan noch die Version von Xeres am einfachsten nachzuvollziehen. Aber hey, ich hab ja gestern erst angefangen und bin fest davon überzeugt dass das noch wird. Ihr seid ja echt eine sehr hilfsbereite Community ![]() Werd erstmal die ganzen neuen Befehle genauer unter die Lupe nehmen. Von daher mach ich mich jetzt mal wieder frisch ans Werk, mein Buch hat ja auch noch ein paar Seiten. Ich danke euch allen vielmals! Vracas |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
die vielen Versionen kommen weil jede Version ihre vor und nachteile hat:
Code: [AUSKLAPPEN] Local i, n
For i=1 To 100 n=n+1 Write(i+" ") If n=10 Then n=0 :Print() Next WaitKey() zählt zb mit n die Zahlen an einer hand ab bis zum nächsten print. Ist evtl wichtig zu wissen wie lange man noch bis zum nächsten Print noch brauch. Code: [AUSKLAPPEN] Local i
For i = 1 To 100 Write(i + " ") If i Mod 10 = 0 Then Print() Next WaitKey() Spart dagegen eine variable. Schont also den speicher, was bei einer varable nicht wirklich hilft, aber dennoch gut zu wissen ist. Code: [AUSKLAPPEN] For x = 0 To 90 Step 10
For y = 0 To 9 Write (y+x+1)+" " If (y+x+1)<10 Then Write " " Next Next Nutzt einerseits 2 Schleifen, was die sache (auch wieder minimal) verlangsamt, auf der anderen Seite ist hier die Trennung von 10er schrittzähler und 1er schrittzähler gut erkennbar. Du siehst also: Wenn du irgendwann mal etwas geschrieben hast was so nicht klappen will. Es gibt führen immer Wege nach Rom. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group