На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Ради интереса, и если модераторы не против, давайте устроим конкурс на самую короткую программу на паскале или си (отдельно 2 конкурса), которая выводит свой текст на экран. Пробелы и лайнбрейки не в счет. Постим сюда. 
П.С. Не надо плиз решений которые ищут прогу в памяти и злобно ее дизассемблируют, или просто читают с диска 
Поза форумом
var a:array[1..100]of string;i:integer;
begin
a[2]:=' var a:array[1..100]of string;i:integer;';
a[3]:='begin';
a[4]:='for i:=2 to 3 do writeln(a[i])';
a[5]:='for i:=2 to 11 do begin';
a[6]:=' write(chr(97),chr(91),i);';
a[7]:=' write(chr(93),chr(58),chr(61));';
a[8]:=' writeln(chr(39),a[i],chr(39),chr(59));';
a[9]:='end;';
a[10]:='for i:=4 to 11 do writeln(a[i])';
a[11]:='end.';
for i:=2 to 3 do writeln(a[i]);
for i:=2 to 11 do begin
    write(chr(97),chr(91),i);
    write(chr(93),chr(58),chr(61));
    writeln(chr(39),a[i],chr(39),chr(59));
end;
for i:=4 to 11 do writeln(a[i]);
end.Поза форумом

var s,k,l,b,t,c:string;begin s:='var s,k,l,b,t,c:string;begin s:=';
c:=chr(39);t:=c+chr(59);l:=chr(98)+s[31]+s[32];k:='c:=chr(39);t:=c+chr(59);l:=chr(98)+s[31]+s[32];k:=';
b:='writeln(s,c,s,t);writeln(k,c,k,t);writeln(l,c,m,t);writeln(m);end.';
writeln(s,c,s,t);writeln(k,c,k,t);writeln(l,c,b,t);writeln(b);end.
Відредаговано Andrey (2005-10-16 20:10:37)
Поза форумом

А вот еще меньше:
const i=chr(98)+chr(61);c=chr(39);l=c+chr(59);s='const i=chr(98)+chr(61);c=chr(39);l=c+chr(59);s=';
b='begin writeln(s,c,s,l);write(i,c,b,l);write(b);end.';begin writeln(s,c,s,l);write(i,c,b,l);write(b);end.
Поза форумом

const i=chr(98)+chr(61);c=chr(39);l=c+chr(59);s='const i=chr(98)+chr(61);c=chr(39);l=c+chr(59);s=';
b='begin writeln(s,c,s,l);write(i,c,b,l,b);end.';begin writeln(s,c,s,l);write(i,c,b,l,b);end.
Поза форумом

Сишники! Вы где? Подтягиваемся! А вот такая программа(120 байт):
 А вот такая программа(120 байт):
#include<stdio.h>
char*s="#include<stdio.h>%cchar*s=%c%s%c;main(){printf(s,10,34,s,34);}";main(){printf(s,10,34,s,34);}Поза форумом
Привіт від сяшників до Олімпійця. Я трохи покодив і в мене є текст на 105 байт. 
#include <stdio.h>
main(){char c;FILE *f=fopen("short.cpp","r+");while(c!=EOF)fputc(c=fgetc(f),stdout);}Хто може краще - пишіть
Поза форумом
Ще одне. Якщо назву файлу поміняти на 1.с, то розмір коду стає 98 байт  і виглядить так.
 і виглядить так.
#include <stdio.h>
main(){char c;FILE *f=fopen("1.c","r");while(c!=EOF)fputc(c=fgetc(f),stdout);}Поза форумом

engineer прочитай саме перше повідомлення цієї теми
Rybak написав:
Не надо плиз решений которые ищут прогу в памяти и злобно ее дизассемблируют, или просто читают с диска
твоя прога читає файл свого ж тексту 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
Поза форумом

Еще можно предложить отдельно рассматривать программы на, так сказать, абстрактном паскале, т.е. без аппаратной привязки. Я имею ввиду использование таблицы символов ASCII. Я не уверен что chr(34) даже сейчас выдаст кавычку на любой платформе, а использование chr значительно расширяет возможности. Давайте еще попробуем без этого.
П.С. Андрей, твой код еще можно уменьшить, давай! 
П.П.С reiten - круто; интересно, можно ли меньше?
Поза форумом
попытался улучшить код андрея
const i=chr(59)+chr(98)+chr(61);c=chr(39);s='const i=chr(59)+chr(98)+chr(61);c=chr(39);s=';
b=';begin write(s,c,s,c,i,c,b,c,b);end.';begin write(s,c,s,c,i,c,b,c,b);end.
Поза форумом
Ivan написав:
попытался улучшить код андрея
const i=chr(59)+chr(98)+chr(61);c=chr(39);s='const i=chr(59)+chr(98)+chr(61);c=chr(39);s=';
b=';begin write(s,c,s,c,i,c,b,c,b);end.';begin write(s,c,s,c,i,c,b,c,b);end.
А перевод строки вывести? В турбо паскале строки не больше 128 символов
Поза форумом
Rybak написав:
. Пробелы и лайнбрейки не в счет.
Поза форумом
const i=#10#13+chr(59)+chr(98)+chr(61);c=chr(39);s='const i=#10#13+chr(59)+chr(98)+chr(61);c=chr(39);s=';
b=';begin write(s,c,s,c,i,c,b,c,b);end.';begin write(s,c,s,c,i,c,b,c,b);end.
Поза форумом

Иван. У тебя один символ ";" переносится во вторую строку. 
Rybak написав:
Еще можно предложить отдельно рассматривать программы на, так сказать, абстрактном паскале, т.е. без аппаратной привязки. Я имею ввиду использование таблицы символов ASCII. Я не уверен что chr(34) даже сейчас выдаст кавычку на любой платформе, а использование chr значительно расширяет возможности.
А ковычка, это 39й код  . Так что, написать без чара?
. Так что, написать без чара?
Поза форумом
Andrey написав:
А ковычка, это 39й код
. Так что, написать без чара?
Двойная кавычка - это 34й 
Ну да, напиши. А твой код все-таки можно уменьшить, сильнее чем предложил Иван.
Поза форумом

144 Байт:
CONST S:STRING='CONST S:STRING=;BEGIN WRITE(COPY(S,1,15)+#39+S+#39+COPY(S,16,70));END.'
;BEGIN WRITE(COPY(S,1,15)+#39+S+#39+COPY(S,16,70));END.
Відредаговано ROBOT (2005-10-29 11:49:52)
Поза форумом

Ещё вариант:
uses my; Begin k; End.
(в модуле my проц. k)
Поза форумом
Ivan написав:
Rybak написав:
. Пробелы и лайнбрейки не в счет.
Не заметил, поэтому отвечаю только сейчас. Я тогда имел ввиду что пробелы и лайнбрейки не в счет когда сравниваем, чей код короче, но выводить их надо. Хотя теперь мне кажется что и при сравнении можно учитывать
Поза форумом
ROBOT написав:
144 Байт:
CONST S:STRING='CONST S:STRING=;BEGIN WRITE(COPY(S,1,15)+#39+S+#39+COPY(S,16,70));END.'
;BEGIN WRITE(COPY(S,1,15)+#39+S+#39+COPY(S,16,70));END.
Прикольно.
1) Замена chr на # это действительно круто
2) Использование copy() очень портится тем, что в борланд паскале нельзя его применять если константа не описана как String - обидно, но из-за этого copy() менее выгодна чем использование нескольких переменных, как у Андрея.
3) Ты не выводишь перевод строки.
4) Давай на 10 символов меньше? 
Поза форумом
ROBOT написав:
Ещё вариант:
uses my; Begin k; End.
(в модуле my проц. k)
Прикольно 
Я уже думал о том, что можно специальный язык Retro сделать, в котором нету главных Begin-End или {} (т.е. обрамляющих тело программы), весь остальной синтаксис - как в Паскале, и есть встроенная процедура U, которая выводит символ U на экран  . На таком языке решение бы состояло из одного символа U.
. На таком языке решение бы состояло из одного символа U.
Поза форумом

Я тут значит отлучался не на долго (писал игрушку Го в паскале и до сих пор пишу на нее соперника), а вы тут уже понапридумывали... Молодцы... Посмотрев и оценив... Думаю эта прога короче (не считая язык ретро):
uses q;begin end.
Вот мой юнит:
unit q;
interface
implementation
begin
write('uses q;begin end.');
end.
В юните стоит постоянный вывод при использовании... 
Итого 17 байт... Я думаю что создание Ретро не совсем удачная идея, так как в у словии писалось про паскаль и си. 
Еще на 10 символов? 
Поза форумом
Andrey написав:
Я тут значит отлучался не на долго (писал игрушку Го в паскале и до сих пор пишу на нее соперника), а вы тут уже понапридумывали... Молодцы... Посмотрев и оценив... Думаю эта прога короче (не считая язык ретро):
uses q;begin end.
Вот мой юнит:
unit q;
interface
implementation
begin
write('uses q;begin end.');
end.
В юните стоит постоянный вывод при использовании...
Итого 17 байт... Я думаю что создание Ретро не совсем удачная идея, так как в у словии писалось про паскаль и си.
Еще на 10 символов?
Да. тут на 10 символов врядли  , но я про Ретро писал к тому, что решения с модулем типа твоего - этот примерно так же честно, как язык Ретро
, но я про Ретро писал к тому, что решения с модулем типа твоего - этот примерно так же честно, как язык Ретро  . В принципе прикольно, но по сути, твоя программа состоит из двух частей, одна из которых выводит другую. А надо чтоб всю.
. В принципе прикольно, но по сути, твоя программа состоит из двух частей, одна из которых выводит другую. А надо чтоб всю.
Так что это тоже не совсем то что в условии. А вот программу ROBOTа можно уменьшить.
Поза форумом