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] |
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: |
Re: Quine
Zitat:
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 |
Re: Quine
cmd ist bei mir deaktiviert :(
|
Re: Quine
Hi,
dann probiers mit einer .bat-Datei mit dem Inhalt
Code:
im selben Verzeichnis wie die quine.exe und starte diese. Oder führe besagte readln-Änderung am Quelltext durch. :mrgreen:
@echo off
quine.exe pause > nul Mfg FAlter |
Re: Quine
Oder probiere doch "command.exe".
MfG xZise |
Re: Quine
ich versteh den Sinn nicht ... :gruebel:
MfG |
Re: Quine
Das ist Teil des Konzepts
|
Re: Quine
Zitat:
gruß |
Re: Quine
Wiki-Links klicken soll gelegentlich weiter helfen hab ich mal gehört ;)
|
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.
|
Re: Quine
Ein Programm, welches ihren Quelltext ausgibt.
|
Re: Quine
Und ? Was soll das bringen ?
Man programmiert doch nichts, was man nicht braucht ... ! |
Re: Quine
Wenn der Weg das Ziel ist schon ...
|
Re: Quine
Zitat:
|
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:
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:
Q
Mfg FAlter [edit] Nachtrag: Zitat:
jaa, was dein Programm ausgibt, lässt sich nicht mal compilieren:
Delphi-Quellcode:
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.
program a;{$APPTYPE CONSOLE}const a=begin end.
Einen Fehler hab ich allerdings gemacht :oops:
Code:
Naja, ist schnell geändert... werds gleich mal korrigieren.
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.
[/edit] |
Re: Quine
ups, hab mich beim zusammenkopieren vertan :oops: :
Edit: so müsste es passen:
Code:
Obwohl .. das ist auch gemogelt .. in b in b steht nicht der code drinnen... geht ja auch nicht xD
program a;{$APPTYPE CONSOLE}const b='program a;{$APPTYPE CONSOLE}const b='''';begin write(b); readln end.';begin write(b) end.
|
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.
|
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:
Ausgabe:
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.
Code:
Bei der anderen Fassung fehlen noch die beiden readln; (im String und die Anweisung).
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. 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. |
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.
|
Re: Quine
Zitat:
|
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