AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Quine

Ein Thema von FAlter · begonnen am 1. Aug 2008 · letzter Beitrag vom 2. Aug 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von FAlter
FAlter
Registriert seit: 21. Jul 2004
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!

Mfg
FAlter

[edit] Variante mit nem readln angehangen. [/edit]
Angehängte Dateien
Dateityp: zip quine_155.zip (9,2 KB, 24x aufgerufen)
Dateityp: zip quine_469.zip (9,4 KB, 27x aufgerufen)
 
mr_emre_d
 
#11
  Alt 1. Aug 2008, 18:21
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.
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#12
  Alt 1. Aug 2008, 18:22
Ein Programm, welches ihren Quelltext ausgibt.
Markus Kinzler
  Mit Zitat antworten Zitat
mr_emre_d
 
#13
  Alt 1. Aug 2008, 18:25
Und ? Was soll das bringen ?
Man programmiert doch nichts, was man nicht braucht ... !
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#14
  Alt 1. Aug 2008, 18:27
Wenn der Weg das Ziel ist schon ...
Markus Kinzler
  Mit Zitat antworten Zitat
Dax
 
#15
  Alt 1. Aug 2008, 18:28
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.
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
Delphi 10.2 Tokyo Starter
 
#16
  Alt 1. Aug 2008, 18:33
Hi,

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

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!

Mfg
FAlter

[edit] Nachtrag:

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:

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

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]
Felix Alter
  Mit Zitat antworten Zitat
mr_emre_d
 
#17
  Alt 2. Aug 2008, 03:32
ups, hab mich beim zusammenkopieren vertan :
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
  Mit Zitat antworten Zitat
Dax
 
#18
  Alt 2. Aug 2008, 04:26
Das sind alles keine Quines! Sie geben nicht den eigenen Quelltext aus, also treffen sie nicht die Definition

Das ist ein Quine: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.
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
Delphi 10.2 Tokyo Starter
 
#19
  Alt 2. Aug 2008, 10:52
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:

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.
Felix Alter
  Mit Zitat antworten Zitat
Apollonius

 
Turbo Delphi für Win32
 
#20
  Alt 2. Aug 2008, 14:05
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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