Задачка от БС.
От: Fantasist  
Дата: 13.11.02 06:40
Оценка: 14 (1)
Вот тут случайно наткнулся на задачку от Страуструпа.


Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


Я подумал, но больше чем 8 выставить не смог:

class A
{ 
  friend static inline const unsigned int operator or(const A&,const A&);
 ...
};


Как, скажите, можно записать 10(или даже более)?

Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.
Re: Задачка от БС.
От: Klestov  
Дата: 13.11.02 06:48
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Вот тут случайно наткнулся на задачку от Страуструпа.


F>

F>

F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>Я подумал, но больше чем 8 выставить не смог:


F>
F>class A
F>{ 
F>  friend static inline const unsigned int operator or(const A&,const A&);
F> ...
F>};

F>


F>Как, скажите, можно записать 10(или даже более)?


F>Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.



do do do do do do do do do while (true) break;  while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);


Re: Задачка от БС.
От: Kaa Украина http://blog.meta.ua/users/kaa/
Дата: 13.11.02 06:58
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Как, скажите, можно записать 10(или даже более)?


Ну, второе, что пришло в голову:

while ( sizeof unsigned char )
  while( sizeof signed short )
    while( sizeof unsigned long )
      return;


typedef struct
{
  typedef struct
  {
    typedef struct
    {
... // хоть до позеленения
    } TInner3;
  } TInner2;
} TOuter;
... << RSDN@Home 1.0 alpha 12 >>
Алексей Кирдин
Re[2]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:02
Оценка:
Здравствуйте Kaa, Вы писали:

Kaa>
Kaa>while ( sizeof unsigned char )
Kaa>  while( sizeof signed short )
Kaa>    while( sizeof unsigned long )
Kaa>      return;


'(' — символ пунктуации

Избыточное цитирование удалено модератором. -- ПК
Re[3]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:04
Оценка:
Здравствуйте Klestov, Вы писали:

K>Здравствуйте Kaa, Вы писали:


Kaa>>Здравствуйте Fantasist, Вы писали:


F>>>Как, скажите, можно записать 10(или даже более)?


Kaa>>Ну, второе, что пришло в голову:


Kaa>>
Kaa>>while ( sizeof unsigned char )
Kaa>>  while( sizeof signed short )
Kaa>>    while( sizeof unsigned long )
Kaa>>      return;
Kaa>>


Kaa>>
Kaa>>typedef struct
Kaa>>{
Kaa>>  typedef struct
Kaa>>  {
Kaa>>    typedef struct
Kaa>>    {
Kaa>>... // хоть до позеленения
Kaa>>    } TInner3;
Kaa>>  } TInner2;
Kaa>>} TOuter;
Kaa>>


Kaa>>


K>'(' — символ пунктуации


Да и символ '{' тоже
Re[2]: Задачка от БС.
От: Fantasist  
Дата: 13.11.02 07:08
Оценка:
Здравствуйте Klestov, Вы писали:


F>>

F>>

F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


K>
K>do do do do do do do do do while (true) break;  while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
K>


Не, об этом я первым делом подумал, но: "...десяти идущих подряд различных ключевых"
Re[3]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:09
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Здравствуйте Klestov, Вы писали:


F>

F>>>
F>>>

F>>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


K>>
K>>do do do do do do do do do while (true) break;  while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
K>>


F>Не, об этом я первым делом подумал, но: "...десяти идущих подряд различных ключевых"


10 совершенно различных ? Ну тогда ... подумаем
Re[4]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:16
Оценка: 5 (1)
Здравствуйте Klestov, Вы писали:

K>Здравствуйте Fantasist, Вы писали:


F>>Здравствуйте Klestov, Вы писали:


F>>

F>>>>
F>>>>

F>>>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


K>>>
K>>>do do do do do do do do do while (true) break;  while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
K>>>


F>>Не, об этом я первым делом подумал, но: "...десяти идущих подряд различных ключевых"


K>10 совершенно различных ? Ну тогда ... подумаем



Комментарий

/*
for do class this struct break switch case friend inline
*/
Re: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:23
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Вот тут случайно наткнулся на задачку от Страуструпа.


F>

F>

F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>Я подумал, но больше чем 8 выставить не смог:


F>
F>class A
F>{ 
F>  friend static inline const unsigned int operator or(const A&,const A&);
F> ...
F>};

F>


F>Как, скажите, можно записать 10(или даже более)?


F>Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.



#define for
#define do
#define class
#define this
#define struct
#define break
#define switch
#define case
#define friend
#define inline

for do class this struct break switch case friend inline
Re[2]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:24
Оценка:
Здравствуйте Klestov, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

K>
K>#define for
K>#define do
K>#define class
K>#define this
K>#define struct
K>#define break
K>#define switch
K>#define case
K>#define friend
K>#define inline

K>for do class this struct break switch case friend inline
K>


Не честно но работает )))))))))))))))))
Re[3]: Задачка от БС.
От: Fantasist  
Дата: 13.11.02 07:31
Оценка:
Здравствуйте Klestov, Вы писали:

K>>
K>>#define for
K>>#define do
K>>#define class
K>>#define this
K>>#define struct
K>>#define break
K>>#define switch
K>>#define case
K>>#define friend
K>>#define inline

K>>for do class this struct break switch case friend inline
K>>


K>Не честно но работает )))))))))))))))))


Ну, что так работает это понятно. Но так не интересно, так и гораздо больше уместить можно.
Re: Задачка от БС.
От: Андрей Тарасевич Беларусь  
Дата: 13.11.02 07:38
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Вот тут случайно наткнулся на задачку от Страуструпа.


F>

F>

F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>Я подумал, но больше чем 8 выставить не смог:


F>
F>class A
F>{ 
F>  friend static inline const unsigned int operator or(const A&,const A&);
F> ...
F>};

F>


F>Как, скажите, можно записать 10(или даже более)?


Можно добавить еще 'volatile' и, например, 'short'. А вот 'or' иногда за полноценное ключевое слово не считают...

friend static inline const volatile unsigned short int operator or(const int&, const int&);
Best regards,
Андрей Тарасевич
Re[2]: Задачка от БС.
От: Андрей Тарасевич Беларусь  
Дата: 13.11.02 07:42
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:

АТ>Можно добавить еще 'volatile' и, например, 'short'. А вот 'or' иногда за полноценное ключевое слово не считают...


АТ>
АТ>friend static inline const volatile unsigned short int operator or(const int&, const int&);
АТ>


Но: 'friend static' — нельзя. И, кстати, параметры на 'const int&' я зря заменил. Так тоже нельзя.
Best regards,
Андрей Тарасевич
Re: Задачка от БС.
От: Klestov  
Дата: 13.11.02 07:56
Оценка:
Здравствуйте Fantasist, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


class A {
extern virtual inline operator const signed short int () { return 0L; }
};


8 но ....
Re: Задачка от БС.
От: dupamid Россия  
Дата: 13.11.02 07:59
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Вот тут случайно наткнулся на задачку от Страуструпа.


F>

F>

F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>Я подумал, но больше чем 8 выставить не смог:


10!

struct S
{
    friend inline const volatile unsigned long int bitand operator and(S, S)
    {
        static unsigned long int a = 1;
        return a;
    }
};
Re[2]: Задачка от БС.
От: Андрей Тарасевич Беларусь  
Дата: 13.11.02 08:01
Оценка:
Здравствуйте Klestov, Вы писали:

K>Здравствуйте Fantasist, Вы писали:


F>>Вот тут случайно наткнулся на задачку от Страуструпа.


F>>

F>>

F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>>Я подумал, но больше чем 8 выставить не смог:


F>>
F>>class A
F>>{ 
F>>  friend static inline const unsigned int operator or(const A&,const A&);
F>> ...
F>>};

F>>


F>>Как, скажите, можно записать 10(или даже более)?


F>>Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.


K>

K>
K>class A {
K>extern virtual inline operator const signed short int () { return 0L; }
K>};
K>

K>8 но ....

Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':

class A {
virtual inline operator const volatile signed short int () { return 0L; }
};
Best regards,
Андрей Тарасевич
Re[2]: Задачка от БС.
От: Alex Smirnov Россия  
Дата: 13.11.02 08:01
Оценка:
Здравствуйте dupamid, Вы писали:

D>Здравствуйте Fantasist, Вы писали:


F>>Вот тут случайно наткнулся на задачку от Страуструпа.


F>>

F>>

F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>>Я подумал, но больше чем 8 выставить не смог:


D>10!


D>
D>struct S
D>{
D>    friend inline const volatile unsigned long int bitand operator and(S, S)
D>    {
D>        static unsigned long int a = 1;
D>        return a;
D>    }
D>};
D>


Это нечестно! Только 7!
Alex
Re[2]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 08:02
Оценка:
Здравствуйте dupamid, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

D>
D>struct S
D>{
D>    friend inline const volatile unsigned long int bitand operator and(S, S)


Таких ключевых слов как bitand , and нет. Не все что упомянуто в спецификации языка является ключевым словом
Re[3]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 08:03
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

АТ>class A {

АТ>virtual inline operator const volatile signed short int () { return 0L; }
АТ>};

Можно добавить и 'extern' — рабочий код.
Re[2]: Задачка от БС.
От: Андрей Тарасевич Беларусь  
Дата: 13.11.02 08:05
Оценка:
Здравствуйте dupamid, Вы писали:

F>>

F>>

F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.


F>>Я подумал, но больше чем 8 выставить не смог:


D>10!


D>
D>struct S
D>{
D>    friend inline const volatile unsigned long int bitand operator and(S, S)
D>    {
D>        static unsigned long int a = 1;
D>        return a;
D>    }
D>};
D>


Остроумно, но тем не менее согласно тому, что я вынес для себя из одной из дискуссий в comp.lang.c++, alternative tokens не являются ключевыми словами.
Best regards,
Андрей Тарасевич
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.