Autor Beitrag
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Mi 17.01.18 18:30 
Moin,
dies Programm löst die Aufgabe 3 aus dem BWInf 12, 1993.

Für ein Hotel sollen neue Schlüssel hergestellt werden.
Ein Schlüssel besteht aus einer Karte mit Löchern, die von einem Lichtstrahl im Türschloß
abgetastet werden. Das Schloß wird passend eingestellt.
Rohling:
O#O#O#O
#O#O#O#
O#O#O#O
#O#O#O#
O#O#O#O
#O#O#O#
O#O#O#O
#O#O#O#
O#O#O#O
Hotel
Die Schlüssel müssen folgende Regeln erfüllen:
Von den 32 möglichen Positionen sind wenigstens 5 mit einem Loch zu versehen.
Es darf keine der Spalten, Zeilen oder Diagonalen vollständig gelocht sein
Keine zwei Schlüssel dürfen identisch oder zueinander symmetrisch sein.
Nach dem Start wird die Anzahl der zu generierenden Schlüssel festgelegt, maximal 9999.
Identische oder symmetrische werden nicht gespeichert.
Die Schlüssel werden durch eine 32-Bit Zahl dargestellt.
Anschließend können aus einem festgelegten Bereich die Schlüssel angezeigt werden.
Viel Spaß beim Testen.
Gruß Fiete
Einloggen, um Attachments anzusehen!
_________________
Fietes Gesetz: use your brain (THINK)


Zuletzt bearbeitet von Fiete am Mi 17.01.18 23:23, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Narses
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Mi 17.01.18 23:06 
Hallo Fiete

Bei Deinem Eintrag scheinen zwei Fehler vorhanden zu sein (siehe Bild im Anhang).
- Zum einen erscheint unter dem (ersten) Schlüsselbild, ein weiteres mit dem Hinweis "Bild nicht gefunden..."
- und zum anderen scheint das Downloadfile auch nicht zu existieren, bzw. es wird nicht gefunden.

Edit:

@EE-Team:
Interessanterweise wird der Downloadzähler aber um eins hochgezählt

Gruss
Blawen
Einloggen, um Attachments anzusehen!
_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Mi 17.01.18 23:30 
Moin Blawen,
Fehler behoben.
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Do 18.01.18 00:06 
user profile iconFiete hat folgendes geschrieben Zum zitierten Posting springen:
Moin Blawen,
Fehler behoben.
Gruß Fiete
Das Bild wird nun angezeigt, die Datei wird aber nach wie vor nicht gefunden.

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Do 18.01.18 09:55 
Moin Blawen,
war gestern Abend wohl zu müde.
Das Programm und Quelltext sind neu hochgeladen, hoffe es klappt.
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Fr 19.01.18 11:06 
Hallo,

immer wieder erstaunlich, wie schnell die Ausgabe mit Delphi ist.Mit Lazarus kompiliert wird es relativ dazu sehr langsam.
"Heute" würde man sicher mit vorproduzierten Bitmustern arbeiten, um die Gültigkeit einer Karte zu prüfen, zumal ja die Karten als 32-Bitfeld gespeichert werden.
Wäre es ein Vorteil, die produzierten Karten sortiert zu halten, dann könnte man mit binärer Suche Kollisionen entdecken.
Egal, Rechnergeschwindigkeit ersetzt alles.Bei KartenMax auf 99999 erhöht sind es nur 10000-Kollisionen gewesen und die Hand noch nicht an der Kaffeetasse.
Schön umgesetzt.

Gruß Horst
P.S
Wenn nur 16 Karten erstellt, will das Programm nochmals Karten anzeigen und das sind dann nur leere Felder
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Fr 19.01.18 15:08 
Moin,
Zitat:
Wenn nur 16 Karten erstellt, will das Programm nochmals Karten anzeigen und das sind dann nur leere Felder.

Wenn Du in Zeile 286
ausblenden Delphi-Quelltext
1:
if K=AN then Abbruch:=True;					

einfügst ist der Fehler behoben.
Hab ich zu spät bemerkt. :oops:
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 19.01.18 17:36 
user profile iconFiete hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
if K=AN then Abbruch:=True;					

Noch ein Quentchen eleganter (m.E.):
ausblenden Delphi-Quelltext
1:
Abbruch:=K=AN;					

_________________
Ordnung ist das halbe Leben - und sie zu schaffen die andere Hälfte.
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Fr 19.01.18 18:26 
Moin,
ja stimmt, hab ich schon mal benutzt.
Es gibt nichts was nicht verbessert werden könnte.
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: So 21.01.18 16:17 
ausblenden Delphi-Quelltext
1:
Abbruch:=K=AN;					

...wird nicht compilieren wenn K und AN Integer (oder so) sind.
ausblenden Delphi-Quelltext
1:
Abbruch := (K = AN);					

...das schon eher.

PS: Bitte beachtet wenigstens für die QT Beispiele den Delphi Styleguide.
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: So 21.01.18 19:07 
Warum sollte es nicht kompilieren wenn man die Klammern weglässt? Du weist ja auf die Boolean Variable trotzdem sozusagen den Vergleich zu, der einen Bool-Wert zurückgibt. Die Klammer ändert da meines Wissens nach nichts. Oder ist das eine weitere Delphi-Macke? ^^

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: So 21.01.18 22:55 
Der Compiler verarbeitet die Anweisung korrekt!
Die Klammer ist überflüssig.
Ich arbeite mit D6 pro
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: So 21.01.18 22:59 
Hätte mich auch gewundert, wenn nicht. Danke für die Bestätigung!
In D7 geht es ebenfalls

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)