Страниц: 1 [2]
  Печать  
Автор Тема: Автопортрет (для программистов)  (Прочитано 8182 раз)
0 Пользователей и 1 Гость смотрят эту тему.

Много детей
В одной семье было много детей. Семеро из них любили капусту, шестеро – морковь, пятеро – горох. Четверо любили капусту и морковь, трое - капусту и горох, двое - морковь и горох. А один охотно ел и капусту, и морковь, и горох. Сколько детей было в семье?

Рыболовы
Леня, Дима, Коля и Алик подсчитывали после рыбной ловли свои трофеи. В результате выяснилось следующее. Алик поймал больше, чем Коля. Леня и Дима вместе поймали рыбы столько же, сколько поймали Коля и Алик. Леня и Алик вместе поймали меньше рыбы, чем Дима и Коля. Как между рыболовами распределились места по количеству выловленной рыбы?

Туристы

За границу поехала группа туристов из 100 человек. 10 из них не знали ни немецкого, ни французского языка. 75 знали немецкий язык. 83 человека знали французский. Сколько туристов владело обоими иностранными языками?

Три сестры
В семье трое детей. Тоне вдвое больше лет, чем будет Гале, тогда, когда Жене исполнится столько же лет, сколько Тоне сейчас. Кто из них самый младший, кто старший, а кто средний по возрасту?
Seamew
Умник
****
Offline Offline

Сообщений: 509

СПАСИБО
-вы поблагодарили: 76
-вас поблагодарили: 148


будет буря


Просмотр профиля
Ответ #15 : Март 16, 2012, 10:57:39 �

а зачем он?
Записан

Над седой равниной моря гордо реет буревестник..
mayer
Гений-Говорун
*
Offline Offline

Сообщений: 1869

СПАСИБО
-вы поблагодарили: 895
-вас поблагодарили: 332


!!!!!!!!!!!!!!

220119935
Просмотр профиля
Ответ #16 : Март 16, 2012, 11:03:48 �

а зачем он?

Показать скрытый текст.  Я ж в этом нифига не шарю,если честно. Smiley
Записан

Никогда ни о чем не сожалей: иногда неприятности случаются во благо, а мечты не исполняются к лучшему.
Вилли ☂
Гений-Говорун
*
Offline Offline

Сообщений: 1572

СПАСИБО
-вы поблагодарили: 532
-вас поблагодарили: 722





Просмотр профиля
Ответ #17 : Март 16, 2012, 11:12:33 �

а поподробнее? что не так?

Код:
Код:
begin
i="print i"
print "begin i="print i""
print i "end"
end

Результат выполнения (даже, если закрыть глаза на все кавычки):
Цитировать
begin
i="print i"
print i
end
отсутствуют третья и пятая строчки
Записан
☭-Изделие 20Д
Ум
*****
Offline Offline

Сообщений: 7915

СПАСИБО
-вы поблагодарили: 6291
-вас поблагодарили: 2516


[img] http://s016.radikal.ru/i337/1409/6a/5b2b5c71

614445846
Просмотр профиля Email
Ответ #18 : Март 16, 2012, 11:41:17 �

это называется куайн

я могу написать куайн на языке hq9+:

Код:
q
Было уже

http://nazva.net/forum/in....msg154155.html#msg154155
Последнее редактирование: Март 16, 2012, 11:55:15 от Изделие 20Д Записан

☭-Изделие 20Д
Ум
*****
Offline Offline

Сообщений: 7915

СПАСИБО
-вы поблагодарили: 6291
-вас поблагодарили: 2516


[img] http://s016.radikal.ru/i337/1409/6a/5b2b5c71

614445846
Просмотр профиля Email
Ответ #19 : Март 16, 2012, 11:52:23 �

я как проженный програмист отвечу - низя такую программу написать
http://nazva.net/forum/in....msg154155.html#msg154155
Последнее редактирование: Март 16, 2012, 11:59:13 от Изделие 20Д Записан

Seamew
Умник
****
Offline Offline

Сообщений: 509

СПАСИБО
-вы поблагодарили: 76
-вас поблагодарили: 148


будет буря


Просмотр профиля
Ответ #20 : Март 16, 2012, 14:12:30 �

а поподробнее? что не так?

Код:
Код:
begin
i="print i"
print "begin i="print i""
print i "end"
end

Результат выполнения (даже, если закрыть глаза на все кавычки):
Цитировать
begin
i="print i"
print i
end
отсутствуют третья и пятая строчки

ну тогда как-то так?

begin
i="print a"
a="print "begin i="print a"""
print "begin i="print a" a="" a """ - вот эти последние три кавычки.. ну это я кавычку в кавычках написала)))
print a "a=""a""  end"
end
Записан

Над седой равниной моря гордо реет буревестник..
Вилли ☂
Гений-Говорун
*
Offline Offline

Сообщений: 1572

СПАСИБО
-вы поблагодарили: 532
-вас поблагодарили: 722





Просмотр профиля
Ответ #21 : Март 16, 2012, 17:46:46 �

Ну не получиться так.

Вот посмотри свои последние строчки:
Цитировать
...
print a "a=""a""  end"
end
END тут 2 раза
а на выходе только один:

Цитировать
[тут я не разобрал, что получится, но второго END там точно нет]
end

Да и с кавычками тут не так всё просто.
И сцеплять параметры PRINT так неверно.
Но ты молодец!  Показывает сердце
Записан
moonlight
Умник
****
Offline Offline

Сообщений: 741

СПАСИБО
-вы поблагодарили: 19
-вас поблагодарили: 232


Просмотр профиля Email
Ответ #22 : Март 16, 2012, 21:38:49 �

Когда-то давно писал я эту программу на Delphi. Это на C#, идея та же.
Код:
using System;
namespace Avtoportret
{
    class Program
    {
        static void Main()
        {
            char[] ch = { ' ', (char)34, 's', '[', ']', '=', ';' };
            string[] s = new string[ch.Length];
            for (int i = 0; i < s.Length; i++) s[i] = ch[i].ToString();
            string s0 = s[0];
            for (int i = 0; i < 11; i++) s0 += s[0];
            string[] ss = new string[21];
            ss[0] = "using System;";
            ss[1] = "namespace Avtoportret";
            ss[2] = "{";
            ss[3] = "    class Program";
            ss[4] = "    {";
            ss[5] = "        static void Main()";
            ss[6] = "        {";
            ss[7] = "            char[] ch = { ' ', (char)34, 's', '[', ']', '=', ';' };";
            ss[8] = "            string[] s = new string[ch.Length];";
            ss[9] = "            for (int i = 0; i < s.Length; i++) s[i] = ch[i].ToString();";
            ss[10] = "            string s0 = s[0];";
            ss[11] = "            for (int i = 0; i < 11; i++) s0 += s[0];";
            ss[12] = "            string[] ss = new string[21];";
            ss[13] = "            for (int i = 0; i < 13; i++) Console.WriteLine(ss[i]);";
            ss[14] = "            for (int i = 0; i < ss.Length; i++)";
            ss[15] = "            { Console.WriteLine(s0 + s[2] + s[2] + s[3] + i + s[4] + s[0] + s[5] + s[0] + s[1] + ss[i] + s[1] + s[6]); }";
            ss[16] = "            for (int i = 13; i < ss.Length; i++) Console.WriteLine(ss[i]);";
            ss[17] = "            Console.ReadLine();";
            ss[18] = "        }";
            ss[19] = "    }";
            ss[20] = "}";
            for (int i = 0; i < 13; i++) Console.WriteLine(ss[i]);
            for (int i = 0; i < ss.Length; i++)
            { Console.WriteLine(s0 + s[2] + s[2] + s[3] + i + s[4] + s[0] + s[5] + s[0] + s[1] + ss[i] + s[1] + s[6]); }
            for (int i = 13; i < ss.Length; i++) Console.WriteLine(ss[i]);
            Console.ReadLine();
        }
    }
}


Эти пользователи сказали вам СПАСИБО :

Вилли ☂

За это сообщение 1 пользователь сказал спасибо!
Записан

Зачем откладывать на завтра то, что можно отложить на послезавтра?
moonlight
Умник
****
Offline Offline

Сообщений: 741

СПАСИБО
-вы поблагодарили: 19
-вас поблагодарили: 232


Просмотр профиля Email
Ответ #23 : Март 17, 2012, 16:36:13 �

а вот для такого языка придумайте квин:

в языке есть единственный тип данных - строка
нельзя конвертировать ASCII-коды в строку, т.к. в языке нет чисел
нельзя брать подстроку
нельзя брать конкатенацию двух строк
можно только присваивать строки и печатать их

в языке всего 3 оператора:

1) присваивание строки:
X="строка"
присваивать можно только строки, не содержащие кавычек
Вместо X можно подставить любое однобуквенное имя переменной

2) печать строки из переменной X:
PX
можно заменить переменную X любой другой буквой

3) печать одной кавычки:
Q

программа - это одна строка (нет переносов строк, пробелов, точек с запятой и т.д.)

пример программы, печатающей слово Привет
X="Привет"PX

пример программы, печатающей фразу Привет, "Назва"
Y="Привет, "Z="Назва"PYQPZQ
кавычку нельзя включить в строку, поэтому приходится печатать одну строку, потом печатать кавычку, потом печатать другую строку и завершающую кавычку

Напишите для этого языка квин

Могут ли P и Q быть именами переменных?
Можно ли одной строке присваивать значение другой строки?
Если да то результатом программы QP="P=Q"Q=PPPPQQ будет "P=QP=Q" ?
Записан

Зачем откладывать на завтра то, что можно отложить на послезавтра?
iPhonograph
Гений-Говорун
*
Offline Offline

Сообщений: 2100

СПАСИБО
-вы поблагодарили: 561
-вас поблагодарили: 1315

Дискоед


Просмотр профиля
Ответ #24 : Март 17, 2012, 16:53:00 �

Могут ли P и Q быть именами переменных?
да
строка программы разбивается на последовательность операторов единственным способом, даже если переменные называются P и Q

Цитировать
Можно ли одной строке присваивать значение другой строки?
пусть будет можно
это расширение языка не упростит задачу

Цитировать
результатом программы QP="P=Q"Q=PPPPQQ будет "P=QP=Q" ?
да

Записан

"Было бы величайшей ошибкой думать" (с) В.И.Ленин, Полн. cобр. cоч., т.34, стр.375
Вилли ☂
Гений-Говорун
*
Offline Offline

Сообщений: 1572

СПАСИБО
-вы поблагодарили: 532
-вас поблагодарили: 722





Просмотр профиля
Ответ #25 : Март 18, 2012, 14:58:42 �

Когда-то давно писал я эту программу на Delphi. Это на C#, идея та же.
похоже.  Мир
Записан
Страниц: 1 [2]
  Печать  
 
Перейти в: