Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Quine (https://www.delphipraxis.net/118163-quine.html)

FAlter 1. Aug 2008 17:13


Quine
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

ich wollte mal was außergewöhnliches schreiben.

Mein Ziel war es nicht, den kleinstmöglichen Quine zu schreiben. Ansonsten hätte ich weniger Whitespaces verwendet.

Wer den Quelltest vermisst, ist selber schuld! :cyclops:

Mfg
FAlter

[edit] Variante mit nem readln angehangen. [/edit]

olee 1. Aug 2008 17:15

Re: Quine
 
hmmm

bei mir passirt nix

es blitzt ein fenster auf und ende.

EDIT: Wie wärs mal mit dem Quelltext? Ich vermisse den :mrgreen:

FAlter 1. Aug 2008 17:20

Re: Quine
 
Zitat:

Zitat von olee
hmmm

bei mir passirt nix

es blitzt ein fenster auf und ende.

Hi,

starte das Programm von der Konsole aus, denn es ist ein Konsolenprogramm!

Start :arrow: Ausführen :arrow: cmd :arrow: cd <VerzeichnisInDemQuine.exeLiegt> :arrow: quine

Alternativ kannst du auch im Quelltext ein readln; einbauen, nicht vergessen, das auch in den String einzubauen!

Mfg
FAlter

olee 1. Aug 2008 17:21

Re: Quine
 
cmd ist bei mir deaktiviert :(

FAlter 1. Aug 2008 17:25

Re: Quine
 
Hi,

dann probiers mit einer .bat-Datei mit dem Inhalt

Code:
@echo off
quine.exe
pause > nul
im selben Verzeichnis wie die quine.exe und starte diese. Oder führe besagte readln-Änderung am Quelltext durch. :mrgreen:

Mfg
FAlter

xZise 1. Aug 2008 17:47

Re: Quine
 
Oder probiere doch "command.exe".

MfG
xZise

mr_emre_d 1. Aug 2008 18:09

Re: Quine
 
ich versteh den Sinn nicht ... :gruebel:

MfG

mkinzler 1. Aug 2008 18:16

Re: Quine
 
Das ist Teil des Konzepts

BullsEye 1. Aug 2008 18:18

Re: Quine
 
Zitat:

Zitat von mr_emre_d
ich versteh den Sinn nicht ... :gruebel:

MfG

Geht mir iwie genau so ^^

gruß

Medium 1. Aug 2008 18:19

Re: Quine
 
Wiki-Links klicken soll gelegentlich weiter helfen hab ich mal gehört ;)

mr_emre_d 1. Aug 2008 18:21

Re: Quine
 
ich habs mir angeschaut !
Den Sinn versteh ich aber trotzdem nicht .. !!!

:|
da, mein Einzeiler
Code:
program a;{$APPTYPE CONSOLE}const b='program a;{$APPTYPE CONSOLE}const a=begin end.';begin write(b) end.

mkinzler 1. Aug 2008 18:22

Re: Quine
 
Ein Programm, welches ihren Quelltext ausgibt.

mr_emre_d 1. Aug 2008 18:25

Re: Quine
 
Und ? Was soll das bringen ?
Man programmiert doch nichts, was man nicht braucht ... !

mkinzler 1. Aug 2008 18:27

Re: Quine
 
Wenn der Weg das Ziel ist schon ...

Dax 1. Aug 2008 18:28

Re: Quine
 
Zitat:

Zitat von mr_emre_d
Und ? Was soll das bringen ?

Theorie. Quines sind die Anwendung des Fixpunktsatzes der Rekursionstheorie - und das ist ein schönes, einleuchtendes Beispiel dafür.

FAlter 1. Aug 2008 18:33

Re: Quine
 
Hi,

das macht einfach mal Spaß. Da fühlt man sich gleich häppi und is viel besser als Drogen :mrgreen:

Der Sinn ist es, was lustiges zu tun. Am einfachsten geht es natürlich in HQ9+:

Code:
Q
Mein erster Gedanke war es, einen HQ9+-Interpreter zu programmieren. Dann habe ich stattdessen einen Quine in Delphi geschrieben. Nur so, einfach als Gag, und weil ich in der DP noch keinen gefunden habe. Sowas darf doch nicht fehlen! :stupid:

Mfg
FAlter

[edit] Nachtrag:

Zitat:

Zitat von mr_emre_d
ich habs mir angeschaut !
Den Sinn versteh ich aber trotzdem nicht .. !!!

:|
da, mein Einzeiler
Code:
program a;{$APPTYPE CONSOLE}const b='program a;{$APPTYPE CONSOLE}const a=begin end.';begin write(b) end.

Hi,

jaa, was dein Programm ausgibt, lässt sich nicht mal compilieren:

Delphi-Quellcode:
program a;{$APPTYPE CONSOLE}const a=begin end.
Wenn du die Ausgabe meines Programmes compilierst, erhältst du wieder mein Programm, das ist ein Quine. Es gehört schon ein wenig denken dazu, daher musste ich ja den String in sich selbst so komisch einfügen.

Einen Fehler hab ich allerdings gemacht :oops:

Code:
program Quine; {$APPTYPE CONSOLE} var x: String = 'program Quine; {$APPTYPE CONSOLE} var x: String = ; begin Insert(#39 + x + #39, x, [b]50[/b]); writeln(x); readln; end.'; begin Insert(#39 + x + #39, x, [b]51[/b]); writeln(x); readln; end.
Naja, ist schnell geändert... werds gleich mal korrigieren.

[/edit]

mr_emre_d 2. Aug 2008 03:32

Re: Quine
 
ups, hab mich beim zusammenkopieren vertan :oops: :
Edit:
so müsste es passen:
Code:
program a;{$APPTYPE CONSOLE}const b='program a;{$APPTYPE CONSOLE}const b='''';begin write(b); readln end.';begin write(b) end.
Obwohl .. das ist auch gemogelt .. in b in b steht nicht der code drinnen... geht ja auch nicht xD

Dax 2. Aug 2008 04:26

Re: Quine
 
Das sind alles keine Quines! Sie geben nicht den eigenen Quelltext aus, also treffen sie nicht die Definition ;)

Das ist ein Quine:
Delphi-Quellcode:
program Quine; uses SysUtils; {$APPTYPE CONSOLE} const text = 'program Quine; uses SysUtils; {$APPTYPE CONSOLE} const text = ''~''; begin Write(StringReplace(''~'', text, [])); end.'; begin Write(StringReplace('~', text, [])); end.

FAlter 2. Aug 2008 10:52

Re: Quine
 
Hi,

meine Quines kommen ohne die SysUtils aus (nur System!). Und sie geben wirklich den eigenen Quelltext aus! Hast du dir die Ausgaben überhaupt angesehen?

Quelltext:

Delphi-Quellcode:
program Quine; {$APPTYPE CONSOLE} var x: String = 'program Quine; {$APPTYPE CONSOLE} var x: String = ; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; end.'; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; end.
Ausgabe:
Code:
program Quine; {$APPTYPE CONSOLE} var x: String = 'program Quine; {$APPTYPE CONS
OLE} var x: String = ; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; e
nd.'; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; end.
Bei der anderen Fassung fehlen noch die beiden readln; (im String und die Anweisung).

Nur was mr_emre_d versucht, sind bisher keine Quines gewesen. Mit Konstanten gehts auch nicht, denn es muss ja irgendwie das ganze nochmal dazwischengemogelt werden*. Es sei denn, die Sprache erlaubt den Zugriff auf den Quelltext (was aber i. d. R. nur für Interpretersprachen gilt, und selbst da nicht für alle).

Mfg
FAlter

*) Ok, wenn es zuweisbare Konstanten sind, schon... Dieses uralte TP-Überbleibsel gibts ja auch noch.

Apollonius 2. Aug 2008 14:05

Re: Quine
 
Bist du dir sicher, dass es mit Konstanten nicht geht? Ich habe das zwar nicht ganz durchdacht, aber es müsste mit for-Schleifen möglich sein.

Dax 2. Aug 2008 15:47

Re: Quine
 
Zitat:

Zitat von FAlter
Hi,

meine Quines kommen ohne die SysUtils aus (nur System!). Und sie geben wirklich den eigenen Quelltext aus! Hast du dir die Ausgaben überhaupt angesehen?

Das was hier im Thread steht und die Ur-Version, die (jetzt gelöscht) afair kein Quine war. Falls ich dir damit Unrecht getan habe, nehme ich die Behauptung natürlich zurück - meine Erinnerung kann mich ja auch mal täuschen ;)

FAlter 2. Aug 2008 15:54

Re: Quine
 
Hi,

die falsche Ur-Version (wo genau ein Zeichen falsch war) war aber bereits korrigiert, als du das geschrieben hattest (OK, kein Kommentar dazu gegeben, dachte es reicht, wenn ich schreibe, dass ich es gleich ändere), daher war ich etwas irritiert. Dieses eine Zeichen ist mir beim Vergleichen dann nicht aufgefallen (im Code war einmal 51 (falsch) und einmal 50, in der Ausgabe stand dann zweimal 51).

Mfg
FAlter


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz