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:

Qbasic vs. Python

 
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
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 28.10.2024, 18:06    Titel: Qbasic vs. Python Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 29.10.2024, 10:09    Titel: Antworten mit Zitat

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
Code:
DIM feld(9, 9)

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
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 29.10.2024, 11:44    Titel: Antworten mit Zitat

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