💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 01:43
Оценка: 5 (1) -6 :)))
Последнее время было много споров о том надо ли писать код на бумажке и можно ли за пять минут написать простенький алгоритм. Вот вам вопрос просто на знание языка, для черкания на бумажке, на пять минут ... И отмазки уже не слепишь ))) Либо написал что нить, либо нет.

/*
   написать нечто с максимально возможным количеством ключевых слов так что бы:
   * без повторений (каждое ключевое слово используется один раз)
   * не используя фигурные скобки, 
   * выполнялась каждая инструкция (не было мёртвого кода).
   * было одновременно верным для С и С++
   * компилировалось как в GCC так и в MSVC на любой допустимой платформе.
   * при исполнении должно напечатать "hello!" и корректно завершиться.
*/

#define TEXT >это должно быть здесь!<

#include <stdio.h>
int main() {

   do TEXT while(0);

}


Мой вариант содержит 23 ключевых слова. Кто больше?
Re: 💉простой тест на знание языка ))))
От: -n1l-  
Дата: 09.04.13 01:48
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Мой вариант содержит 23 ключевых слова. Кто больше?




#define TEXT >это должно быть здесь!<

#include <stdio.h>
void main() {

  for(int i=0;i<1;i++)
  {
     do TEXT while(0);
  }
  
  return;
}
Re: 💉простой тест на знание языка ))))
От: eqw  
Дата: 09.04.13 01:54
Оценка: :)
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>[ccode]

AS>/*
AS> написать нечто с максимально возможным количеством ключевых слов так что бы:
AS> * без повторений (каждое ключевое слово используется один раз)
AS> * не используя фигурные скобки,
AS> * выполнялась каждая инструкция (не было мёртвого кода).
AS> * было одновременно верным для С и С++
AS> * компилировалось как в GCC так и в MSVC на любой допустимой платформе.
AS> * при исполнении должно напечатать "hello!" и корректно завершиться.
AS>*/

Это еще один тест на знание того, что такое триграфы, да?
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 01:57
Оценка:
eqw>Это еще один тест на знание того, что такое триграфы, да?

Нет буквально то что написано. Какая разница как записаны скобки? Задача их не использовать.
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 02:03
Оценка: :)
AS>>Мой вариант содержит 23 ключевых слова. Кто больше?

N> for(int i=0;i<1;i++)

N> {
N> do TEXT while(0);
N> }

Я вот не пойму, то ли я плохо понимаю юмор, то ли ты не умеешь читать. Объясни плиз, что ты хотел этим сказать, а то я как-то не въехал.
Re[3]: 💉простой тест на знание языка ))))
От: eqw  
Дата: 09.04.13 02:11
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

eqw>>Это еще один тест на знание того, что такое триграфы, да?


AS>Нет буквально то что написано. Какая разница как записаны скобки? Задача их не использовать.

Ну так по условию нельзя использовать скобки, а ??< можно.
Re[4]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 02:18
Оценка:
eqw>>>Это еще один тест на знание того, что такое триграфы, да?
AS>>Нет буквально то что написано. Какая разница как записаны скобки? Задача их не использовать.
eqw>Ну так по условию нельзя использовать скобки, а ??< можно.

??< — это какая-то специальная лексема или всё-таки та же скобка, только иначе записанная?
Ок, для особо одарённых )))) уточняю — без использования фигурных скобок и триграфов!

Таки возвращаясь к задачке, сколько ты сможешь записать ключевых слов?
Re[5]: 💉простой тест на знание языка ))))
От: eqw  
Дата: 09.04.13 02:31
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

eqw>>>>Это еще один тест на знание того, что такое триграфы, да?

AS>>>Нет буквально то что написано. Какая разница как записаны скобки? Задача их не использовать.
eqw>>Ну так по условию нельзя использовать скобки, а ??< можно.

AS>??< — это какая-то специальная лексема или всё-таки та же скобка, только иначе записанная?

AS>Ок, для особо одарённых )))) уточняю — без использования фигурных скобок и триграфов!

AS>Таки возвращаясь к задачке, сколько ты сможешь записать ключевых слов?


Сходу штук 10, дальше думать лень

#include <stdio.h>
int main() {

   do x: if( printf("Hello!") < 0 ) goto x; else switch(1) case 1: return !!sizeof(unsigned int); while(0);
}
Re: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 02:31
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Мой вариант содержит 23 ключевых слова. Кто больше?


Так, у меня уже 23, пойду проверять на разных компиляторах..
Re[6]: 💉простой тест на знание языка ))))
От: eqw  
Дата: 09.04.13 02:35
Оценка:
Здравствуйте, eqw, Вы писали:

eqw>Здравствуйте, Alexéy Sudachén, Вы писали:


eqw>>>>>Это еще один тест на знание того, что такое триграфы, да?

AS>>>>Нет буквально то что написано. Какая разница как записаны скобки? Задача их не использовать.
eqw>>>Ну так по условию нельзя использовать скобки, а ??< можно.

AS>>??< — это какая-то специальная лексема или всё-таки та же скобка, только иначе записанная?

AS>>Ок, для особо одарённых )))) уточняю — без использования фигурных скобок и триграфов!

AS>>Таки возвращаясь к задачке, сколько ты сможешь записать ключевых слов?


eqw>Сходу штук 10, дальше думать лень


eqw>
eqw>#include <stdio.h>
eqw>int main() {

eqw>   do x: if( printf("Hello!") < 0 ) goto x; else switch(1) case 1: return !!sizeof(unsigned int); while(0);
eqw>}


eqw>


Хотя, goto тут технически мертвый код, так что меньше 10
Re[2]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 02:36
Оценка:
EP>Так, у меня уже 23, пойду проверять на разных компиляторах..

gcc, g++, msvc c, msvc c++ компилируют — куда отсылать(чтобы не спойлерить)? (на ideone таймштампы поставил)
Re[3]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 02:39
Оценка:
EP>gcc, g++, msvc c, msvc c++ компилируют — куда отсылать(чтобы не спойлерить)? (на ideone таймштампы поставил)

Аналогично. Предлагаю подождать сутки, потом сюда. А вот число можно сразу говорить, чтобы желающим написать свой вариант было на что ориентироваться.
Re[4]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 02:41
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

EP>>gcc, g++, msvc c, msvc c++ компилируют — куда отсылать(чтобы не спойлерить)? (на ideone таймштампы поставил)

AS>Аналогично. Предлагаю подождать сутки, потом сюда. А вот число можно сразу говорить, чтобы желающим написать свой вариант было на что ориентироваться.

уже 24
Re: 💉простой тест на знание языка ))))
От: Serg27  
Дата: 09.04.13 03:00
Оценка: +5
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>Последнее время было много споров о том надо ли писать код на бумажке и можно ли за пять минут написать простенький алгоритм. Вот вам вопрос просто на знание языка, для черкания на бумажке, на пять минут ... И отмазки уже не слепишь ))) Либо написал что нить, либо нет.


AS>Мой вариант содержит 23 ключевых слова. Кто больше?


А Вы уверены, что ЭТО тест на знание языка, а не нечто другое?
Может просто на работе скучно?
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 03:16
Оценка: +1 -4 :)))
AS>>Мой вариант содержит 23 ключевых слова. Кто больше?
S>А Вы уверены, что ЭТО тест на знание языка, а не нечто другое?

Уверен. Это тест на знание языка, а не на умение копировать усвоенное из учебника. И это именно тест на язык, а не на библиотеку или алгоритмику. И удивительно простой тест, который очень хорошо показывает возможности человека в применении языка.

S>Может просто на работе скучно?


Хотя, я ни сколько не удивлюсь если люди, убеждённые что работа программиста состоит лишь в повторении стереотипного кода, будут возражать. Ну дык они языком как таковым и не владеют, и бывает жутко его боятся )))
Re: □□простой тест на знание языка ))))
От: Figaro Россия  
Дата: 09.04.13 03:32
Оценка: +1
сколько в час? чтоб пдобной хней заниматься...
avalon/1.0.432
Re[2]: □□простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 03:38
Оценка:
Здравствуйте, Figaro, Вы писали:
F>сколько в час? чтоб пдобной хней заниматься...

0 тысяч 0 десятков 0 едениц 0 десятых любой произвольно выбранной валюты. )))
Не знимайтесь хней!
Re[3]: □□простой тест на знание языка ))))
От: Figaro Россия  
Дата: 09.04.13 03:46
Оценка:
Слабак! (С) не мой...
avalon/1.0.432
Re[3]: 💉простой тест на знание языка ))))
От: -n1l-  
Дата: 09.04.13 03:53
Оценка:
Ой, пардонте, я их на автомате пишу.


  void main()
  {
    for(int i=0;i<1;i++)
          do printf("Hello!"); while(0);  
    return;
  }
Re: Как ты вставил картинку в название темы?
От: Anpek  
Дата: 09.04.13 04:10
Оценка: :))
Офф
Re: 💉простой тест на знание языка ))))
От: koenjihyakkei Россия  
Дата: 09.04.13 05:45
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

Навскидку накидал из 11, потом время будет можно подумать еще

#include <stdio.h>
int main() {

    do 
        for(;;)
            while(printf("hello"))
                switch(0)
                    if(0)
                        case 0:
                            goto l;
                    else
                    l:
                        default:
                            return sizeof(int);
    while(0);
}
Re[2]: 💉простой тест на знание языка ))))
От: koenjihyakkei Россия  
Дата: 09.04.13 05:57
Оценка:
Здравствуйте, koenjihyakkei, Вы писали:

Можно еще привидения типов навставлять...
Получится 17:

#include <stdio.h>
int main() {
 
    do 
        for(;(double)1;(void)0)
            while(printf("hello"))
                switch((long)0)
                    if((unsigned char)0)
                        case 0:
                            goto l;
                    else
                    l:
                        default:
                            return (int)sizeof(float);
    while(0);
 
}
Re: 💉простой тест на знание языка ))))
От: Abyx Россия  
Дата: 09.04.13 07:40
Оценка: 1 (1) -3 :)))
Здравствуйте, Alexéy Sudachén, Вы писали:

AS> * было одновременно верным для С и С++

Си устарел и не нужен.
In Zen We Trust
Re[3]: 💉простой тест на знание языка ))))
От: Erop Россия  
Дата: 09.04.13 07:50
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>очень хорошо показывает возможности человека в применении языка.


IMHO, ты пропустил два слова: "в извращениях"...
В целом, можешь попробовать сравнить, например, творчество Пушкина, и ребят, которые пишут рассказы на одну букву.
Как думаешь, кто из них лучше владеет языком?..

Кстати,
1) ты всякие там синонимы операторов, вроде or ключевыми словами считаешь?
2) ключевые слова препроцессора входят в целевое множество?
3) А можно ещё что-то писать, кроме текста в определении макроса?..
4) слова уже использованные в твоём примере нужно переиспользовать?

Ну и вообще, писать длинную конструкцию в одну строку -- антиэстетический геморр.
И вообще, сейчас рульным пацанам не до глупостей: http://ru-chgk.livejournal.com/996880.html
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: 💉простой тест на знание языка ))))
От: saf_e  
Дата: 09.04.13 08:47
Оценка: +3
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Мой вариант содержит 23 ключевых слова. Кто больше?

S>>А Вы уверены, что ЭТО тест на знание языка, а не нечто другое?

AS>Уверен. Это тест на знание языка, а не на умение копировать усвоенное из учебника. И это именно тест на язык, а не на библиотеку или алгоритмику. И удивительно простой тест, который очень хорошо показывает возможности человека в применении языка.


S>>Может просто на работе скучно?


AS>Хотя, я ни сколько не удивлюсь если люди, убеждённые что работа программиста состоит лишь в повторении стереотипного кода, будут возражать. Ну дык они языком как таковым и не владеют, и бывает жутко его боятся )))


В качестве разминки для хвоста имеет право на жизнь.
Если бы увидел такое на собеседовании 99% просто встал бы и ушел, ну или аргументировано объяснил почему не хочу заниматься онанизмом. Под настроение
Re[2]: 💉простой тест на знание языка ))))
От: Кодт Россия  
Дата: 09.04.13 09:23
Оценка:
Здравствуйте, koenjihyakkei, Вы писали:

K> return sizeof(int);


Можно вместо int написать unsigned long int
Перекуём баги на фичи!
Re: 💉простой тест на знание языка ))))
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 09.04.13 09:52
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>Последнее время было много споров о том надо ли писать код на бумажке и можно ли за пять минут написать простенький

Это тест не на знание языка.
Sic luceat lux!
Re: 💉простой тест на знание языка ))))
От: Muxa  
Дата: 09.04.13 10:44
Оценка:
AS>Мой вариант содержит 23 ключевых слова. Кто больше?
включая уже имеющиеся int, do, while или только те что в дефайне?
Re: 💉простой тест на знание языка ))))
От: Alca Украина  
Дата: 09.04.13 10:50
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>Последнее время было много споров о том надо ли писать код на бумажке и можно ли за пять минут написать простенький алгоритм. Вот вам вопрос просто на знание языка, для черкания на бумажке, на пять минут ... И отмазки уже не слепишь ))) Либо написал что нить, либо нет.


AS>
AS>/*
AS>   написать нечто с максимально возможным количеством ключевых слов так что бы:
AS>   * без повторений (каждое ключевое слово используется один раз)
AS>   * не используя фигурные скобки, 
AS>   * выполнялась каждая инструкция (не было мёртвого кода).
AS>   * было одновременно верным для С и С++
AS>   * компилировалось как в GCC так и в MSVC на любой допустимой платформе.
AS>   * при исполнении должно напечатать "hello!" и корректно завершиться.
AS>*/

AS>#define TEXT >это должно быть здесь!<

AS>#include <stdio.h>
AS>int main() {

AS>   do TEXT while(0);

AS>}
AS>


AS>Мой вариант содержит 23 ключевых слова. Кто больше?


Ты, что думаешь, что ты самый умный? Да хоть 123. Может тебе сертификат выдать еще?
Re: 💉простой тест на знание языка ))))
От: robin_of_the_wood Россия  
Дата: 09.04.13 10:51
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>Последнее время было много споров о том надо ли писать код на бумажке и можно ли за пять минут написать простенький алгоритм. Вот вам вопрос просто на знание языка, для черкания на бумажке, на пять минут ... И отмазки уже не слепишь ))) Либо написал что нить, либо нет.

...
AS>Мой вариант содержит 23 ключевых слова. Кто больше?

А goto у Вас отрицательный весовой коэффициент имеет?
Проектирование велосипедов для слепых жирафов
Re: 💉простой тест на знание языка ))))
От: opener  
Дата: 09.04.13 12:16
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

А тебе бы не мешало пройти тест на знание русского языка, "что бы" писать граММотно.
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 12:23
Оценка:
AS>>Мой вариант содержит 23 ключевых слова. Кто больше?
M>включая уже имеющиеся int, do, while или только те что в дефайне?

Только те что в дефайне. В дефайне можно использовать int, do, while.
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 12:24
Оценка:
O>А тебе бы не мешало пройти тест на знание русского языка, "что бы" писать граММотно.
Это была опечатка, однако мы разве на форуме филологов?!
Re[4]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 12:43
Оценка:
E>IMHO, ты пропустил два слова: "в извращениях"...

Нет не пропустил. Тесты в серой зоне хороши тем что быстро позволяют оценить способность человека решать задачу в жёстких рамках условий и за рамками стереотипа. Причём проверяет даже не сколько технику решения, сколько психологическую готовность к тому чтобы переступить через правила, кои на самом деле весьма условны.

E>В целом, можешь попробовать сравнить, например, творчество Пушкина, и ребят, которые пишут рассказы на одну букву.

E>Как думаешь, кто из них лучше владеет языком?..

Ты хочешь сказать что Пушкин не 'извращался' над языком? ))) Уверен? Естественно что прохождение теста, под которым понимается просто готовность написать хоть что-то, не показывает что человек знает язык лучше всех, но человек написавший пример с количеством слов больше десятки определённо умеет им пользоваться, и очевидно способен решать нетиповые задачи.

E>1) ты всякие там синонимы операторов, вроде or ключевыми словами считаешь?


Разве в С есть синонимы операторов?! Там вроде явно написано условие что код должен быть одновременно верным для С и С++.

E>2) ключевые слова препроцессора входят в целевое множество?


О! Ты можешь загнать в этот макрос ключевые слова препроцессора? Хотя если ты имеешь в виду __LINE__ и __FILE__ — то конечно вопрос хороший. ))) Попробуй, почему бы и нет.

E>3) А можно ещё что-то писать, кроме текста в определении макроса?..


нет

E>4) слова уже использованные в твоём примере нужно переиспользовать?


да

E>Ну и вообще, писать длинную конструкцию в одну строку -- антиэстетический геморр.


кто-то мешает написать не в одну строчку?
Re[3]: 💉простой тест на знание языка ))))
От: Muxa  
Дата: 09.04.13 12:50
Оценка:
А какой С? C99 или ANSI C?
Re[4]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 12:52
Оценка:
M>А какой С? C99 или ANSI C?

Разве С99 уже компилируется в MSVC?
Re[4]: 💉простой тест на знание языка ))))
От: koenjihyakkei Россия  
Дата: 09.04.13 12:53
Оценка:
Здравствуйте, Muxa, Вы писали:

M>А какой С? C99 или ANSI C?


В задании есть MSVC, а он С99 не поддерживает, так что похоже что С89(ANSI C)
Re[5]: 💉простой тест на знание языка ))))
От: Muxa  
Дата: 09.04.13 12:56
Оценка:
AS>Разве С99 уже компилируется в MSVC?
да, я уже понял что нет.
Re[2]: 💉простой тест на знание языка ))))
От: rg45 СССР  
Дата: 09.04.13 13:07
Оценка:
Здравствуйте, koenjihyakkei, Вы писали:

K>Здравствуйте, Alexéy Sudachén, Вы писали:


K>Навскидку накидал из 11, потом время будет можно подумать еще


K>
K>#include <stdio.h>
K>int main() {

K>    do 
K>        for(;;)
K>            while(printf("hello"))
K>                switch(0)
K>                    if(0)
K>                        case 0:
K>                            goto l;
K>                    else
K>                    l:
K>                        default:
K>                            return sizeof(int);
K>    while(0);
K>}
K>



Я могу немного добавить:

switch (sizeof(void(*)(signed, unsigned, char, short, long, int, float, double, struct Foo*, enum Bar*)))
// . . .

Воткни еще continue и break куда-нибудь и уже будет что показать
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 13:15
Оценка:
AS>>Мой вариант содержит 23 ключевых слова. Кто больше?
A>Ты, что думаешь, что ты самый умный? Да хоть 123. Может тебе сертификат выдать еще?

123 не получится.

На тему остального ... если забить на нарушение правил (кого это здесь беспокоит), давай просто достанем и сравним? Я так вижу что по увлечениям для тебя это актуально (http://code.google.com/p/xxxdb/), компенсируешь количеством? )))
Re[3]: 💉простой тест на знание языка ))))
От: koenjihyakkei Россия  
Дата: 09.04.13 13:20
Оценка:
Здравствуйте, rg45, Вы писали:

R>Я могу немного добавить:


R>
R>switch (sizeof(void(*)(signed, unsigned, char, short, long, int, float, double, struct Foo*, enum Bar*)))
R>// . . .
R>

R>Воткни еще continue и break куда-нибудь и уже будет что показать

Кстати да, отличная мысль про функцию Правда struct и enum не проходят ни в студии ни в гсс.
Сделал такое, 22 слова

#include <stdio.h>

int main() {
  for(;;)
    do
      switch(0)
        if(0)
          case 0:
            goto l;
        else
        l:
          default:
            return printf("hello"), sizeof(void(*)(volatile signed int, unsigned long, register char, short, float, double ));
    while(0);
}
Re: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 13:28
Оценка:
Я смотрю тут народ уже бунтует.
Дабы сбавить градус агрессии к ТС, напомню, что в TC++PL (а ведь здесь все её читали, правда?), есть следующее упражнение:

(*2) Write a standardsconforming C++ program containing a sequence of at least ten consecutive keywords not separated by identifiers, operators, punctuation characters, etc.

Re[4]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 13:30
Оценка:
K>Кстати да, отличная мысль про функцию Правда struct и enum не проходят ни в студии ни в гсс.
K>Сделал такое, 22 слова

Хинт — использовать struct* и union* в приведении типа. Однако в условии задачи есть один очень неприятный пункт — выполнялась каждая инструкция (не было мёртвого кода) У тебя не выполняются if(0) и while(0).
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 13:34
Оценка:
EP>

EP>(*2) Write a standardsconforming C++ program containing a sequence of at least ten consecutive keywords not separated by identifiers, operators, punctuation characters, etc.

EP>

Угу, именно от это и было отправной точкой. ))) Но была задача сделать простой и быстрый тест с множеством решений, демонстрирующий владение синтаксисом и понимание флоу, а так же заставляющий нарушать общепринятые нормы.
Re[4]: 💉простой тест на знание языка ))))
От: Muxa  
Дата: 09.04.13 13:37
Оценка:
строка while(0) не выполняется
Re: 💉простой тест на знание языка ))))
От: landerhigh Пират  
Дата: 09.04.13 13:38
Оценка: +2
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>#define TEXT >это должно быть здесь!<


AS>#include <stdio.h>

AS>int main() {

AS> do TEXT while(0);


AS>}

AS>[/ccode]

AS>Мой вариант содержит 23 ключевых слова. Кто больше?


Скобки не по фен-шую. No hire.

А если серьезно, то тут как в разговорных языках — энциклопедическое знание грамматики языка вовсе не гарантирует умения свободно общаться на оном языке.
www.blinnov.com
Re[5]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 13:38
Оценка:
Используя идею koenjihyakkei по поводу register (я не знал что его можно использовать в параметрах) — получилось 25 keywords.

AS>Хинт — использовать struct* и union* в приведении типа.


у меня пока без них

AS>Однако в условии задачи есть один очень неприятный пункт — выполнялась каждая инструкция (не было мёртвого кода) У тебя не выполняются if(0) и while(0).


А что на счёт того while(0) который в main? Просто у меня две версии — в одной он не выполняется, в другой выполняется (количество keywords такое же, но получается сложнее).
Re[3]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 13:39
Оценка:
AS>Угу, именно от это и было отправной точкой. ))) Но была задача сделать простой и быстрый тест с множеством решений, демонстрирующий владение синтаксисом и понимание флоу, а так же заставляющий нарушать общепринятые нормы.

А, ну и естественно в первую очередь, тест должен проверять умение читать и понимать прочитанное. Как показывает практика, этим навыком владеют очень небольшое количество программистов )))))
Re[6]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 13:42
Оценка:
EP>А что на счёт того while(0) который в main? Просто у меня две версии — в одной он не выполняется, в другой выполняется (количество keywords такое же, но получается сложнее).

Считается только то что подставляется вместо TEXT. do while(0) — просто ограничитель для понимание того что же требуется.
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 13:47
Оценка: -1
L>А если серьезно, то тут как в разговорных языках — энциклопедическое знание грамматики языка вовсе не гарантирует умения свободно общаться на оном языке.

Дык, в том то и дело, что для этой задачи не требуются энциклопедические знания, требуется умение использовать язык так как нужно здесь и сейчас. Соревнование кто больше напишет просто прикольный челендж. По сути дела этот тест бинарный.
Re[7]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 13:59
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

EP>>А что на счёт того while(0) который в main? Просто у меня две версии — в одной он не выполняется, в другой выполняется (количество keywords такое же, но получается сложнее).

AS>Считается только то что подставляется вместо TEXT. do while(0) — просто ограничитель для понимание того что же требуется.

Ну да ладно, с ограничением на отсутствие мёртвого while в main получается привольней.
Добавил struct по твоему хинту — получилось 26, union пока нет.
Re[4]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 09.04.13 14:16
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>А, ну и естественно в первую очередь, тест должен проверять умение читать и понимать прочитанное. Как показывает практика, этим навыком владеют очень небольшое количество программистов )))))


Ты про условие задачи или про код? Или про всё?
Re: 💉простой тест на знание языка ))))
От: Muxa  
Дата: 09.04.13 14:25
Оценка:
AS>Мой вариант содержит 23 ключевых слова. Кто больше?
у меня 25
Re: 💉простой тест на знание языка ))))
От: B0FEE664  
Дата: 09.04.13 15:56
Оценка: 5 (3) :)
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Последнее время было много споров о том надо ли писать код на бумажке и можно ли за пять минут написать простенький алгоритм. Вот вам вопрос просто на знание языка, для черкания на бумажке, на пять минут ... И отмазки уже не слепишь ))) Либо написал что нить, либо нет.


Синтетический тест ничего не покажет.

AS> написать нечто с максимально возможным количеством ключевых слов так что бы:

их всего-то 36 (В стандарте C99)

AS> * без повторений (каждое ключевое слово используется один раз)

AS> * не используя фигурные скобки,
AS> * выполнялась каждая инструкция (не было мёртвого кода).

Мёртвый код — это код, который выполняется, но результаты которого не используются. здесь

AS> * было одновременно верным для С и С++

AS> * компилировалось как в GCC так и в MSVC на любой допустимой платформе.
Что такое "допустимая платформа?"

AS> * при исполнении должно напечатать "hello!" и корректно завершиться.

Ага, ага. Вы в самом деле ищите людей, которые пишут код, который потом никто прочитать не может?



ЗЫ Ну и отмазка:
#define TEXT printf("%s", ("auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while _Bool _Complex _Imaginary", "\"hello!\""));

нигде не сказано, что ключевые слова должны "исполнятся".
И каждый день — без права на ошибку...
Re[2]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 16:45
Оценка:
BFE>Синтетический тест ничего не покажет.

Он быстро покажет имеет ли смысл говорить дальше. Очевидно, что если испытуемый "встанет на рога", то смысла нет. ))))

BFE>Мёртвый код — это код, который выполняется, но результаты которого не используются. здесь


Ровно от туда же — Применительно к исходному коду, недостижимый код часто называют мёртвым, хотя с точки зрения теории компиляторов это разные вещи.

BFE>Что такое "допустимая платформа?"


Предположи. Или ты считаешь что программист это автомат по набивке исходного кода?

AS>> * при исполнении должно напечатать "hello!" и корректно завершиться.

BFE>Ага, ага. Вы в самом деле ищите людей, которые пишут код, который потом никто прочитать не может?

Я никого не ищу. Более того, ничего и ни от кого не требую, и даже не ожидаю. Иногда мне просто прикольно наблюдать за фонтанирующим возмущением адептов религии Бабла и секты последователей Единственно Верного Способа Писать Код.

BFE>нигде не сказано, что ключевые слова должны "исполнятся".


Ну, дык, молодец! А теперь с тем же результатом и чтобы ключевые слова были в исполняемом коде.
Re[5]: 💉простой тест на знание языка ))))
От: Alexéy Sudachén Чили  
Дата: 09.04.13 16:57
Оценка: :)
AS>>А, ну и естественно в первую очередь, тест должен проверять умение читать и понимать прочитанное. Как показывает практика, этим навыком владеют очень небольшое количество программистов )))))
EP>Ты про условие задачи или про код? Или про всё?

Хотя бы про способность полностью прочитать текст задачи. ))) Про то чтобы дополнить его до некого наиболее разумного ТЗ, и уж тем более про умение читать код, я вообще даже не заикаюсь — это такая редкость .... Более того, последнее время я наблюдаю какое-то странное помутнение у людей, их сознание становится как будто собранное из лоскутков. Это иногда просто пугает, как будто с зомби общаешься.
Re[5]: 💉простой тест на знание языка ))))
От: Erop Россия  
Дата: 09.04.13 19:00
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Нет не пропустил. Тесты в серой зоне хороши тем что быстро позволяют оценить способность человека решать задачу в жёстких рамках условий и за рамками стереотипа. Причём проверяет даже не сколько технику решения, сколько психологическую готовность к тому чтобы переступить через правила, кои на самом деле весьма условны.


Зачем это вообще нужно? Обычно перед программистами сттоят совсем другие задачи.
КОнкретно эта, IMHO, довольно скучная, кстати.

AS>Ты хочешь сказать что Пушкин не 'извращался' над языком? ))) Уверен?

Я хочу сказать, что умение извращаться мало связанно с владением языком...

AS>Естественно что прохождение теста, под которым понимается просто готовность написать хоть что-то, не показывает что человек знает язык лучше всех, но человек написавший пример с количеством слов больше десятки определённо умеет им пользоваться, и очевидно способен решать нетиповые задачи.


Можешь привести пример нетиповой задачи, которую такой перец "определённо умеет решать"? Только чур, задача должна быть полезна на практике

AS>Разве в С есть синонимы операторов?! Там вроде явно написано условие что код должен быть одновременно верным для С и С++.

В С есть макросы.

E>>2) ключевые слова препроцессора входят в целевое множество?


AS>О! Ты можешь загнать в этот макрос ключевые слова препроцессора? Хотя если ты имеешь в виду __LINE__ и __FILE__ — то конечно вопрос хороший. ))) Попробуй, почему бы и нет.


Ну, то есть входят? Кстати, а если я напишу так, что в одном языке это будет ключевое слово, а в другом идентификатор, то это можно?
Ещё можно, например, породить идентефикатор pragma или warning. Это будет считаться а ключевое слово, или нет?

E>>3) А можно ещё что-то писать, кроме текста в определении макроса?..


AS>нет

Так совсем неинтересно.

E>>4) слова уже использованные в твоём примере нужно переиспользовать?


AS>да


E>>Ну и вообще, писать длинную конструкцию в одну строку -- антиэстетический геморр.


AS>кто-то мешает написать не в одну строчку?

макросня.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: 💉простой тест на знание языка ))))
От: landerhigh Пират  
Дата: 09.04.13 21:31
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

L>>А если серьезно, то тут как в разговорных языках — энциклопедическое знание грамматики языка вовсе не гарантирует умения свободно общаться на оном языке.


AS>Дык, в том то и дело, что для этой задачи не требуются энциклопедические знания,


требуется знать, что есть "keyword", а что — нет, и помнить первых как можно больше.

AS>требуется умение использовать язык так как нужно здесь и сейчас. Соревнование кто больше напишет просто прикольный челендж. По сути дела этот тест бинарный.


онанизм какой-то, честное слово.
www.blinnov.com
Re: 💉простой тест на знание языка ))))
От: jyuyjiyuijyu  
Дата: 09.04.13 22:00
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


мне ваше задание почему то лень начинать даже в уме делать не то что на практике )
Re[5]: 💉простой тест на знание языка ))))
От: koenjihyakkei Россия  
Дата: 10.04.13 06:24
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Однако в условии задачи есть один очень неприятный пункт — выполнялась каждая инструкция (не было мёртвого кода) У тебя не выполняются if(0) и while(0).


Ну а как сделать, чтобы выполнялось и if, и else? По-моему, не совсем корректный пункт в задании.
Вот, получилось 25:

#include <stdio.h>

int main() {
  for(;printf("hello");)
    switch(0)
      if((struct foo*)1 == (enum foo1*)1 )
        case 0:
          do goto l; while((union bar*)1);
      else
l:
        default:
          return sizeof(void(*)(volatile signed int, unsigned long, register char, short, float, double ));
}
Re[6]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 10.04.13 06:45
Оценка:
Здравствуйте, koenjihyakkei, Вы писали:

K>Ну а как сделать, чтобы выполнялось и if, и else? По-моему, не совсем корректный пункт в задании.


у меня получилось это сделать двумя способами, чуть позже покажу

K>Вот, получилось 25:


g++ error — http://ideone.com/H3ihM1
Re[4]: 💉простой тест на знание языка ))))
От: Evgeny.Panasyuk Россия  
Дата: 10.04.13 07:09
Оценка:
AS>Аналогично. Предлагаю подождать сутки, потом сюда.

Разные версии:
  • 24 — выполняется всё, кроме while(0) в main (ТС говорит что это не обязательно)
    #include <stdio.h>
    int main() {
        do
            ;
            while(0&&(char)(signed)(int)(short)(unsigned)(float)(const volatile long double)(0));
            goto KEYWORD;
            for(;;)
                if(sizeof(void*))
                    break;
                else KEYWORD:
                    continue;
            switch(0) case 0: default: printf("hello!");
            do return 0;
        while(0);
    }

  • 24 — выполняется всё, включая while(0) в main. recursion+state
    #include <stdio.h>
    int main() {
        do
            ;
            while(0&&(char)(signed)(int)(short)(unsigned)(float)(const volatile long double)(0));
            goto KEYWORD;
            for(;fclose(stderr)==0;)
                KEYWORD: continue;
            switch(0) case 0: default: break;
            fclose(stdin) == 0 ? printf("hello!") : 0;
            do
                if(sizeof(void*) && fclose(stdout)!=0)
                    return 0;
                else
                    main();
        while(0);
    }

  • 26 — использовал две подсказки из топика — добавлен struct и register, причём если даже теоретически я бы смог догадаться использовать struct, то до resgister — вряд ли, так как не знал что его можно вешать на параметр функции.
    #include <stdio.h>
    int main() {
        do
            ;
            while((int)(struct tm *)(char)(signed)(unsigned)(float)(const volatile long double)(0)|0);
            goto KEYWORD;
            for(;fclose(stderr)==0;)
                KEYWORD: continue;
            switch(0) case 0: default: break;
            fclose(stdin) == 0 ? printf("hello!") : 0;
            do
                if(sizeof(void(*)(register short)) && fclose(stdout)!=0)
                    return 0;
                else
                    main();
        while(0);
    }

    + исправлен небольшой косяк с short-circut evluation в условии if.
  • Re[5]: 💉простой тест на знание языка ))))
    От: koenjihyakkei Россия  
    Дата: 10.04.13 07:18
    Оценка:
    Здравствуйте, Evgeny.Panasyuk, Вы писали:

    EP>
    EP>#include <stdio.h>
    EP>int main() {
    EP>    do
    EP>        ;
    EP>        while(0&&(char)(signed)(int)(short)(unsigned)(float)(const volatile long double)(0));
    EP>        goto KEYWORD;
    EP>        for(;;)
    EP>            if(sizeof(void*))
    EP>                break;
    EP>            else KEYWORD:
    EP>                continue;
    EP>        switch(0) case 0: default: printf("hello!");
    EP>        do return 0;
    EP>    while(0);
    EP>}
    EP>


    Блин, а я думал, что нельзя было просто последовательно инструкции писать, думал для этого ТС и обернул все в do while()... А так то конечно можно развернуться
    Re[6]: 💉простой тест на знание языка ))))
    От: Evgeny.Panasyuk Россия  
    Дата: 10.04.13 07:23
    Оценка:
    Здравствуйте, koenjihyakkei, Вы писали:

    K>Блин, а я думал, что нельзя было просто последовательно инструкции писать, думал для этого ТС и обернул все в do while()... А так то конечно можно развернуться


    Я такого ограничения не увидел, поэтому даже не пытался
    Re: 💉простой тест на знание языка ))))
    От: jyuyjiyuijyu  
    Дата: 10.04.13 07:54
    Оценка:
    Здравствуйте, Alexéy Sudachén, Вы писали:

    а если соискатель отказался заниматься подобной ересью объяснив это тем что просто не хочет он сразу отправляется за ворота ?))
    Re[2]: 💉простой тест на знание языка ))))
    От: Evgeny.Panasyuk Россия  
    Дата: 10.04.13 08:06
    Оценка: :)
    Здравствуйте, jyuyjiyuijyu, Вы писали:

    J>а если соискатель отказался заниматься подобной ересью объяснив это тем что просто не хочет он сразу отправляется за ворота ?))


    в ров с крокодилами, так как наверняка он даже не удосужился последовать совету открыть TC++PL
    Автор: Evgeny.Panasyuk
    Дата: 28.12.12
    Re[2]: 💉простой тест на знание языка ))))
    От: Vzhyk  
    Дата: 10.04.13 08:06
    Оценка:
    On 10.04.2013 10:54, jyuyjiyuijyu wrote:

    > а если соискатель отказался заниматься подобной ересью объяснив это тем

    > что просто не хочет он сразу отправляется за ворота ?))
    И это самое лучшее для соискателя, ибо почти гарантировано ему потом и
    придется заниматься подобной ересью.
    Posted via RSDN NNTP Server 2.1 beta
    Re[2]: 💉простой тест на знание языка ))))
    От: Erop Россия  
    Дата: 10.04.13 10:37
    Оценка:
    Здравствуйте, Evgeny.Panasyuk, Вы писали:

    EP>есть следующее упражнение:

    EP>

    EP>(*2) Write a standardsconforming C++ program containing a sequence of at least ten consecutive keywords not separated by identifiers, operators, punctuation characters, etc.

    EP>

    А там утверждают, что кто не смогёт, тот не программист, а кодер?
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[5]: Ты не прошёл с большим запасом ;)
    От: Erop Россия  
    Дата: 10.04.13 11:30
    Оценка:
    Здравствуйте, Alexéy Sudachén, Вы писали:

    AS>О! Ты можешь загнать в этот макрос ключевые слова препроцессора? Хотя если ты имеешь в виду __LINE__ и __FILE__ — то конечно вопрос хороший. ))) Попробуй, почему бы и нет.


    E>>4) слова уже использованные в твоём примере нужно переиспользовать?


    AS>да


    Собственно не понятно чего так мало слов-то использовали?
    Казалось бы, ты задал рамки:
    1) влезть в конструкцию do ... while (0)
    2) Не юзать скобки.

    Ну и ещё всякую ерунду, типа не повторять там слова и с/с++ одновременно...
    Кстати, у меня ещё вопрос, а код, который в одном языке исполняется, а в другом нет считается мёртвым?..

    Но в целом, IMHO, решение тривиально.
    1) В начало нашего решения суём ;while( 0 );
    в конец do;
    Теперь у нас уже ДВА цикла и всё ещё без повторов слов. Для красоты можно ещё в один сунуть в тело break, а в другой затолкать return, что бы do сам по себе не был мёртвым.
    Ну теперь можно надекларировать каких-то переменных типа указатель на что-то, и заюзать auto volatile register double int struct long enum char extern union const float short unsigned signed void wchar_t (если оно считается) и static с typedef до кучи. А именам переменных придать имена вроде define, pragma ifdef и т. д...
    Я так и не понял, что значит "с максимально возможным количеством ключевых слов". В чстности, переменная с именем ifdef -- это оно или нет?

    Ну дальше у нас остались ещё if else goto for switch case default retuen-- их использовать как раз тривиально причём сразу все...

    Ещё, до кучи можжно в часть с описанием переменных затолкать вские слова вроде __LINE__, а потом сложить например, sizeof всех этих переменных и использовать это значение в условии for или if.

    Немного не понятно всё ли там срастётся, на тему отсутствия повторов, и отсутсвия мёртвого кода. Но есть такое чувство, что если погемороиться немного с тасовкойй кода, то всё получится...

    Итого имеем ТРИВИАЛЬНОЕ решение, в котором будет заюзано от 30 до 40 (в зависимости от методики подсчёта) ключевых слова...

    И на этом фоне выходит некто, и начинает нам втирать, что у него аж целых 23!
    Ты уже готов скушать свою шляпу?
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[6]: Ты не прошёл с большим запасом ;)
    От: koenjihyakkei Россия  
    Дата: 10.04.13 11:35
    Оценка:
    Здравствуйте, Erop, Вы писали:

    E>1) В начало нашего решения суём ;while( 0 );

    E>в конец do;

    Все-таки сдается мне, что такой хак не подразумевался, с ним действительно все тривиально, но вот без него...
    Re[6]: Ты не прошёл с большим запасом ;)
    От: saf_e  
    Дата: 10.04.13 11:36
    Оценка:
    Здравствуйте, Erop, Вы писали:

    E>Здравствуйте, Alexéy Sudachén, Вы писали:


    E>Итого имеем ТРИВИАЛЬНОЕ решение, в котором будет заюзано от 30 до 40 (в зависимости от методики подсчёта) ключевых слова...


    E>И на этом фоне выходит некто, и начинает нам втирать, что у него аж целых 23!

    E>Ты уже готов скушать свою шляпу?

    Ну, если взять только исходную задачу, и считать что код нужно помещать внутрь #define, и нельзя использовать слова уже использованные в задаче, то получается чуть-чуть поменьше, типа: http://liveworkspace.org/code/3tvGon$99 (не претендую на рекорд, просто пример)


    Но в одном автор безусловно не прав, что позиционирует данное упражнение как тест на проф-пригодность, а не как разминку для мозга.
    Re[7]: Ты не прошёл с большим запасом ;)
    От: Erop Россия  
    Дата: 10.04.13 12:02
    Оценка:
    Здравствуйте, koenjihyakkei, Вы писали:

    K>Все-таки сдается мне, что такой хак не подразумевался, с ним действительно все тривиально, но вот без него...


    Я как бы ответ на заданный вопрос предложил, а не результат применеия телепатии...

    Кроме того тут автор вопроса много гнул пальцов на тему того, что де он такой и сякой тестит умение читать вопросы и выходить за рамки...

    IMHO, всё оказалось пуком в лужу. Как этюд ещё ничего, но очень скучно, если честно, а как мега-супер-пупер-тест вообще смешно
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[7]: Ты не прошёл с большим запасом ;)
    От: Erop Россия  
    Дата: 10.04.13 12:06
    Оценка:
    Здравствуйте, saf_e, Вы писали:

    _>Ну, если взять только исходную задачу, и считать что код нужно помещать внутрь #define,


    То, что я указал в своём плвне решения можно затолкать в #drfine

    _>и нельзя использовать слова уже использованные в задаче,

    Я уточнил у автора. Он сказал, что можно...

    _>то получается чуть-чуть поменьше, типа: http://liveworkspace.org/code/3tvGon$99 (не претендую на рекорд, просто пример)


    Ну типа всё равно 23 -- очень мало.
    В целом трудно заюзать всего-то несколько слов. auto extern и static c typedef...

    _>Но в одном автор безусловно не прав, что позиционирует данное упражнение как тест на проф-пригодность, а не как разминку для мозга.

    +100500!
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[7]: Ты не прошёл с большим запасом ;)
    От: koenjihyakkei Россия  
    Дата: 10.04.13 12:13
    Оценка:
    Здравствуйте, saf_e, Вы писали:

    _>for(auto i = 0;


    Мимо С89 однако
    Re[8]: Ты не прошёл с большим запасом ;)
    От: Erop Россия  
    Дата: 10.04.13 12:18
    Оценка:
    Здравствуйте, koenjihyakkei, Вы писали:

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


    _>>for(auto i = 0;


    K>Мимо С89 однако

    можно внутрь do ... while засунуть...
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[9]: Ты не прошёл с большим запасом ;)
    От: koenjihyakkei Россия  
    Дата: 10.04.13 12:24
    Оценка:
    Здравствуйте, Erop, Вы писали:

    E>можно внутрь do ... while засунуть...


    Это как? В С89, по-моему, объявление переменной позволяется только в начале блока, а блок начинается с '{'.
    Re[8]: Ты не прошёл с большим запасом ;)
    От: saf_e  
    Дата: 10.04.13 12:26
    Оценка:
    Здравствуйте, koenjihyakkei, Вы писали:

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


    _>>for(auto i = 0;


    K>Мимо С89 однако


    Я как-то так и не договорился с компиляторами из liveworkspac'a

    Валидная с точки зрения С запись типа
    for(auto int i

    у С++-ного компилятора оказалась невалидна Нашел компромис
    Re[6]: 💉простой тест на знание языка ))))
    От: Evgeny.Panasyuk Россия  
    Дата: 10.04.13 12:36
    Оценка: :)
    Здравствуйте, Erop, Вы писали:

    E>Но в целом, IMHO, решение тривиально.

    [...]

    ну так а никто не говорил что сложно, хотя бы на название топика посмотри

    E>Ну теперь можно надекларировать каких-то переменных типа указатель на что-то, и заюзать auto volatile register double int struct long enum char extern union const float short unsigned signed void wchar_t (если оно считается) и static с typedef до кучи.


    Между говорить и делать — огромная разница, на MSVC C у тебя даже:
    int main() {
    
       do ; while(0); int i;  do ; while(0);
    
    }

    не скомпилируется
    Re[10]: Ты не прошёл с большим запасом ;)
    От: Erop Россия  
    Дата: 10.04.13 12:37
    Оценка:
    Здравствуйте, koenjihyakkei, Вы писали:

    K>Это как? В С89, по-моему, объявление переменной позволяется только в начале блока, а блок начинается с '{'.


    MSVC, заявленная в вопросе, вроде как кушает...
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[11]: Ты не прошёл с большим запасом ;)
    От: koenjihyakkei Россия  
    Дата: 10.04.13 12:40
    Оценка:
    Здравствуйте, Erop, Вы писали:

    E>MSVC, заявленная в вопросе, вроде как кушает...


    Неа. MCVC C весьма ущербный Они его совсем не развивают.
    Re[9]: Ты не прошёл с большим запасом ;)
    От: koenjihyakkei Россия  
    Дата: 10.04.13 12:42
    Оценка:
    Здравствуйте, saf_e, Вы писали:

    Да там GCC, Clang и Intel, а они вроде все тру С99, а может уже и С11, попробуй MSVC С скомпилировать
    Re[6]: Ты не прошёл с большим запасом ;)
    От: Alexéy Sudachén Чили  
    Дата: 10.04.13 12:48
    Оценка: +1 :))
    E>Но в целом, IMHO, решение тривиально.
    E>1) В начало нашего решения суём ;while( 0 );

    Почему бы и нет. Тоже решение, но примерно как развернуть строку вручную, написав буквы в правильном порядке. Я специально написал do while(0) что даёт неявное условие задачи, и что бы избежать 101 ответа на тему давайте запишем всё через точку с запятой. Этот тест нельзя не пройти, вопрос в том что он покажет. Тут смысл ведь не в том на сколько много слов ты напишешь, а то как ты это сделаешь и сделаешь ли вообще что нибудь. Сможешь ли ты понять задачу вне зоны комфорта, понять неявные ограничения, самостоятельно определить допустимые и не допустимые способы решения и выбрать на твой взгляд верный. 'Кто больше' — это просто соревновательный элемент для привлечения внимания.

    Что бы кто ни говорил, а тест работает. ))) Это чётко видно по обсуждению.

    В результате как обычно есть несколько групп людей:

    1 — сказали что задача тривиальная, и не стали решать.
    2 — сказали что будут решать такие сложные задачи только за высокий рейт.
    3 — сказали что слишком духовны для извращений.
    4 — попытались свести задачу к другой, не выводящий их из зоны комфорта.
    5 — попытались решить и решили задачу, при этом успешно смогли выйти из зоны комфорта.

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

    http://ideone.com/j4y9Tk — 24 (в начале неправильно посчитал). Чтобы написать это никаких особых знаний кроме языка не нужно. Более того, написать хотя бы 10 слов может любой, кто внимательно прочитал книжку по языку.

    switch(0) for(;;) if(1) default: return !puts("hello!"); else do case 0: continue; while(0);

    Ещё раз — не важно сколько слов ты напишешь, важно знаешь ли ты несколько базовых вещей относительно языка или нет. Что удивительно, многие так называемые программисты не знают.
    Re[2]: 💉простой тест на знание языка ))))
    От: Alexéy Sudachén Чили  
    Дата: 10.04.13 12:52
    Оценка:
    J>а если соискатель отказался заниматься подобной ересью объяснив это тем что просто не хочет он сразу отправляется за ворота ?))

    Э... ну это сильно зависит от работодателя. ))) К тому же я не думаю что тебе стоит об этом беспокоиться, типичный работодатель предпочтёт поиграться с гномиками.
    Re[7]: 💉простой тест на знание языка ))))
    От: Erop Россия  
    Дата: 10.04.13 12:56
    Оценка:
    Здравствуйте, Evgeny.Panasyuk, Вы писали:

    EP>ну так а никто не говорил что сложно, хотя бы на название топика посмотри

    Ну, как бы уровень амбиций не соответствует уровню амуниции слишком явно...

    E>>Ну теперь можно надекларировать каких-то переменных типа указатель на что-то, и заюзать auto volatile register double int struct long enum char extern union const float short unsigned signed void wchar_t (если оно считается) и static с typedef до кучи.


    EP>Между говорить и делать — огромная разница, на MSVC C у тебя даже:

    EP>
    EP>int main() {
    
    EP>   do ; while(0); int i;  do ; while(0);
    
    EP>}
    EP>

    EP>не скомпилируется
    Ну охота же некропрограммизмом страдать. С99 ужо 15 лет скоро...
    В общем всё просто же. Если определять новые переменные нельзя, то вылетят ключевые слова static и extern. Ну и фиг с нимим, хотя, IMHO, это делает твой тест ещё более уродским, так как все слова использовать нальзя...

    А остальное всё равно тривиально.
    Ты лучше не темни, и скажи какие слова у тебя не вошли в 23 заветные?
    Ты чето всунуть-то не смог?
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[3]: 💉простой тест на знание языка ))))
    От: Vzhyk  
    Дата: 10.04.13 13:01
    Оценка: +1
    On 10.04.2013 15:52, Alexéy Sudachén wrote:

    > Э... ну это сильно зависит от работодателя. ))) К тому же я не думаю что

    > тебе стоит об этом беспокоиться, типичный работодатель предпочтёт
    > поиграться с гномиками.
    Что в лоб, что по лбу. Что гномики, что подобный бред, не имеющий
    никакого отношения к разработке программ.
    Posted via RSDN NNTP Server 2.1 beta
    Re[8]: 💉простой тест на знание языка ))))
    От: Evgeny.Panasyuk Россия  
    Дата: 10.04.13 13:08
    Оценка:
    Здравствуйте, Erop, Вы писали:

    E>Ну охота же некропрограммизмом страдать. С99 ужо 15 лет скоро...


    Ты это MS выскажи, когда придётся C99/C11 либу MSVC компилировать.

    E>В общем всё просто же. Если определять новые переменные нельзя, то вылетят ключевые слова static и extern. Ну и фиг с нимим, хотя, IMHO, это делает твой тест ещё более уродским, так как все слова использовать нальзя...


    Ээ, это не мой тест.
    Re[4]: 💉простой тест на знание языка ))))
    От: Alexéy Sudachén Чили  
    Дата: 10.04.13 13:09
    Оценка: :)
    V>Что в лоб, что по лбу. Что гномики, что подобный бред, не имеющий
    V>никакого отношения к разработке программ.

    И что самое интересное, люди которые считают ниже своего достоинства писать тестовое задание, имеющее прямое отношение к разработке программ, и люди, считающие короткие интегральные тесты бредом — часто одни и те же люди )))) Наверное это так чисто случайно получается.
    Re[5]: 💉простой тест на знание языка ))))
    От: Vzhyk  
    Дата: 10.04.13 13:31
    Оценка:
    On 10.04.2013 16:09, Alexéy Sudachén wrote:

    > И что самое интересное, люди которые считают ниже своего достоинства

    > писать тестовое задание, имеющее прямое отношение к разработке программ,
    > и люди, считающие короткие интегральные тесты бредом — часто одни и те
    > же люди )))) Наверное это так чисто случайно получается.
    Ничего не понял, что ты сказать хотел. Это плохо, когда к вам на
    собеседование приходят люди, имеющие прямое отношение к разработке
    программ или хорошо?

    З.Ы. Интересно, если журналист сможет составить предложение из 100 слов
    (в общем не несущее смысла) — это хороший журналист или плохой? Ты здесь
    тестируешь то же самое.
    Posted via RSDN NNTP Server 2.1 beta
    Re[5]: 💉простой тест на знание языка ))))
    От: Evgeny.Panasyuk Россия  
    Дата: 10.04.13 13:37
    Оценка: :)
    Здравствуйте, Alexéy Sudachén, Вы писали:

    V>>Что в лоб, что по лбу. Что гномики, что подобный бред, не имеющий

    V>>никакого отношения к разработке программ.
    AS>И что самое интересное, люди которые считают ниже своего достоинства писать тестовое задание, имеющее прямое отношение к разработке программ, и люди, считающие короткие интегральные тесты бредом — часто одни и те же люди )))) Наверное это так чисто случайно получается.

    И конечно же совсем чисто случайно это не просто люди которые не хотят делать тестовое задание
    Автор: Vzhyk
    Дата: 21.02.13
    , а просто не могут его сделать
    Автор: Vzhyk
    Дата: 22.02.13
    Re[7]: Ты не прошёл с большим запасом ;)
    От: B0FEE664  
    Дата: 10.04.13 13:39
    Оценка: :)))
    Здравствуйте, Alexéy Sudachén, Вы писали:

    AS>
    switch(0) for(;;) if(1) default: return !puts("hello!"); else do case 0: continue; while(0);


    Не зачет.

    при исполнении должно напечатать "hello!" и корректно завершиться.

    а выводит hello!
    И каждый день — без права на ошибку...
    Re[6]: 💉простой тест на знание языка ))))
    От: Vzhyk  
    Дата: 10.04.13 13:41
    Оценка:
    On 10.04.2013 16:37, Evgeny.Panasyuk wrote:

    > И конечно же совсем чисто случайно это не просто люди которые не хотят

    > делать тестовое задание <http://rsdn.ru/forum/job/5078096.1&gt;
    Автор: Vzhyk
    Дата: 21.02.13
    , а просто

    > не могут его сделать <http://rsdn.ru/forum/job/5078555.1&gt;
    Автор: Vzhyk
    Дата: 22.02.13

    И слава богу.
    Posted via RSDN NNTP Server 2.1 beta
    Re[7]: Ты не прошёл с большим запасом ;)
    От: landerhigh Пират  
    Дата: 10.04.13 13:42
    Оценка: +1
    Здравствуйте, Alexéy Sudachén, Вы писали:


    AS>Ещё раз — не важно сколько слов ты напишешь, важно знаешь ли ты несколько базовых вещей относительно языка или нет. Что удивительно, многие так называемые программисты не знают.


    Большинство носителей английского языка не знают понятий present continous и past perfect, к примеру. Что не мешает им говорить на английском, ээээ, несравнимо лучше меня.
    www.blinnov.com
    Re[3]: 💉простой тест на знание языка ))))
    От: B0FEE664  
    Дата: 10.04.13 13:47
    Оценка:
    Здравствуйте, Alexéy Sudachén, Вы писали:

    BFE>>нигде не сказано, что ключевые слова должны "исполнятся".

    AS>Ну, дык, молодец! А теперь с тем же результатом и чтобы ключевые слова были в исполняемом коде.

    Я не пишу на С, а на С++ задача не имеет смысла, так как:

    1 New context-dependent keywords are introduced into a program by typedef (7.1.3), namespace (7.3.1),
    class (clause 9), enumeration (7.2), and template (clause 14) declarations.

    И каждый день — без права на ошибку...
    Re[8]: Ты не прошёл с большим запасом ;)
    От: Alexéy Sudachén Чили  
    Дата: 10.04.13 13:56
    Оценка:
    AS>>Ещё раз — не важно сколько слов ты напишешь, важно знаешь ли ты несколько базовых вещей относительно языка или нет. Что удивительно, многие так называемые программисты не знают.
    L>Большинство носителей английского языка не знают понятий present continous и past perfect, к примеру. Что не мешает им говорить на английском, ээээ, несравнимо лучше меня.

    Дык, незнание названий как то мешает им использовать данные конструкции?! Как и незнание стандарта тоже ни коем образом не мешает писать код любым удобным способом )))), а его знание часто на сей процесс вообще не влияет.

    КО?!
    Re[9]: Ты не прошёл с большим запасом ;)
    От: saf_e  
    Дата: 10.04.13 14:00
    Оценка: +2
    Здравствуйте, Alexéy Sudachén, Вы писали:

    AS>>>Ещё раз — не важно сколько слов ты напишешь, важно знаешь ли ты несколько базовых вещей относительно языка или нет. Что удивительно, многие так называемые программисты не знают.

    L>>Большинство носителей английского языка не знают понятий present continous и past perfect, к примеру. Что не мешает им говорить на английском, ээээ, несравнимо лучше меня.

    AS>Дык, незнание названий как то мешает им использовать данные конструкции?! Как и незнание стандарта тоже ни коем образом не мешает писать код любым удобным способом )))), а его знание часто на сей процесс вообще не влияет.


    AS>КО?!


    Вот вы сами и рассказали почему ваш тест не имеет смысла
    Re[10]: Ты не прошёл с большим запасом ;)
    От: Alexéy Sudachén Чили  
    Дата: 10.04.13 14:05
    Оценка:
    L>>>Большинство носителей английского языка не знают понятий present continous и past perfect, к примеру. Что не мешает им говорить на английском, ээээ, несравнимо лучше меня.
    AS>>Дык, незнание названий как то мешает им использовать данные конструкции?! Как и незнание стандарта тоже ни коем образом не мешает писать код любым удобным способом )))), а его знание часто на сей процесс вообще не влияет.
    _>Вот вы сами и рассказали почему ваш тест не имеет смысла

    Классно, можно развернуть цепочку логических рассуждений, а то именно это как-то не очевидно )))
    Re[6]: 💉простой тест на знание языка ))))
    От: Alexéy Sudachén Чили  
    Дата: 10.04.13 14:09
    Оценка: :)
    V>З.Ы. Интересно, если журналист сможет составить предложение из 100 слов
    V>(в общем не несущее смысла) — это хороший журналист или плохой? Ты здесь
    V>тестируешь то же самое.

    Тестирую я совсем другое. Что именно я уже написал.

    Кстати, для журналиста хороший тест написать осмысленный рассказ из 100 несуществующих слов ))) Почему-то я сомневаюсь что ты это осилишь.
    Re[7]: Ты не прошёл с большим запасом ;)
    От: Erop Россия  
    Дата: 10.04.13 14:18
    Оценка: 2 (1) +1
    Здравствуйте, Alexéy Sudachén, Вы писали:

    AS>Обычно, с последними двумя группами имеет смысл говорить дальше, ну это если конечно стоит цель сделать работу, а не приятно о ней потрепаться.


    Какое всё это имеет отношение к сабжу стартового сообщения?
    Это же всё разные вариации вопросов про число настройщиков роялей в Чикаго?

    AS>http://ideone.com/j4y9Tk — 24

    Лень смотреть, что ты не смог вставить?
    auto, extern, static без объявления переменной заюзать вроде как нельзя.
    Скорее всего не смог вставить ещё typedef, какие ещё 2?

    AS>Ещё раз — не важно сколько слов ты напишешь, важно знаешь ли ты несколько базовых вещей относительно языка или нет. Что удивительно, многие так называемые программисты не знают.

    Мне кажется, что всё это бред, базирующийся исключительно на возможности унижать экзаменуемого и только. Глупый грубый и малокорректный психологический тест, вообще не имеющий отношения непострдственно к навыкам.
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[9]: 💉простой тест на знание языка ))))
    От: Erop Россия  
    Дата: 10.04.13 14:20
    Оценка:
    Здравствуйте, Evgeny.Panasyuk, Вы писали:

    EP>Ты это MS выскажи, когда придётся C99/C11 либу MSVC компилировать.

    Я очень надеюсь, что говнокод из этого этюда мне в продакшине никогда не встретится...

    E>>В общем всё просто же. Если определять новые переменные нельзя, то вылетят ключевые слова static и extern. Ну и фиг с нимим, хотя, IMHO, это делает твой тест ещё более уродским, так как все слова использовать нальзя...


    EP>Ээ, это не мой тест.

    А, прошу прощения. Имелся в виду автор и те, кто согласны с сабжем...
    Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
    Re[7]: 💉простой тест на знание языка ))))
    От: Vzhyk  
    Дата: 10.04.13 14:23
    Оценка:
    On 10.04.2013 17:09, Alexéy Sudachén wrote:

    > Кстати, для журналиста хороший тест написать осмысленный рассказ из 100

    > несуществующих слов ))) Почему-то я сомневаюсь что ты это осилишь.
    100%, причем даже делать не буду, впрочем как и остальные всевозможные
    странные глупости.

    З.Ы. Я понимаю, что люди есть разные, некоторые и под поезда кидаются,
    если им предложат кинуться, но ко мне оное не относится.
    Posted via RSDN NNTP Server 2.1 beta
    Re[8]: Ты не прошёл с большим запасом ;)
    От: Vzhyk  
    Дата: 10.04.13 14:30
    Оценка: +2 :)
    On 10.04.2013 17:18, Erop wrote:

    > Мне кажется, что всё это бред, базирующийся исключительно на возможности

    > унижать экзаменуемого и только. Глупый грубый и малокорректный
    > психологический тест, вообще не имеющий отношения непострдственно к
    > навыкам.
    Нет тут ничего и психологического. Тут есть одно, ТС узнал, что можно
    много ключевых слов С++ написать подряд разными странными способами и он
    посчитал, что он КРУТ. И к тому, что он так считает нет никаких
    претензий, это его собственные тараканы.
    Другое, что он пытается оное обобщить на всех и требует, чтобы все
    осознали его крутизну, тем более, что его, похоже, допустили до
    собеседований и он сейчас наконец-то может насладиться этой крутизной.
    Причем, похоже, что на собеседованиях ему показалось мало или кто-то его
    послал далеко, вот он решил попытаться самоутвердиться здесь.

    Фух. Кажется я даже выполнил его тест по написанию кучи слов (имеющих
    мало отношения к реальности). Чтобы ТС, чего не подумал, я ему не
    подхожу, как сотрудник на все 100%.
    Posted via RSDN NNTP Server 2.1 beta
    Re[10]: 💉простой тест на знание языка ))))
    От: Vzhyk  
    Дата: 10.04.13 14:31
    Оценка:
    On 10.04.2013 17:20, Erop wrote:

    > Я очень надеюсь, что говнокод из этого этюда мне в продакшине никогда не

    > встретится...
    Ты сильно оптимистичен, а мир тесен.
    Posted via RSDN NNTP Server 2.1 beta
    Re[7]: 💉простой тест на знание языка ))))
    От: landerhigh Пират  
    Дата: 10.04.13 22:37
    Оценка: +1 :)
    Здравствуйте, Alexéy Sudachén, Вы писали:

    AS>Тестирую я совсем другое. Что именно я уже написал.


    AS>Кстати, для журналиста хороший тест написать осмысленный рассказ из 100 несуществующих слов


    Ах, вот оно в чем дело! А то я все понять не мог, почему нынче журналисты ниасиливают даже заголовок для своей новости без пяти несуществующих слов в неправильном порядке написать. Про "тся"-"ться" и прочие детские грамматические ошибки вообще молчу, а пунктуационные ошибки даже и упоминять не хочу. Их, оказывается, несуществующими словами тренируют. Все понятно.
    www.blinnov.com
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.