Russian Qt Forum

Программирование => С/C++ => Тема начата: Олег от Ноябрь 17, 2011, 20:30



Название: Составление выражений на языке C/C++
Отправлено: Олег от Ноябрь 17, 2011, 20:30
Здравствуйте, форумчане! :)
Затрудняюсь с выбором раздела форума, где разместить свой вопрос, пусть будет здесь. Возникла необходимость придумать некое задание, которое бы проверяло уровень знаний тестируемого на предмет понимания и составления выражений на языке С/С++ с использованием массивов и, возможно, структур. Также нужно придумать варианты возможных подсказок, в случае, если у тестируемого возникнут проблемы. По сути то, что я хочу сделать должно быть автоматизированным тренажером на составление выражений с использованием массивов и, возможно, структур.
Если у кого-то есть мысли - буду рад услышать!


Название: Re: Составление выражений на языке C/C++
Отправлено: lesav от Ноябрь 17, 2011, 20:37
Лучший тренажер - gcc

он и ошибку выведет и функцию в которой ошибка, и даж номер строки


Название: Re: Составление выражений на языке C/C++
Отправлено: Олег от Ноябрь 17, 2011, 20:42
Лучший тренажер - gcc

он и ошибку выведет и функцию в которой ошибка, и даж номер строки

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


Название: Re: Составление выражений на языке C/C++
Отправлено: lesav от Ноябрь 17, 2011, 21:03
Намекну еще немного.

После события ввода символа студентом отдавать g++ код на компиляцию


Название: Re: Составление выражений на языке C/C++
Отправлено: Олег от Ноябрь 17, 2011, 21:14
Намекну еще немного.

После события ввода символа студентом отдавать g++ код на компиляцию

Вы говорите о реализации, я же хочу сейчас придумать задание - формулировку задачи, которую нужно поставить перед испытуемым (например, что будет напечатано в консоле после завершения программы; чему равен такой-то элемент массива... но все это плохие задания...)


Название: Re: Составление выражений на языке C/C++
Отправлено: andrew.k от Ноябрь 17, 2011, 23:09
берешь учебник по С++ известного автора и копипастишь оттуда задачи.
Зачем изобретать велосипед?


Название: Re: Составление выражений на языке C/C++
Отправлено: Rem Norton от Ноябрь 17, 2011, 23:15
Т.е. нужен некий автоматический синтезатор простейшего сишного кода. Я правильно понял?


Название: Re: Составление выражений на языке C/C++
Отправлено: Олег от Ноябрь 18, 2011, 18:30
Т.е. нужен некий автоматический синтезатор простейшего сишного кода. Я правильно понял?

Не совсем. Требуется придумать "всего лишь" сценарий тестирования - какое задание ставить перед пользователем и каким образом подсказывать ему в случае затруднения с ответом.


Название: Re: Составление выражений на языке C/C++
Отправлено: Олег от Ноябрь 18, 2011, 18:44
Тренажер характеризуется тем, что он предоставляет пользователю одно задание. Если пользователь не справляется с 1го раза - выдавать подсказку. И так до тех пор, пока задание не будет решено правильно, либо через несколько попыток его можно считать невыполненным. Вопрос именно в составлении сценария тренажера - какое задание поставить перед пользователем и какие при этом подсказки возможны.


Название: Re: Составление выражений на языке C/C++
Отправлено: Олег от Ноябрь 18, 2011, 18:59
Есть идея предоставлять пользователю некий кусок кода, обрабатывающий массив. Пользователь должен его проанализировать и определить все значения элементов массива после работы программы.
Под заданием расположены ячейки, куда пользователь вводит свои предполагаемые значения. После этого они подсвечиваются красным/зеленым в зависимости от правильности ответа.

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

Мне нужно придумать сценарий работы именно такого рода.


Название: Re: Составление выражений на языке C/C++
Отправлено: Igors от Ноябрь 18, 2011, 21:32
Что Вы хотите понятно, но не слишком ли это много? Напр я понимаю далеко не все ошибки компилятора сразу, иногда надо подумать что ему не нравится, поэкспериментировать. По существу Вам нужен полный синтаксический разбор - ведь чтобы посветить ошибку надо сначала ее самому найти. Такая задача может занять месяцы.

lesav предложил упрощенный, но хороший вариант, об этом стоит подумать