Результаты опросов

#1. Вопрос о возможных вариантах записи операций с указателями

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

(1) word *P=&Dict[pFunc].pNode; (2) while (strcmp(Buff,"end")!=0) (-) { (3) *P= Ctrl(Buff); (4) P=&Node[*P].pRight; (-) }

то же самое на придуманном автором языке Context:

(1) word @P=@Dict[pFunc].pNode; (2) while strcmp(@Buff,"end")!=0 do (3) P= Ctrl(@Buff); (4) @P=@Node[P].pRight; (5) end

Обратите внимание на то, что в обоих фрагментах сознательно сделаны различные отступы при записи операторов присваивания значения и адреса в строках 3 и 4. Возможны и иные формы записи тех же действий. Вопрос в том, какая форма определения указателя и присваивания ему адреса (строки 1 и 4) представляется Вам наиболее понятной:

(A) word *P =&Dict[pFunc].pNode; (B) word @P =@Dict[pFunc].pNode; (C) word P^=@Dict[pFunc].pNode; (D) word P^= Dict[pFunc].pNode^;

Здесь Dict - массив структур, поле pNode - слово, @ - префиксный, а ^ - постфиксный оператор вычисления адреса.

Допускались также ответы

(E) другая форма (F) не знаю

Результаты:

Вариант
ответа
Число
проголосовавших
%
A 56 48%
B 20 17%
C 9 8%
D 11 9%
E 13 11%
F 8 7%
Всего: 117 100%

Опрос проводился с 02.12.2002 по 31.12.2004. Проголосовали менее полутора процентов посетителей.

#2. Вопрос о формах управляющих конструкций

В ряде языков программирования ( C/C++/... ) используются операторные скобки ( {...} / begin...end ), используемые когда нужно поместить более одного оператора внутрь управляющей конструкции ( if / while / ... ). В других языках ( Modula/Basic/... ) любое число операторов может быть помещено внутрь управляющей конструкции без использования скобок. В языке Pascal используются оба варианта ( сравните while и repeat/until ). Если скобки не используются, управляющие конструкции завершаются специальными ключевыми словами ( end / endif / enddo / ... ). Например

while (Buff[I]!=0) // A - со скобками { if (Buff[I]=='\\') { K=I+1; } I++; } while Buff[I]!=#0 do // B - с одним завершающим словом ( end ) if Buff[I]='\' then K=I+1; end inc I; end while Buff[I]!=#0 do // C - с различными завершающими словами ( endif / enddo / ... ) if Buff[I]='\' then K=I+1; endif inc I; enddo while Buff[I]!=#0 do // D - с различными парами завершающих слов ( end if / end do / ... ) if Buff[I]='\' then K=I+1; end if inc I; end do

Какая из форм управляющих конструкций представляется Вам наиболее удобной:

(A) Скобки (B) Одно слово (C) Различные слова (D) Различные пары слов

Допускались также ответы

(E) другая форма (F) не знаю

Результаты:

Вариант
ответа
Число
проголосовавших
%
A 51 59%
B 15 17%
C 7 8%
D 10 11%
E 4 5%
F 0 0%
Всего: 87 100%

Опрос проводился с 03.03.2003 по 31.12.2004.



Сайт создан в системе uCoz