Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.54/127: Рейтинг темы: голосов - 127, средняя оценка - 4.54
ukmysh
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 19
1

Пройдите тест на знание ATmega

02.11.2014, 17:05. Просмотров 23009. Ответов 77
Метки нет (Все метки)

Я тут сделал тест на знание микроконтроллеров серии ATmega. Если точнее, то программирование МК на языке C.
10 вопросов разной степени сложности, около 3-х минут на прохождение. В конце попросит представиться для получения бесплатного сертификата.

http://crowdtest.org/test/44

Гляньте пожалуйста, может какие замечания или предложения по вопросам будут.
На том сайте можно коллективно добавлять вопросы в тесты, так что не стесняйтесь дополнять. Ну и если кому нужны вопросы для собеседований или студентов проверять - берите на здоровье. Только ответы нигде не выкладывайте пожалуйста. :)

Давно читаю EasyElectronics, спасибо за отличный сайт!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2014, 17:05
Ответы с готовыми решениями:

Макетная плата для Atmega 32?atmega 8
Здравствуйте !Уважаемые мастера нужна помощь (а именно нужна схема макетной...

Пройдите тест по знанию C++
Пожалуста помогите ответив на эти вопросы) using namespace std;// std -...

Пройдите тест Microsoft Access
Здравствуйте, пройдите тест по Microsoft Access http://...narod.ru/test3.html и...

Тест на знание ассемблера
Доброго времени суток, господа! В этом семестре нам преподавали системное...

Тест на знание Delphi
На знание Delphi то есть мне нужны просто готовые вопросы с ответами чтобы...

77
ukmysh
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 19
03.11.2014, 21:01 41
Цитата Сообщение от dymyurk1978
Плюсую. Что-то не так с этим тестом. Тест писал дилетант. Вопросы крайне некорректно сформулированы. Если будет продолжать щеки надувать, пусть, вперед. Или тест совершенствуй, или иди лесом. Тест на знание AVR, а приплели вопрос о volatile. А если тестируемый на асме пишет?
Мне очень жаль, что низкая оценка в тесте так сильно задела ваше самолюбие, но всё же давайте будем объективны: на странице теста и в этом топике русским по белому написано "программирование на языке C".
Умерьте свой пыл, уважаемый.
0
ukmysh
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 19
03.11.2014, 21:04 42
Цитата Сообщение от YurkoM
Может, сделать рандомную подборку вопросов из большого кол-ва? Тогда видимость неправильных ответов не повлияет на повторное прохождение.
Я бы с удовольствием, но эти вопросы кто-то писать должен. Поможете? http://crowdtest.org/add/question?test_id=44
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
03.11.2014, 21:04 43
Цитата Сообщение от ukmysh
Знаете, сколько человек приходится выслушивать HR-ам каждый день? Для того, чтобы не тратить ценное время рибатников попусту и были придуманы такие тесты.
Потуги HR оптимизировать своё время и формализовать критерии отбора довольно занятны. Для простых рабочих и мелкого офф. планктона они с горем пополам еще работают, а вот для инженеров R&D или например менеджмента увы нет. Они товар штучный, с таким подходом (отсев по нерелевантным критериям) вакансии будут годами открыты, а кандидаты прошедшие HR будут заворачивается спецами.

В общем ex nihilo nihil fit.
0
oomomstir
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
03.11.2014, 21:10 44
Повторяю: надо просто забанить спамера. Я не сразу обратил внимание - но он и зарегистрировался только вчера, специально для этого топика.
Продвигает свой недоресурс.

Кто тут у нас из модераторов есть?
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
03.11.2014, 21:13 45
Цитата Сообщение от oomomstir
Повторяю: надо просто забанить спамера.
Однозначно... :))))))))
0
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
03.11.2014, 22:08 46
Цитата Сообщение от ukmysh
Цитата Сообщение от itysiy
Ключевое слово volatile указывает, что переменная может быть изменена несколькими потоками, выполняющимися одновременно. Переменные, объявленные как volatile, не проходят оптимизацию компилятором, которая предусматривает доступ посредством отдельного потока. Это гарантирует наличие наиболее актуального значения в переменной в любое время.
Указанный у вас один из ответов только следствие действий компилятора чтобы обеспечить безопасность многопоточного доступа.
Уберите всю воду из вашего определения, конкретизируйте, и получите тот самый ответ.

Ну кстати нет. Разные причины следствия. Не во всех случаях компилятор для переменной volatile будет генерировать обновление данных их памяти. А следовательно volatile есть, а обновления нет, а значит правильного ответа нет.

Мы даем вам возможность посмотреть вопросы, понять уровень теста, попробовать свои силы и только потом, если вы сочтете нужным, регистрироваться. По-моему, это очень удобно.
Красиво говорите, даже сразу не заметно как фактами жонглируете. Но кого вы пытаетесь обмануть? Это не удобно регистрироваться, чтобы посмотреть результаты теста. А значит это просто принуждение, "эффективный" набор пользователей.
0
oomomstir
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
03.11.2014, 22:21 47
Да просто жуик, видимо, совсем перестал бабло приносить, вот Угнич и задёргался, запилил новый проект и стал спамить на форумах ;-)

Спасибо, кстати, ему за этот топик: если бы не он, я бы продолжал считать жуйку нормальным ресурсом (ну не бываю я там, но помню, что народ туда кросспостил что-то). А он, оказывается, стух уже.

Ссылка по теме: http://lurkmore.to/Juick (нагуглено по нику топикстартера)
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
03.11.2014, 23:20 48
Цитата Сообщение от oomomstir
Ссылка по теме: http://lurkmore.to/Juick (нагуглено по нику топикстартера)
Ага, еще все яйца ТС (crowdtest.org, juick.com и siam.li) на одном сервере хостятся. Ну и в whois последнего засвечены контакты...
0
ukmysh
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 19
04.11.2014, 13:23 49
Цитата Сообщение от itysiy
Не во всех случаях компилятор для переменной volatile будет генерировать обновление данных их памяти. А следовательно volatile есть, а обновления нет, а значит правильного ответа нет.
Подскажите пожалуйста, в каких случаях обновления данных для volatile переменной производиться не будет?

Код
Вопрос: Что указывает компилятору ключевое слово volatile при объявлении переменной?
Ответ: переменная может быть изменена извне
Так лучше?
0
ShodS
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
04.11.2014, 13:54 50
А мне чет показалось, что как раз таки вопрос про volatile был интересным и один из ответов отражал реальность по существу... при этом я не знаю ответил ли я правильно, и не знаю, что конкретно говорится про volatile в умных книжках... но вот то ощущение, которое сложилось от практики, вполне было созвучно с одним из ответов.....

ЗЫ
Еще раз глянул, вопрос: "Что указывает компилятору ключевое слово volatile при объявлении переменной?"
Я выбраз ответ: "обновлять значение переменной в\из памяти после каждой операции"

Что в этом ответе не так? Помоему все правильно...

Цитата Сообщение от ukmysh
Ответ: переменная может быть изменена извне
Переменная и без volatile может быть изменена извне...
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
04.11.2014, 14:32 51
Цитата Сообщение от ShodS
ЗЫ
Еще раз глянул, вопрос: "Что указывает компилятору ключевое слово volatile при объявлении переменной?"
Я выбраз ответ: "обновлять значение переменной в\из памяти после каждой операции"

Что в этом ответе не так? Помоему все правильно...
volotile указывает компилятору что переменная может изменятся вне контекста треда.
Компилятор поэтому не должен:
a) буфферизировать чтение/запись в регистрах, т.е. надо "обновлять значение переменной в\из памяти после каждой операции"
б) оптимизировать инструкции надеясь на то, что переменная не меняется.
0
ShodS
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
04.11.2014, 14:38 52
Пункт б) автоматом следует из пункта а), а главная суть в пункте а)...
Так что все верно в вопросе\ответе отраженном на данный мометн...
0
ukmysh
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 19
04.11.2014, 15:15 53
Цитата Сообщение от ShodS
Пункт б) автоматом следует из пункта а), а главная суть в пункте а)...
Так что все верно в вопросе\ответе отраженном на данный мометн...
Спасибо. Мне тоже кажется, что текущий вариант наиболее корректен и проверяет не только знание определения ключевого слова по книжкам, но и понимание того, что на самом деле происходит.

Повторюсь: если кто-то может предложить вариант лучше - я готов публично признать свою неправоту и заменить ответ.
0
//Mt
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 456
04.11.2014, 15:18 54
volatile - указание, что переменная может быть изменена способом неизвестным компилятору.

А вот всё остальное - следствия.
"обновлять значение переменной в\из памяти после каждой операции" - неверно.
* volatile читают из памяти ПЕРЕД операцией с ней и записывают НЕМЕДЛЕННО ПОСЛЕ.
* volatile не размещают в регистрах
* к volatile не применяются многие оптимизации

Если ТС в тесте написал именно так "обновлять значение переменной в\из памяти после каждой операции" и считал это правильным - это феерично.
0
ShodS
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
04.11.2014, 15:26 55
Цитата Сообщение от //Mt
volatile - указание, что переменная может быть изменена способом неизвестным компилятору.

А вот всё остальное - следствия.
"обновлять значение переменной в\из памяти после каждой операции" - неверно.
* volatile читают из памяти ПЕРЕД операцией с ней и записывают НЕМЕДЛЕННО ПОСЛЕ.
* volatile не размещают в регистрах
* к volatile не применяются многие оптимизации

Если ТС в тесте написал именно так "обновлять значение переменной в\из памяти после каждой операции" и считал это правильным - это феерично.
Ну ты тоже слишком феерично разнес в пух и прах маленькую неточность :)...
Можно было бы более тихо указать на эту самую неточность, на которую до сих пор не обратили внимания...

Итак вместо: "обновлять значение переменной в\из памяти после каждой операции"
следует писать: "обновлять значение переменной в\из памяти при каждой операции с переменной"
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
04.11.2014, 15:46 56
Цитата Сообщение от ShodS
Пункт б) автоматом следует из пункта а), а главная суть в пункте а)...
Запрет буферизации чтения/записи из/в ОЗУ и запрет оптимизации (порядок выполнения инструкций, раскрывания пустых циклов for(i=0; i<100500;i++); в i=100500; и т.д. и т.п.) вещи разные, и из друг друга не следуют.
0
//Mt
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 456
04.11.2014, 15:58 57
@ShodS: Если бы ТС писал эссе "Как я провел лето с МК АВР" это была бы неточность. А в тесте на знание это epic fail.
Ваше определение "обновлять значение переменной в\из памяти при каждой операции с переменной" - неточное, т.к. не специфицирует что же делать с несчастной переменной при каждой операции _с_ней_. Читать, писать или и то и другое?

Я никак не могу понять чем не устраивает классическое определение volatile? Если отвечающий его знает - то понимает и следствия. А вот если знает только одно из следствий - то не факт, что понимает что это вообще такое и почему так.
0
ukmysh
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 19
04.11.2014, 17:52 58
Цитата Сообщение от ShodS
Итак вместо: "обновлять значение переменной в\из памяти после каждой операции"
следует писать: "обновлять значение переменной в\из памяти при каждой операции с переменной"
Отлично, спасибо, сейчас исправлю!

Честно признаться, я не понимаю буквоедства и педантизма отдельных личностей. Это быстрый простой тест с короткими вопросами и ответами. Зачем здесь нужны перечисления всех мельчайших подробностей и абсолютное соответствие определениям из учебника? Если человек понимает, как работает volatile - он найдет правильный ответ в любом случае. А если он о volatile знает только определение из учебника и ни разу не вникал в суть - то грош цена таким знаниям.

Какие-нибудь замечания по другим вопросам?
Напоминаю, что вы тоже можете добавлять свои вопросы в тест: http://crowdtest.org/add/question?test_id=44
0
BykTiho
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
04.11.2014, 18:05 59
Цитата Сообщение от яверт
Цитата Сообщение от ShodS
ЗЫ
Еще раз глянул, вопрос: "Что указывает компилятору ключевое слово volatile при объявлении переменной?"
Я выбраз ответ: "обновлять значение переменной в\из памяти после каждой операции"

Что в этом ответе не так? Помоему все правильно...
volotile указывает компилятору что переменная может изменятся вне контекста треда.
Компилятор поэтому не должен:
a) буфферизировать чтение/запись в регистрах, т.е. надо "обновлять значение переменной в\из памяти после каждой операции"
б) оптимизировать инструкции надеясь на то, что переменная не меняется.
И как вышеизложенное связано со "знанием AVR"? Это знание компилятора и его директив, но никак не AVR.
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
05.11.2014, 15:54 60
Сразу два некорректных вопроса . Дальнейший тест становится бесмысленным
0
05.11.2014, 15:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2014, 15:54

Тест на знание Windows
Разработка гипертекстового документа &quot;Тест на знание Windows&quot;

Тест на знание синтаксиса языка C++
Всем доброго времени суток. Ситуация следующая: спустя много-много лет,...

Тест на знание работы компилятора
Привет, начал проходить курс по С++, и тут ступор. Нужно выбрать буквы верных...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru