 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Revilo
Anmeldungsdatum: 26.12.2022 Beiträge: 178
|
Verfasst am: 28.10.2024, 18:06 Titel: Qbasic vs. Python |
|
|
Hallo Leute,
wenn ich eine Zelle(x, y) definiert habe, spreche ich sie in Qbasic wie folgt an:
for x=1 to 9
for y=1 to 9
print Zelle (x, y)
next y
next x
Das macht Sinn. Denn die 1. Zelle steht halt in Zeile 1 und Spalte 1.
Die letzte Zelle entsprechend in Zeile 9 und Spalte 9.
Python zählt offenbar anders:
for x=0 to 8
for y=0 to 8
print Zelle (x, y)
next y
next x
Hier hätte das 1. Feld des Spielfeldes die Koordinaten Zelle(0, 0).
Nach meinen Q-Basic-Erfahrungen kann es aber keine Zelle(0, 0) geben,
die als 1. Feld angesprochen werden könnte.
Anders gefragt: Wo soll denn diese Zelle(0, 0) im Spielfeld stehen, wenn sie weder Zeile noch Spalte hat?
Hat jemand eine Idee, wie das zusammenpasst?
Ob man einen Sudoku-Löser in Q-Basic oder in Python programmiert ist letztlich egal. Es muss auf jeden Fall dieselbe Lösung herauskommen.
Gruß Revilo |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 29.10.2024, 10:09 Titel: |
|
|
Python beginnt - wie die meisten Programmiersprachen, die ich kenne - mit der Zählung konsequent bei Index 0. Das heißt ganz einfach, dass das erste Element die Nummer 0 besitzt, das zweite Element die Nummer 1 usw. Das Feld (0,0) greift auf die erste Spalte in der ersten Zeile zu, das Feld (8,8) auf die neunte Spalte des neunten Feldes.
Laut meinem QBasic-Buch (das sich hier mit meiner Erinnerung deckt) startet auch QBasic standardmäßig mit Index 0, d. h. ein
erzeugt in Wirklichkeit nicht 9*9 Einträge, sondern 10*10. Du ignorierst nur einfach die komplette Spalte mit Nummer 0 und die komplette Zeile mit Nummer 0.
Das Verhalten in QBasic kann mit OPTION BASE umgestellt werden. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 29.10.2024, 11:44 Titel: |
|
|
Code: | Dim SudokuBoard(0 to 8, 0 to 8) |
Ich würde Arrays so definieren wie oben angegeben mit expliziter Angabe von erstem und letzten Eintrag, dann sieht einjeder direkt, dass die Indizes von 0 bis 8 laufen.
Es klingt anfangs etwas konter-intuitiv Arrays mit dem Index 0 beginnen zu lassen. Es können dadurch einige mathematische Ausdrücke oder Abfragen eleganter formuliert werden. Letztendlich ist es eine Frage des Geschmacks und wie man es gewohnt ist. _________________ Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht. |
|
Nach oben |
|
 |
|
|
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.
|
|