С Новым годом! Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12

Куайн (квайн, англ. quine) — компьютерная программа, которая выводит свой код на Pascal

26.03.2021, 10:01. Показов 2830. Ответов 19

Студворк — интернет-сервис помощи студентам
Вот посидел подумал. Сделал свою версию Квайна

Pascal
1
2
3
4
5
6
program Quine;
var A:string;
begin
A:='program Quine; var A:string;begin end.writeln(copy(A,1,14),#10,copy(A,16,13),#10,copy(A,29,5),#10,#65,#58,#61,#39,copy(A,1,300),#39,#59,#10,copy(A,39,300),#10,copy(A,35,4));';
writeln(copy(A,1,14),#10,copy(A,16,13),#10,copy(A,29,5),#10,#65,#58,#61,#39,copy(A,1,300),#39,#59,#10,copy(A,39,300),#10,copy(A,35,4));
end.
Кто нибудь ещё писал свои Квайны на паскале?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2021, 10:01
Ответы с готовыми решениями:

Куайн, квайн (англ. quine)
доброго времени суток! узнал что существует такая вещь как куайн, прочитал статью на вики, попробовал пример(показан на википедии) и у...

Программа которая печатает свой код
Помогите разобраться с "printf" и "char* c" в этой программе, пожалуйста. #include <stdio.h> int main(void){ char* c="#include...

Программа, которая выводит на экран код двухбайтового целого числа
Программа, которая выводит на экран код двухбайтового целого числа.

19
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
14.04.2021, 23:03  [ТС]
Что тут нет таких программистов которые писали такую программу?
0
Модератор
10383 / 5671 / 3399
Регистрация: 17.08.2012
Сообщений: 17,319
22.04.2021, 00:13
А что эту фигню писать-то? Все здешние программисты, полагаю, умеют писать квайны, но предпочитают не заниматься написанием бесполезных программ. Но это не точно.

Чтобы не быть голословным, Вот Вам мой квайн. Только что написал на скорую руку, для кодировки CP866:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const s: array[1..9] of string = (
'const s: array[1..9] of string = (',
'var i: integer;',
'begin',
'writeln(s[1]);',
'for i := 1 to 8 do writeln(#39, s[i], #39#44);',
'writeln(#39, s[9], #39#41#59);',
'for i := 2 to 9 do writeln(s[i]);',
'readln',
'end.');
var i: integer;
begin
writeln(s[1]);
for i := 1 to 8 do writeln(#39, s[i], #39#44);
writeln(#39, s[9], #39#41#59);
for i := 2 to 9 do writeln(s[i]);
readln
end.
1
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
24.04.2021, 21:38  [ТС]
Я запустил твою программу в паскаль онлайн. https://rextester.com/l/pascal_online_compiler
выдает ошибку
Error(s):

Process killed, because it ran longer than 10 seconds. Is your code waiting for keyboard input which is not supplied?
None 4.623152 3976

const s: array[1..9] of string = (
'const s: array[1..9] of string = (',
'var i: integer;',
'begin',
'writeln(s[1]);',
'for i := 1 to 8 do writeln(#39, s[i], #39#44);',
'writeln(#39, s[9], #39#41#59);',
'for i := 2 to 9 do writeln(s[i]);',
'readln',
'end.'

Добавлено через 7 минут
Не выдает код первоначальной программы.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
24.04.2021, 22:50
Что за компилятор в этих онлайн-IDE - неизвестно. Все прекрасно работает локально:


Кстати, по ссылке, достаточно нажать на "+" рядом с Show Input, и ввести пустую строку в открывшемся поле ввода (просто нажать Enter), чтобы программа сразу посчитала это, как нажатие Enter-а пользователем (как реакцию на ReadLn), и завершилась корректно, а не с ошибкой как выше показано. Тогда и там все заработает.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.04.2021, 00:55
thutq,
пишем квайны, но не знаем, что делать с ReadLn в конце...
Выходит, вы писатель исключительно, но не читатель; либо, не поймите меня правильно, копипастер.
Достал книжечку, внёс, поставил "?".
0
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
25.04.2021, 01:01  [ТС]
Не доработана программа получается у тебя. танцы с бубнами нужно вокруг неё исполнять что бы выдала ответ так что ли получается?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.04.2021, 13:41
thutq,
Это с какой стороны посмотреть, у кого с танцами, а у кого без.
Поясню: запустил программу из старт поста щелчком по файлу, что-то где-то моргнуло, ничего не понятно, что произошло. Хотел вывод сравнить с текстом квайна, да не тут-то было: где текст-то, выведённый программой теперь смотреть?
Не доработана программа получается у тебя. Танцы с бубнами нужно вокруг неё исполнять, чтобы выданный ею ответ увидеть, так что ли получается?
0
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
25.04.2021, 18:33  [ТС]
https://rextester.com/l/pascal_online_compiler
Вот паскаль онлайн. запускай и смотри спокойно результат.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.04.2021, 20:24
thutq,
Вот Паскаль офлайн: freepascal.org. Компилируй, запускай и смотри спокойно результат.
Не получилось? Штош... Не доработана программа получается у тебя. Танцы с бубнами нужно вокруг неё исполнять, чтобы выданный ею ответ увидеть, так что ли получается?
1
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
26.04.2021, 08:33  [ТС]
Просто все версии Квайна на паскале которые я нашел в интернете без проблем запускались Паскаль онлайн.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
26.04.2021, 11:48
thutq, ты даже не понял, почему ты не смог запустить вариант Cyborg Drone на своём онлайн-компиляторе?

ладно. специально для тебя я поправил его код так, чтобы программа не останавливалась в конце, чтобы ты спокойно мог запустить его код в онлайн компиляторе https://rextester.com/l/pascal_online_compiler

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const s: array[1..8] of string = (
'const s: array[1..8] of string = (',
'var i: integer;',
'begin',
'writeln(s[1]);',
'for i := 1 to 7 do writeln(#39, s[i], #39#44);',
'writeln(#39, s[8], #39#41#59);',
'for i := 2 to 8 do writeln(s[i])',
'end.');
var i: integer;
begin
writeln(s[1]);
for i := 1 to 7 do writeln(#39, s[i], #39#44);
writeln(#39, s[8], #39#41#59);
for i := 2 to 8 do writeln(s[i])
end.
0
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
26.04.2021, 12:01  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program HelloWorld;
const s: array[1..8] of string = (
'const s: array[1..8] of string = (',
'var i: integer;',
'begin',
'writeln(s[1]);',
'for i := 1 to 7 do writeln(#39, s[i], #39#44);',
'writeln(#39, s[8], #39#41#59);',
'for i := 2 to 8 do writeln(s[i])',
'end.');
var i: integer;
begin
writeln(s[1]);
for i := 1 to 7 do writeln(#39, s[i], #39#44);
writeln(#39, s[8], #39#41#59);
for i := 2 to 8 do writeln(s[i])
end.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const s: array[1..8] of string = (
'const s: array[1..8] of string = (',
'var i: integer;',
'begin',
'writeln(s[1]);',
'for i := 1 to 7 do writeln(#39, s[i], #39#44);',
'writeln(#39, s[8], #39#41#59);',
'for i := 2 to 8 do writeln(s[i])',
'end.');
var i: integer;
begin
writeln(s[1]);
for i := 1 to 7 do writeln(#39, s[i], #39#44);
writeln(#39, s[8], #39#41#59);
for i := 2 to 8 do writeln(s[i])
end.
Добавлено через 44 секунды
Называется найдите отличия

там код не совпадает

Добавлено через 1 минуту
Если не заметили не выводит первую стоку с названием программы
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
26.04.2021, 12:29
Цитата Сообщение от thutq Посмотреть сообщение
не выводит первую стоку с названием программы
А где вы в #3 или #12 увидели "первую стоку с названием программы"?
Не надо здесь спорить с собственными фантазиями, это контрпродуктивно.

Добавлено через 2 минуты
Ээх, а так все хорошо начиналось, "подумал", "свою версию", "квайн"... Тьфу.
1
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
26.04.2021, 12:49  [ТС]
в #3 или #12 там тоже естественно ошибка. Когда смог запустить в Паскаль онлайн то сразу и увидел, что нет соответствия
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
26.04.2021, 13:31
thutq, слушай, а у тебя реально проблемы...
ты где взял строчку
Цитата Сообщение от thutq Посмотреть сообщение
Pascal
1
program HelloWorld;
сам придумал, да? и теперь эта строчка не совпадает с тем, что выводит программа? вот же какая проблема!
Что же теперь с этой проблемой делать, прямо ума не приложу!

ладно. извини, что я пытался помешать тебе жить в своём выдуманном мире с розовыми пони и программами, печатающими свой код, но я исправлюсь, и больше этого не повторится.
0
1 / 1 / 0
Регистрация: 08.12.2020
Сообщений: 12
26.04.2021, 15:34  [ТС]
Вот из учебника взял из Букваря где учат программы писать--

Программа на языке Паскаль начинается с заголовка, имеющего следующий вид: program <имя программы>; За ним идет раздел описаний, в котором должны быть описаны все идентификаторы (константы, переменные, типы, процедуры, функции, метки), которые будут .....

Добавлено через 6 минут
Не я придумал в Учебнике так написано
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
26.04.2021, 15:57
thutq,
дочитайте учебник до фразы "заголовок program является необязательным". Если в этом учебнике нет такой фразы, возьмите актуальный учебник.
Впрочем, делайте что хотите, все уже давно всё поняли.

Добавлено через 22 минуты
Пользуясь тем, что тема находится в разделе Free Pascal, было бы ошибкой не обратиться к его официальной документации:
https://www.freepascal.org/doc... se110.html
16.1 Programs
...
The program header is provided for backwards compatibility, and is ignored by the compiler.
Что на великом и могучем может звучать примерно так:
16.1 Программы
...
Заголовок программы (program идентификатор [(параметры программы)]) предоставлен для обратной совместимости и игнорируется компилятором.
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
26.04.2021, 19:55
Согласен, program - необязательный элемент программы.
Но, как всегда, есть нюансы. Лучше, чтобы этот элемент присутствовал - тогда работает автоформаттер исходного кода (отступы) JCF. Именно он и в Lazarus установлен, можно и отдельными программами пользоваться.
0
Модератор
10383 / 5671 / 3399
Регистрация: 17.08.2012
Сообщений: 17,319
29.04.2021, 10:34
thutq... Вы меня огорчили.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2021, 10:34
Помогаю со студенческими работами здесь

Программа, которая выводит на экран код однобайтового целого числа
Программа, которая выводит на экран код однобайтового целого числа.

Компьютерная программа, которая позволяет
Решите задачу, если можно с обьяснениями http://savepic.ru/4298124m.jpg Будьте любезны ознакомиться с правилами форума, по...

Програма, которая выводит свой текст
Очень нужна програма которая выводит свой текст полностью . На Pascal''e или С++.

Вывести код программы или Квайн
В какой то книге по С# видел очень простой пример реализации этого. То что предлагает Wiki не то там вроде был отдельный класс. Просьба...

Программа, которая находит и выводит наибольшую сумму двух соседних элементов, которая не кратна 3
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать значения от -10 000 до 10 000 . Опишите на естественном языке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru