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:

Rekursive Programmierung
Gehe zu Seite Zurück  1, 2, 3, 4 ... 12, 13, 14  Weiter
 
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: 18.11.2024, 23:50    Titel: Antworten mit Zitat

Hallo Berkeley,
sorry, dass ich mit deiner letzten Antwort nichts anfangen kann.
Ich weiß es zu schätzen, dass du dir soviel Mühe gemacht hast, sie zu formulieren und danke dir dafür. Sie stiftete bei mir aber mehr Verwirrung als Aufklärung und Erkenntnis.

Zitat:
So viel sollte man ja von der Schulinformatik her wissen


Diesen "Spruch" empfinde ich als etwas deplatziert.
Sorry, aber als ich 1982 mein ABI machte, gab es das Fach Informatik noch gar nicht. Warst du zu der Zeit schon geboren?

Was ich mir bisher in Sachen Informatik angeeignet habe, ist rein
autodidaktisch. Ich konnte niemals eine Anleitung durch einen entsprechenden Fachlehrer genießen. Daher ist mein "Fachwissen" entsprechend lückenhaft und keines falls ausreichend.

Kann es sein, dass du in meinen bisherigen Beiträgen einfach überlesen hast, dass ich bereits über 60 Jahre alt bin?

Die heutige Jugend nutzt ein Smart-Phone.
Ich gehöre noch zur "Rechenstab-Generation".
Ein Rechenstab funktioniert auch ohne Strom, ein Smart-Phone aber nicht.
Was wäre im Ernstfall (ohne Strom) wohl die bessere Wahl, um Berechnungen anstellen zu können? Die Statik vieler Gebäude und Brücken
wurde früher nur mit dem Rechenstab (in Ermangelung von Smart-Phones) berechnet. Und erstaunlicherweise stehen sie noch bis heute.

Ein guter Lehrer hat garantiert viel Fachwissen, aber er kehrt es nicht hervor. Er begibt sich auf die begriffliche Ebene seiner Schüler.
Und erst dann gelingt es ihm auch, ihnen etwas neues beizubringen.
Andernfalls hält er nur eine mühevolle Vorlesung, die aber keiner versteht.
Aber nichts für ungut. Ich bin dir in keiner Weise böse. lächeln

Da ich aus genannten Gründen nicht auf deinem Niveau kommunizieren kann, wäre es sehr nett, wenn du künftig auf meinem kommunizieren würdest, damit wir uns überhaupt verstehen.

Mit nettem Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 91

BeitragVerfasst am: 19.11.2024, 19:12    Titel: Antworten mit Zitat

Revilo hat Folgendes geschrieben:

Zitat:
So viel sollte man ja von der Schulinformatik her wissen

Diesen "Spruch" empfinde ich als etwas deplatziert.
Sorry, aber als ich 1982 mein Abi machte, gab es das Fach Informatik noch gar nicht.

Hätte gedacht du wärst sehr viel jünger... Erklärt deinen Hang zu QBASIC. Ganz Junge würden ja mit DOS total durchdrehen - und das, obwohl sie Windows gewohnt sind...

Der Informatikunterricht in der BRD war lange Zeit schlecht. Ab Ende der 1980er Jahre hat man ein bisschen mit DOS rumgemacht und kleine BASIC-Programme auf XTs getippt, als es schon lange GUIs gab. - Pünktlich zu deinen Abi kam schon der Apple Lisa raus... - war vielleicht aber ein wenig teuer als Privat-PC...

Aber immerhin hat man "Boolesche Algebra", Binär/Dual- und Hexadezimalzahlen gelernt. So weit das überhaupt die weitergebildeten Lehrer selbst kapiert haben. Insgesamt erbärmlich - sodass es in einem Posting Platz hat - und für den Alltag völlig unbrauchbar.

Unser Zahlensystem ist das Dezimalsystem, "Basis 10", 10 verschiedene Ziffern, also Werte je Stelle. Digitalcomputer (es gibt auch Analogcomputer, und damit sind NICHT Rechenschieber gemeint) arbeiten mit zwei unterschiedlichen Signalen je Leitung("Draht"). So ein Signal nennt man "Bit" und das hat den Wert 0 oder 1. Wenn man mehrere Bits zusammenfasst, kann man damit mehr als 2 Werte darstellen, genauso wie man mit 2 Dezimalziffern 100 unterschiedliche Werte darstellen kann.

Das nennt man dann "Binär-" oder "Dualsystem". Im Binärsystem zählt man nicht 1, 2, 3, 4, sondern 1, 10, 11, 100, 101, 110, 111, 1000 - die 1 ist da also gleichermaßen die 1 als auch die 9, danach wächst die Zahl an. Ganz vereinfacht gesagt hat man bei ner 16-Bit-CPU 16 Leitungen für die Daten oder Adressen, also 2^16 = 65536 mögliche verschiedene Werte.

Nun passt das Binärsystem aber nicht mit dem Dezimalsystem zusammen. Für Ziffern und Buchstaben, Satzzeichen zu schweigen, braucht man mehr als 32 Werte, ergo 5 Bit, zusammen mit Kleinbuchstaben braucht man unweigerlich 7 Bit - wie der ASCII-Code. Letztlich hat man sich darauf festgelegt 8 Bits zu einer Einheit "Byte" zusammenzufassen, wobei korrekter: "Octet" wäre. Einfach weil 8 eben auch ne Zweierpotenz ist. Damit kann man 256 verschiedene Werte/Zeichen darstellen. Man hätte aber auch 10 Bit nehmen können, dann hätte man gleich 1024 Zeichen pro "Byte" zur Verfügung gehabt...

Jede "Leitung"/jedes Bit macht einen Computer erheblich teurer. Von daher hat man auch einen sinnvollen Kompromiss zwischen Kosten und Leistung gesucht. 10-, 20-Bit- usw. Rechner hätten auch den Speicher nicht vollständig effizient genutzt. 10 ist nunmal keine Zweierpotenz.

Daher führte man für die Programmierung das Oktalsystem und das Hexadezimalsystem ein - Basis 8 => nach "7" kommt "10" und Basis 16 => nach 9 zählt man weiter mit A bis F; "F" ist 15, "10" ist 16. Hexadezimalzahlen können ein Octet/Byte mit zwei "Ziffern" darstellen von 00 bis FF. Und 32 Bit/4 Bytes kann man mit 8 "Ziffern" darstellen, die man in Zweiergruppen unterteilen kann um sie leichter lesen zu können. "123 12 32 240" ist einfach schlechter zu lesen als "7B 0C 20 F0". Hinzu kommt, dass die Bits hinter jeder "Ziffer" immer gleich sind - "F" ist immer 1111, "9" immer 1001.

Addition und Subtraktion kann man sich zusammenreimen:
13+7 ist binär 1101+0111 und ergibt 10100
13-7 1101-0111 ergibt 0110
Elektronisch interessante Verdrahtung. Die muss man in eine CPU integrieren. Für Multiplikation wurde intern ursprünglich Addition entsprechend oft wiederholt, für Division die Subtraktion, bis der Divisor größer als der Rest war.

Und jetzt noch ein genialer Trick: negative Zahlen sind einfach invertierte Bits bis auf Bit 0. Das heißt "-1" ist als binäres Byte 11111111. Beim Programmieren muss man zwischen vorzeichenbehaftet (signed) und nicht-vorzeichenbehaftet (unsigned) unterscheiden. Ein unsigned Byte geht von 0-255, ein signed Byte von -128 bis +127 - siehe 2^7 bzw. 2^(8-1). Das höchste Bit (ganz links) gilt als "sign bit" - Vorzeichen-Bit. Daran erkennt der Computer, dass die Zahl negativ ist. 10000000 ist damit -128. Wenn du negative Zahlen jetzt addierst/subtrahierst, stellst du fest, dass das Ergebnis passt, unabhängig davon, ob ein Wert signed oder unsigned interpretiert wird. -5 +13 entspricht auch 251+13, das gibt mit 8 Bit einen Überlauf (nach 255 kommt unsigned wieder 0), und raus kommt "8".

Gleitkommazahlen sind viel komplizierter, das konnten aber nicht mal CPUs wie der mächtige MC68000, wurde noch per Software programmiert, später durch externe Coprozessoren beschleunigt, bis es integriert war. Man muss nur vorallem wissen: die IEEE 754 Gleitkommazahlen basieren auch auf dem Binärsystem, d.h. die Nachkommastellen sind auch Zweierpotenzen, und dadurch kriegt man beim Programmieren Probleme, z.B. ist "1+1.1" nicht gleich "2.1". Das Ergebnis unterscheidet sich um einen verschwindenden Bruchteil, aber der Vergleich der berechneten Zahl mit dem aus der Dezimalzahl umgewandelten Wert unterscheiden sich. "0.1" ins Binärsystem gewandelt ist praktisch transzendent, hingegen gehen "0.0625", "0.125", "0.25" und "0.5" vollkommen gerade auf.

Kommen wir zur Booleschen Algebra (benannt nach George Boole): die braucht man für bedingte Verzweigungen wie bei IF. Hab' ich in meinem Posting schon demonstriert, von daher brauch' ich nicht erklären "wozu das gut sein soll". Aber man kann damit noch viel mehr anstellen. Die wichtigsten booleschen Operationen sind:
AND
OR
XOR ("exklusives Oder")
NOT

Man spricht außerdem gerne von TRUE und FALSE (wahr und falsch) statt "1" und "0". Ist aber dasselbe. TRUE=gesetztes Bit, FALSE=gelöschtes Bit, bzw. 0. In jeder CPU gibt es einen Extrabefehl um ein sog. Register (im Grunde ne Variable) schnell auf 0 zu testen. Ist die Variable 0, gilt das als FALSE, alles andere als TRUE.

Wikipedia liefert dazu auch schöne Grafiken und Tabellen. Letztlich gilt für jedes einzelne Bit zweier Zahlen wenn man z.B. schreibt 1 AND 1 = 1, 1 AND 0 = 0, 0 AND 1 = 0. Jedes Bit einer Zahl wird gesondert verknüpft. Deswegen kannst du mit "AND 47" gezielt die Bits für 16, 64 und 128 löschen.

a AND b ergibt nur 1 wenn a und b 1 sind, sonst 0
a OR b ergibt nur 1 wenn a ODER b 1 sind, und nur wenn beide 0 sind, 0
a XOR b ist wie OR, aber wenn a und b 1 sind, ergibt sich 0. Damit kann man Bits selektiv invertieren. a XOR 1 ergibt 1 wenn a 0 ist und 0 wenn a 1 ist.
NOT a kehrt das Bit einfach direkt um. Aus 1 wird 0 und aus 0 wird 1. Im Unterschied dazu kann man mit XOR aber mehr anstellen, nämlich Bitmuster "umschalten". Wird zur Verschlüsselung genutzt. Wenn du Daten mit einem Bitmuster XOR-verknüpfst, kommt völliger Müll raus. wenn du den mit demselben Bitmuster wieder verknüpfst, erhältst du die Daten wieder zurück. Auch einfache Prüfsummen nutzen XOR um Übertragungsfehler bzw. beschädigte Daten zu erkennen.

Weitere sog. "Logikgatter" sind nur Kombinationen daraus, wie NOT AND, die man aber auch brauchen kann.

Das war jetzt schon abzüglich dem bisschen BASIC und DOS-Befehlen deutlich mehr als man im hochtrabenden "Informatikunterricht" gelernt hat...


Zuletzt bearbeitet von Berkeley am 19.11.2024, 19:48, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 19.11.2024, 19:43    Titel: Antworten mit Zitat

Da ich mir nicht sicher bin, ob die grundsätzliche Funktionsweise einer Rekursion verstanden wurde, habe ich mal ein Bild erstellt. Zunächst ein recht einfaches Programm zur rekursiven Berechnung der Fakultät (am Beispiel von 4!). Ob der Code in QBasic unverändert läuft, konnte ich nicht testen.
Code:
FUNCTION fakultaet(n%)
  IF n% < 0 THEN fakultaet = 0  ' Sicherheitsabfrage; im Bild nicht berücksichtigt
  IF n% = 0 THEN
    fakultaet = 1
  ELSE
    fakultaet = n% * fakultaet(n%-1)
  END IF
END FUNCTION




Der Aufruf von fakultaet(4) arbeitet das linke Rechteck ab, das wiederum das Rechteck rechts daneben aufruft, das wiederum das Rechteck rechts daneben, usw. Das Rechteck ganz rechts gibt sein Ergebnis an das Rechteck links neben ihm zurück, welches daraus sein eigenes Ergebnis berechnet und nach links weitergibt usw., bis das Programm letztendlich wieder ganz links ankommt. Bei jedem dieser Rechtecke handelt es sich aber um ein und dieselbe Funktion.
Aus Sicht der Rekursions gesprochen müsste es natürlich nicht "nach rechts" und "nach links" heißen, sondern "nach unten" (eine Rekursionstiefe tiefer) bzw. "nach oben" (eine Rekursionstiefe höher).

Beim Sudokulöser mithilfe Backtracking sieht das im Prinzip genauso aus, nur das da natürlich schon bei einem einfachen Sudoku sehr viel mehr Rekursionsschritte ablaufen und der Ablauf in der Grafik nur angedeutet werden kann.



Ich hoffe, das hilft ein wenig beim Verständnis, auch was die Frage nach dem "Rückgängig machen" anbelangt.
_________________
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
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 21.11.2024, 02:04    Titel: Antworten mit Zitat

Hallo Berkeley,
nichts für ungut. Hier hängt sich ja keiner ein Schild mit Geburtsdatum um den Hals. Vielen Dank für deine sehr ausführlichen Darlegungen zum Thema Zahlen-Systeme.
Das Grundprinzip des Binären oder Hexadezimalen Systems hatte ich mir bereits autodidaktisch angeeignet.
Du hast mich etwas in die "Feinheiten" also dem Rechnen in dem jeweiligen Zahlen-System eingeweiht.

In einem fiktiven 5-er-System geht es also um Potenzen der Zahl 5
mit den mögl. Ziffern 0,1,2,3,4 .

Die natürliche, dezimale Zahl 1234 würde also wie folgt dargestellt werden:
Dezimal: 1234 (wie klassisch gewohnt)
Hexadezimal: 4C2 ( C steht dabei für 13)
Binär: 10011010010
Im fiktiven 5-er-System : 14414
Ohne Widerspruch deinerseits, verbuche ich das als sicheren Lernerfolg.

Zu den logischen Operatoren "AND"; "OR"; "XOR" und "NOT":
Hier bin ich mir vom Verständnis her noch nicht ganz sicher, was das
Zusammenwirken von a und b betrifft.
a And b liefert "1", wenn a und b gleichzeitig zutreffen. Sonst "0".

a OR b liefert "1", wenn a oder b zutreffen.
(wenn keines von beiden zutrifft, gibt es eine "0")

"XOR" ist praktisch genau das Gegenteil von "OR"
Wo "Or" eine "1" liefern würde, liefert XOR eine "0" und umgekehrt.

Während es bisher um zwei miteinander zu vergleichende Werte (a und b) ging, geht es bei "NOT" offenbar nur um einen dieser beiden Werte also entweder a oder b). Richtig?

Mit dem Operator "NOT" habe ich allerdings noch einige Probleme:
Da hänge ich offenbar noch zu sehr an der klassischen Mathematik.
Egal, ob a=0 oder a>0 oder a<0 wäre, NOT a würde doch auf jeden Fall die gesamte Zahlen-Gerade mit Ausnahme von a liefern.

"NOT" kann aber auch nur einen Wert liefern (wahr oder falsch, 1 oder 0).
Wie passt das zusammen? Was wäre denn der Unterschied zwischen
"NOT" und "XOR", letztlich negieren doch beide bestimmte Bits?

Da wir eh gerade beim Umgang mit Bits sind, hätte ich aus reiner Neugier noch eine ergänzende Frage:
Was ist ein Binär-Äquivalent, wozu braucht man es, was bewirkt es?
Gibt es etwas Vergleichbares auch in anderen Zahlen-Systemen?

Bitte verzeih mir, wenn ich dich mit meinem Wissensdrang nerve.
Aber ich glaube, dass Halbwissen nicht besser ist als absolute Unwissenheit.
Wenn man in freier Natur überleben will, reicht es nun mal nicht aus, mit
Halbwissen die Himmelsrichtungen bestimmen zu können.
Man muss auch wissen, wo man Wasser findet, wie man Feuer macht, wie man sich eine Unterkunft als Wetterschutz bastelt und wie man an etwas zu Beißen gelangt.

Letztlich entscheidet immer die Praxis, ob das Wissen ausreicht, um mit ihr klarzukommen. Meines reicht informatik-mäßig dazu garantiert nicht.
Umso mehr weiß ich jede Hand zu schätzen, die du mir helfend reichst.
Nochmals recht herzlichen Dank für deine bisherigen Bemühungen.
Gruß Revilo.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 21.11.2024, 06:41    Titel: Antworten mit Zitat

Hallo nemored,
soeben habe ich mich bei Berkeley für die fachliche Mithilfe bedankt.
Dir gebührt mein Dank natürlich ebenso, weshalb ich ihn auch dir gegenüber aussprechen möchte.

Ich bin ein visueller Lerntyp, brauche daher eine visuelle Darstellung oder zumindest zwecks Anschaulichkeit einen bildlichen Vergleich, um das begreifen zu können, was ich begreifen soll.
Diese visuelle Darstellung hast du mir in deinem letzten Beitrag geliefert.
Vielen Dank dafür.
Ein einziges, aber anschauliches Bild sagt oft mehr, als 1000 Worte es je
könnten.

Das erinnert mich an meine ABI-Zeit und die Probleme, die ich mit dem Beweisverfahren der vollständigen Induktion hatte.
(Unerlässlich , wenn es um Zahlenfolgen und Partial-Summen geht)
Mein Mathe-Lehrer erkannte das Problem und gab mir als anschauliches Bild eine unendliche Reihe sauber aufgestellter Dominosteine mit.

Damit überhaupt etwas passiert, muss erst mal der erste Stein umfallen.
Zusätzlich muss jeder Stein seinen direkten Nachfolger quasi "anschubsen".
Beides muss man nachweisen.
Wenn das gelingt, fällt die ganze Domino-Reihe um, egal wie lang ist.

Von da an war, Dank dieses einfachen Bildes, das Prinzip der vollständigen Induktion für mich zu jeder Zeit abrufbar. Da hätte man mich auch mitten in der Nacht aus dem tiefsten Schlaf wecken können.
(Ps: könnte man heute nach über 40 Jahren immer noch)

Ich bin noch nicht dazu gekommen, deine bildlichen Darstellungen zum Thema Rekursion und Backtracking wirklich zu verinnerlichen.
Da muss ich mich erst mal reinknien.

Allerdings hoffe ich, dass sie einen ebenso anhaltenden Erfolgs-Effekt bei mir hinterlassen, wie damals das Domino-Bild meines Mathe-Lehrers.

Selbst der beste Lehrer ist ein schlechter Lehrer, wenn er ein schlechter Erklärer ist. Dann ist er kein Pädagoge, sondern nur ein durch die Gegend laufendes "Fachlexikon". Ich habe mich um diese Umschreibung bemüht, weil ich bewusst den Begriff "Fachidiot" vermeiden wollte. zwinkern

Ich bin davon überzeugt, dass du das Talent hast, mir etwas beizubringen,
auch wenn es von beiden Seiten vielleicht etwas Geduld erfordert.
Als lernwilliger Schüler komme ich hoffentlich als angenehmer Schüler rüber, und nicht als Parasit, der dir sinnlos deine Zeit stiehlt.

Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1278
Wohnort: Ruhrpott

BeitragVerfasst am: 21.11.2024, 18:52    Titel: Antworten mit Zitat

Revilo hat Folgendes geschrieben:
a And b liefert "1", wenn a und b gleichzeitig zutreffen. Sonst "0".
Richtig.

Revilo hat Folgendes geschrieben:
a OR b liefert "1", wenn a oder b zutreffen.
(wenn keines von beiden zutrifft, gibt es eine "0")
Nicht ganz. a OR b liefert eine "1", wenn a oder b oder beide "1" sind. Also
0 OR 0 --> 0
1 OR 0 --> 1
0 OR 1 --> 1
1 OR 1 --> 1

Revilo hat Folgendes geschrieben:
"XOR" ist praktisch genau das Gegenteil von "OR"
Nein. XOR steht für "eXclusive OR". Es liefert nur eine "1", wenn a oder b "1" sind, aber nicht beide.
0 XOR 0 --> 0
1 XOR 0 --> 1
0 XOR 1 --> 1
1 XOR 1 --> 0
Man benutzt XOR hauptsächlich, um einzelne Bits innerhalb einer Binärzahl zu invertieren. Eine Zahl mit sich selber bitweise geXORt ergibt immer 0.

Und NOT bedeutet einfach nur, daß das Bit invertiert wird. Aus "1" wird "0" und umgekehrt.
NOT 0 --> 1
NOT 1 --> 0

Revilo hat Folgendes geschrieben:
Selbst der beste Lehrer ist ein schlechter Lehrer, wenn er ein schlechter Erklärer ist.
So einen hatte ich in der Oberstufe. Dazu kam dann noch, daß er an der Tafel schneller schreiben konnte als ich im Heft. traurig

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 91

BeitragVerfasst am: 21.11.2024, 19:41    Titel: Antworten mit Zitat

Erst mal nur ne kurze schnelle Antwort: ja, jeder lernt unterschiedlich. Manche besser mit Videos/Bildern, andere mit Sprache. Das geht aber in dem Forum eher schlecht, deswegen verweise ich hierbei auch auf Wikipedia. Die haben die Tabellen für Logikgatter. Ist definitiv leichter zu verstehen so.

Für uns bedeutet OR einfach Bits setzen und AND Bits prüfen oder mit NOT zusammen löschen - außer bei logischen Verknüpfungen (IF-Bedingungen) da sind sie nahezu identisch mit der menschlichen Sprache.

i = i OR 2 setzt das Bit 1 mit dem Wert 2. - Absolut sicher, im Gegensatz zu i = i+2 ist egal ob i 0 oder bereits 2 ist, in beiden Fällen kommt 2 raus. i+2 würde das Bit stattdessen löschen und Bit 3 mit dem Wert 4 setzen.
"i AND 2" ist nur 2 bzw. nicht 0 wenn das Bit gesetzt ist. Und mit "i = i AND (NOT 2) löscht du das Bit mit dem Wert 2.

Im Informatikunterricht lernt man ja gar nicht mal, wozu das gut ist. Sind bizarre Funktionen, die allerdings ausgesprochen nützlich sind.

Ich weiß nicht, ob du dich für Computerspiele interessierst, aber es gab mal so einen Ultima/D&D/Paper&Pen-artigen Spieleeditor namens HASCS. Bei diesem Editor musste man auch für die Eigenschaften eines "Tiles" Zahlen eingeben wie: 2 = durchsichtig, 4 = begehbar etc. Da hat sich's der Urheber leicht gemacht. Man gab eine Dezimalzahl als Eigenschaftencode ein, welche einfach zusammenaddiert werden musste aus 1 + 2 + 4 + 8 + 16... Nur so mal als Anwendungsbeispiel.

Bezüglich Zahlensystem kannst du dir auch noch Folgendes anschauen/nutzen: https://www.freebasic-portal.de/downloads/bibliotheken/hypernumbers-407.html Das erzeugt ähnlich Hexadezimalzahlen Zahlen zur Basis 32 und 64.

Zitat:
weil ich bewusst den Begriff "Fachidiot" vermeiden wollte

"Fachidioten" sind eigentlich eher Leute, die vollkommen überspezialisiert sind. Z.B. ein Physikprofessor, der ausrechnen kann wie man Magnetfelder für einen Kernfusionsreaktor gestalten muss, aber buchstäblich keinen Geschirrspüler bedienen kann. Natürlich sind sie in der Regel auch schlechte Lehrer, können nicht mal erklären, was sie selber sehr gut können.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 21.11.2024, 20:36    Titel: Antworten mit Zitat

Zitat:
Im fiktiven 5-er-System : 14414

Der Zahlenwert stimmt, ich möchte aber an einer Stelle widersprechen: Das Fünfersystem ist nicht mehr oder weniger fiktiv als das Dezimal- oder das Binärsystem - es wird nur in der Regel nicht verwendet. grinsen
_________________
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
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 22.11.2024, 15:50    Titel: Antworten mit Zitat

Hallo grindstone,
vielen Dank für deine übersichtliche Aufstellung der Logik-Operatoren.

1 or 1 -> 1 leuchtet ein, "OR" liefert ja 1 wenn mind. eine 1 vorhanden ist.
Das ist hier ja garantiert (sogar doppelt garantiert ) der Fall.

"OR" liefert in drei Fällen -> 1, "XOR" aber nur in zwei Fällen.
"OR" ist demnach umfassender, als "XOR", richtig?
Das ist jetzt bei mir wohl sauber angekommen. Nochmals Danke.
Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 22.11.2024, 16:03    Titel: Antworten mit Zitat

Hallo nemored,
du grinst zurecht bei dem Begriff "fiktiv". Ich hatte ihn nur gewählt, um mein Verständnis der Zahlensysteme hierbei (im 5-er System) zu testen/ zu überprüfen. Du hast natürlich Recht. "Ungewohnt" oder "unüblich" wäre da wohl zutreffender gewesen, aber auf diese Begriffe bin ich in dem Moment nicht gekommen.
Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 22.11.2024, 16:47    Titel: Antworten mit Zitat

Hallo Berkeley,
vielen Dank für deinen letzten Beitrag. Aber das ist mir momentan fachlich noch etwas zu hoch. Sorry.
Meine Zielstellung ist es, einen Sudoku-Solver zu programmieren.
Da liegt mein Fokus eher auf einem möglichst einfachen Backtracking-Ablauf, als darauf wie mein Rechner intern Bits verarbeitet. Hier sind wir wohl kurz auf ein falsches "Gleis" abgebogen. Ich glaube, dass mir dieses Hintergrund-Wissen bei meiner eigentlichen Zielstellung momentan nicht wirklich weiterhilft.
Trotzdem Danke für den guten Willen, mir zu helfen.
Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 22.11.2024, 19:39    Titel: Antworten mit Zitat

Hallo nemored,
ich habe mich erst mal mit der Fakultät (dem ersten Teil deiner Mail ) beschäftigt.

Das Programm soll die Fakultät einer Zahl n bestimmen.
Also definiere ich erst mal n mit:
dim shared n as integer.

Das Endergebnis n! soll in der Variablen f dargestellt werden.
Also definiere ich f erst mal mit:
dim shared f as double. (weil die Fakultät einer Zahl n wesentlich größer ist, als n selbst).

Ich frage nach der Zahl n, deren Fakultät bestimmt werden soll:
INPUT "Eingabe n: ", n

Dann prüfe ich, ob n überhaupt zulässig ist:
select case n

case is < 0
f=0 'Keine Lösung
case is = 0
f = 1 'Laut Definition 0! = 1
case else
f = Endergebnis 'f! ist berechnet.
end select


Offenbar muss hier erst mal eine Funktion "fakultaet" erstellt werden.
Bisher habe ich nur SUB's erstellt, aber noch nie Funktionen.
Aber das wird wohl erst der nächste Schritt sein.

Mein QBASIC läuft immer noch über die DOS-BOX. (museumsreif, ich weiß).
Aber etwas besseres beherrsche ich nun mal nicht.
Außerdem kann ich mir so sicher sein, dass alle meiner bisherigen Programme, die ich über Jahre hinweg geschrieben habe, weiterhin aufrufbar bleiben. Bei diesem neumodischen (DOS-BOX-unabhängigem) Kram bin ich mir dessen nicht sicher. Ich habe absolut keine Lust, jahrelange Programmierarbeit auf dem Altar der Moderne zu opfern.
Da bleibe ich lieber bei meinem "Steinzeit-Niveau", habe aber die Gewissheit, dass es keine Problem gibt.

Ist in etwa so, wie in einer langjährigen Beziehung. Man hat seinen Partner
liebgewonnen und weiß, was man an ihm hat.
Sich nach einem neuen umzuschauen, ist immer eine riskante Sache.
Aber das nur nebenbei. Zurück zum Thema:
Um all dem sauber folgen zu können, werde ich wahrscheinlich noch etwas Zeit brauchen. Rekursion ist für mich ein völlig neues Denkschema.

Zwischendurch bräuchte ich auch mal einen Tipp zum Handling.
Alles, was oben fett dargestellt ist, habe ich aus meinem Programm erst mal Zeichen für Zeichen auf Papier abgeschrieben, um es dann Zeichen für Zeichen vom Papier hier einzutippen.

Du kannst dir sicher vorstellen, wie umständlich und letztlich nervig das ist.
Ich würde gern einfach eine Passage aus meinem QBASIC-Programm kopieren, in irgend einem Zwischen-Speicher ablegen und dessen Inhalt dann hier einfügen.
Aber um hier etwas schreiben bzw. mit STRG+V einfügen zu können, muss ich zuvor QBASIC komplett verlassen. Dann ist dieser Zwischen-Speicher aber nicht mehr verfügbar. STRG+V bringt also nichts.

Hättest du eine Idee, wie man das umgehen könnte, wie man es hinkriegen kann, dass STRG+V hier im Forum doch etwas "abliefert"?

Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 22.11.2024, 19:39    Titel: Antworten mit Zitat

Zitat:
"OR" ist demnach umfassender, als "XOR", richtig?

Wenn du mit "umfassender" meinst, dass OR in mehr Situationen "wahr" liefert als XOR, ist das richtig. Umgangssprachlich steht XOR für "entweder - oder". Die Aussage "a XOR b" ist wahr, wenn entweder a oder b wahr ist, aber nicht beide zugleich.
_________________
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
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 22.11.2024, 23:44    Titel: Antworten mit Zitat

Hallo nemored,
danke, dass du mir fachlich nochmals bestätigt hast, was grindstone mir bereits vermittelt hatte.
"OR" beinhaltet eben auch den Fall, dass beide Werte gleich 1 sein können, während "XOR" genau diesen Fall ausschließt. Ein kleiner, aber feiner Unterschied. Ich glaube, dass ich dies sauber verstanden habe.
Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 23.11.2024, 00:17    Titel: Antworten mit Zitat

Hallo nemored,

Zitat:
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.

Ein sehr weiser Spruch.

Er erinnert mich an "NIPSILD".
Nicht In Problemen Sondern In Lösungen Denken.

Derartige Sprüche gibt es sicher 1000. Man kann sie alle zwar als Lebenshilfe auswendig lernen. Aber die Kunst ist es, sie in der Praxis auch anzuwenden bzw. so umzusetzen, dass sie auch ein Erfolgserlebnis liefern.
Dieses blieb mir bisher leider verwehrt, aber es steht ja nirgends geschrieben, dass es gleich beim ersten mal klappen muss.
Was letztlich zum Erfolg führt sind Ausdauer und Beharrlichkeit, nicht vorzeitige Resignation.

Wenn du diese Einstellung mit mir teilst, hoffe ich auf deine weitere fachliche Beratung, auch wenn ich dir mit meinen Nachfragen inzwischen als nervig erscheinen mag. Ich frage ja nicht, um dich zu ärgern, sondern weil ich etwas noch nicht ganz verstanden habe.

Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1278
Wohnort: Ruhrpott

BeitragVerfasst am: 23.11.2024, 14:55    Titel: Antworten mit Zitat

Revilo hat Folgendes geschrieben:
Ich glaube, dass mir dieses Hintergrund-Wissen bei meiner eigentlichen Zielstellung momentan nicht wirklich weiterhilft.
Gestatte, daß ich dir da höflich, aber bestimmt widerspreche. Die Wahrscheinlichkeit, ein funktionsfähiges Programm zu schreiben, steigt mit dem vorhandenen Hintergrundwissen (und umgekehrt).

Revilo hat Folgendes geschrieben:
Das Endergebnis n! soll in der Variablen f dargestellt werden.
Also definiere ich f erst mal mit:
dim shared f as double. (weil die Fakultät einer Zahl n wesentlich größer ist, als n selbst).
Nicht double, sondern long. double ist eine Fließkommazahl, während das Ergebnis von Fakultät immer eine Ganzzahl ist. Mit double wirst du zwar ein Ergebnis bekommen, aber das könnte einen mehr oder weniger großen Rundungsfehler enthalten. Übrigens ist long in QB eine 32-bit-Zahl (mehr geht nicht). Das höchste, was man damit darstellen kann, ist 12! = 2147483648. Falls du also vorhast, damit zu experimentieren, solltest du diese Obergrenze im Auge behalten.

Revilo hat Folgendes geschrieben:
Ist in etwa so, wie in einer langjährigen Beziehung. Man hat seinen Partner
liebgewonnen und weiß, was man an ihm hat.
Sich nach einem neuen umzuschauen, ist immer eine riskante Sache.
Du wirst zugeben, daß der Vergleich ein wenig hinkt. zwinkern

Revilo hat Folgendes geschrieben:
Ich würde gern einfach eine Passage aus meinem QBASIC-Programm kopieren, in irgend einem Zwischen-Speicher ablegen und dessen Inhalt dann hier einfügen.
Aber um hier etwas schreiben bzw. mit STRG+V einfügen zu können, muss ich zuvor QBASIC komplett verlassen. Dann ist dieser Zwischen-Speicher aber nicht mehr verfügbar. STRG+V bringt also nichts.
Auf die Gefahr hin, mich zu wiederholen: Der QB-Editor ist nach heutigen Maßstäben eine Zumutung. Als Workaround kannst du das QBASIC-Programm abspeichern und die Programmdatei anschließend in einem Texteditor wie Notepad öffnen (ohne den QB-Editor zu schließen). Von da aus kannst du dann wie gewohnt mit STRG+C markierten Text herauskopieren. Umgekehrt geht es übrigens auch: Programm mit einem Texteditor erstellen, als .BAS abspeichern (8+3-Grenze beachten) und dann im QB-Editor öffnen.

Revilo hat Folgendes geschrieben:
Derartige Sprüche gibt es sicher 1000. Man kann sie alle zwar als Lebenshilfe auswendig lernen. Aber die Kunst ist es, sie in der Praxis auch anzuwenden bzw. so umzusetzen, dass sie auch ein Erfolgserlebnis liefern.
Dieses blieb mir bisher leider verwehrt, aber es steht ja nirgends geschrieben, dass es gleich beim ersten mal klappen muss.
Was letztlich zum Erfolg führt sind Ausdauer und Beharrlichkeit, nicht vorzeitige Resignation.
Dem gegenüber steht eine Lebensweisheit von Häuptling Sitting Bull: "Wenn du merkst, daß du ein totes Pferd reitest: Steig ab!" Da kannst du dann jeweils das Passende für dich raussuchen. grinsen

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 91

BeitragVerfasst am: 23.11.2024, 16:18    Titel: Antworten mit Zitat

grindstone hat Folgendes geschrieben:
Revilo hat Folgendes geschrieben:
Ich glaube, dass mir dieses Hintergrund-Wissen bei meiner eigentlichen Zielstellung momentan nicht wirklich weiterhilft.
Gestatte, daß ich dir da höflich, aber bestimmt widerspreche. Die Wahrscheinlichkeit, ein funktionsfähiges Programm zu schreiben, steigt mit dem vorhandenen Hintergrundwissen (und umgekehrt).

Allerdings hab' ich schon oft betont, dass das fürs Erste eine übertrieben elegante Lösung ist. Man sollte es einerseits wissen, aber eben nicht gleich bei den ersten Gehversuchen anwenden, wenn man schon mit dem Handling von Arrays Probleme hat.

grindstone hat Folgendes geschrieben:
Nicht double, sondern long. double ist eine Fließkommazahl, während das Ergebnis von Fakultät immer eine Ganzzahl ist. Mit double wirst du zwar ein Ergebnis bekommen, aber das könnte einen mehr oder weniger großen Rundungsfehler enthalten.

Das normal nicht. Bis zu einer bestimmten Größe gibt's bei Addition/Subtraktion mit Ganzzahlen keinen Fehler. Aber es ist schlicht unsinnig. Wie n 32-Bit-Integer für eine BOOLEAN-Variable. Und LONG ist IMMER 32 Bit. "INTEGER" unterscheidet sich je nach Plattform und sind im DOS sogar nur 16 Bit.

LONGINT ist der 64 Bit Integer, und besser für die Fakultät als die 64 Bit double. Auch wenn man viel größere Zahlen darstellen kann, ist die Genauigkeit begrenzt, man kann zwar ne 21stellige Ganzzahl haben, aber gewaltige Zahlenbereiche sind dann völlig unbekannt, man hat mit double nur 15 signifikante Dezimalstellen.

grindstone hat Folgendes geschrieben:
Dem gegenüber steht eine Lebensweisheit von Häuptling Sitting Bull: "Wenn du merkst, daß du ein totes Pferd reitest: Steig ab!"

Ich würde auch empfehlen, einfach FreeBASIC und ne IDE dazu zu installieren. Für Retrografik hab' ich mein RETROGRA entwickelt, dafür hat man dann aber enorme Ressourcen zur Verfügung und muss nicht mit Variablen etc. sparen und am Code rumoptimieren oder gar Inlineassembler verwenden. Und die Editoren der damaligen Zeit sind halt einfach eher schrecklich. Die von modernen GUIs gewohnten Eingabemöglichkeiten fehlen, und wenn ein Programm läuft kann quasi kein anderes Programm laufen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Revilo



Anmeldungsdatum: 26.12.2022
Beiträge: 178

BeitragVerfasst am: 24.11.2024, 18:28    Titel: Antworten mit Zitat

Hallo nemored,
nochmals vielen Dank für die "Kastendarstellung" des Backtrackings.
Ich habe nochmals über den Begriff "rückgängig machen" nachgedacht.
Kann es sein, dass wir zwar denselben Begriff verwenden, ihm aber unterschiedliche Bedeutungen beimessen?

Du meinst beim Backtracking : "Gehe eine Rekursionsebene nach oben".
Bei False machst du einen einzigen Wert rückgängig, nämlich den dort zuletzt gewählten. Richtig? Habe ich das soweit verstanden?

Mein Begriff "rückgängig machen" ist offenbar etwas ganz anderes.
Vielleicht fällt es mir deshalb so schwer, das Rekursions-Prinzip zu verstehen.

Hier mal kurz der "Fahrplan" meiner bisherigen Vorgehensweise:
1) Ein gegebenes, zu lösendes Sudoku ist grafisch dargestellt (Ersteinträge).

2) Mit etwa 5 oder 6 einfachen "klassischen" Lösungstechniken versuche ich zunächst, weitere Einträge zu finden, um die Anzahl der dann noch mögl. Einträge zu verringern.

3) Irgend wann ergeben die "klassischen" Lösungstechniken aber keine Verbesserung mehr. Sie sind quasi ausgereizt.

4) Hier beginnt das Probieren. Bei der manuellen Lösung greift man jetzt
zu Bleistift und Radiergummi. Zielstellung ist es aber, dieses Probieren dem Rechner beizubringen.

5) Ich suche die erste noch freie Zelle(z, s) und trage mit Bleistift dort den kleinsten noch mögl. Wert w ein. Laut Sudoku-Regeln muss w so weit wie möglich eliminiert werden. Das bedeutet:
In der Zeile z gibt es 8 andere Zellen, wo w nicht mehr stehen kann, also eliminiert werden muss. Gleiches gilt für die Spalte s. Im Block in dem die Zelle(z, s) steht, sind dann noch 4 Zellen für w zu eliminieren.

Insgesamt ergeben sich also 8+8+4 = 20 quer über das Spielfeld verteilte Zellen, in denen w eliminiert wurde.
Dies braucht man doch letztlich , um beurteilen zu können , ob ein weiterer Eintrag überhaupt noch möglich ist.

6) Jeder Bleistifteintrag führt zu einem neuen Bleistifteintrag mit wiederum 20 Eliminierungen.

7) Wenn sich irgendwann später ergibt, dass der ursprünglich gewählte Wert w falsch war, man also in einer Sackgasse gelandet ist, nimmt man den Radiergummi, radiert ihn und alles danach erfolgte aus. Manuell kann man dann in Zeile (z, s) mit dem Bleistift einen neuen Versuch mit einem anderen Wert w starten.
Der Rechner, der das letztlich automatisch bewältigen soll, kann das nicht so einfach. Er muss nebenbei ja auch noch möglicherweise 200 (oder sogar noch mehr) zuvor fälschlich erfolgte Eliminierungen wiederfinden und rückgängig machen, um auf den Zustand zu kommen, der vor der ersten Bleistiftbenutzung bestand.

Genau das ist mein Problem. Wie erreiche ich, dass der Rechner alle falschen Eliminierungen sicher "erwischt" und "rückgängig macht", ohne eine einzige zu "übersehen"? Nur so kann ja der Zustand vor der ersten "Bleistiftbenutzung" wieder hergestellt werden. So zumindest mein bisheriges Verständnis.

Wie erreicht Backtracking, dass diese eventuell 200 (oder sogar noch mehr) nötig gewordenen "Zurücksetzungen" tatsächlich erfolgen, wenn es doch praktisch je Rekursions-Ebene nur einen einzigen Wert zurücksetzt?
Wo bleiben die restlichen falschen "Eliminierungen"? Die können doch auch bei Backtracking nicht einfach "unter den Tisch" fallen.
Das habe ich trotz all eurer gutgemeinten Bemühungen, leider bisher nicht verstanden.

Was ist das Kriterium dafür, ob ich in einer Sackgasse gelandet bin?
Nach bisherigen Kenntnisstand würde ich diese Frage so beantworten:
Es gibt eine noch leere Zelle, in der ein Wert eingetragen werden muss.
Aber es gibt keinen Wert mehr, der dort noch eingetragen werden kann.
Sackgasse! Richtig?
Gibt es weitere Kriterien für Sackgassen oder ist dies das einzige?

Gruß Revilo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1278
Wohnort: Ruhrpott

BeitragVerfasst am: 24.11.2024, 18:41    Titel: Antworten mit Zitat

Revilo hat Folgendes geschrieben:
Wie erreiche ich, dass der Rechner alle falschen Eliminierungen sicher "erwischt" und "rückgängig macht", ohne eine einzige zu "übersehen"? Nur so kann ja der Zustand vor der ersten "Bleistiftbenutzung" wieder hergestellt werden. So zumindest mein bisheriges Verständnis.

Wie wäre es, von dem Sudoku vor dem Beginn der Eliminierungen einfach eine Kopie zu machen?

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



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

BeitragVerfasst am: 24.11.2024, 19:19    Titel: Antworten mit Zitat

Ich versuche es mal mit einem Bild; vielleicht hilft es.

Stelle dir vor, du bist eine dieser Rekursionsebenen. Du bekommst "von oben" ein Blatt mit einem Sudoku eingereicht, in dem schon ein paar Felder ausgefüllt sind, einige dagegen noch nicht. Du suchst dir das erste freie Feld. Nur um dieses Feld kümmerst du dich; alle anderen sind nicht für dich bestimmt.

In dieses Feld trägst du jetzt der Reihe nach alle Zahlen von 1 bis 9 ein. Wenn die Zahl nicht erlaubt ist (z. B. weil in derselben Zeile bereits diese Zahl eingetragen ist), löscht du sie gleich wieder und fährst mit der nächsten Zahl fort. Wenn du eine Zahl eingetragen hast, reichst du das Blatt an deinen Untergebenen weiter, der damit weiterarbeiten muss. Du kannst dich inzwischen zurücklehnen und Tee trinken.

(Dein Untergebener macht jetzt im Prinzip das gleiche wie du, nur mit einem eigenen Feld und einem eigenen Untergebenen, an den er weiterreicht, usw. - aber das braucht dich nicht zu kümmern; dich interessiert nur das Ergebnis, das du von deinem Untergebenen bekommst.)

Nachdem du mehrere Millisekunden gewartet hast, flattert bei dir das Blatt von deinem Untergebenen wieder ein. Entweder gibt er dir ein vollständig ausgefülltes Sudoku, dass du freudestrahlend nach oben weiterreichen kannst, oder er gibt dir das Blatt genau so zurück, wie er es von dir bekommen hat, mit dem Vermerk, dass es nicht lösbar ist. Dann radierst du deine Zahl aus und probierst die nächste.
Mit dem Ausradieren hast du genau diesen Schritt des Rückgängmachens durchgeführt.

Wenn du alle Zahlen erfolglos durchprobiert hast - und damit auch deinen letzten erfolgreichen Versuch ausradiert hast - gibst du das Blatt so, wie du es bekommen hast, nach oben zurück und teilst ihm mit, dass das Sudoku, das du bekommen hast, nicht lösbar ist. Du hast ja nur ein einziges Feld bearbeitet und deine Eintragung wieder gelöscht, also bekommt "der da oben" das, was er an dich weitergereicht hat, unverändert zurück.
_________________
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
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
Gehe zu Seite Zurück  1, 2, 3, 4 ... 12, 13, 14  Weiter
Seite 3 von 14

 
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