Такс... у меня все закончено. Из "расширений" спецификаций:
print() может принимать список значений, а не одно.
Дополнительные функции:
println(список)
sin(x)
cos(x)
random(max_number)
sqrt(x)
pi() - возвращает значение PI
e() - возвращает значение E
time() - возвращает число тиков.
Дополнительные процедуры:
show() - показывает окно куда выводятся точки
hide() - скрывает окно куда выводятся точки
shutdown() - закрывает окно, куда выводятся точки. Если вызвать эту функцию в конце программы, то программа завершится немедленно. Если не вызвать (и были вызовы plot()) - то после окончания работы интерпретатора окно будет оставаться открытым пока его не закроют
В процедуре plot(x,y,color,index) color кодируется триадой от 0 до 10, таким образом 101010 - это примерно белый (светло-светло серый), а 000000 - черный.
Упрощения спецификаций:
1. Нет бесконечной арифметики, все числа - обычные double
2. Я не понял насчет пересчета координат когда выводим plot (см пост выше). Разъясните, pls.
Если уважаемая комиссия и уважаемый Реконструктор согласятся на такие упрощения - мой вариант готов. Из принципа не буду прогонять сотню тестов, проверим, насколько быстрота разработки влияет на качество. На оптимизацию быстродействия тоже внимания не обращал никакого. При этом код:
code text
{
begin=time();
i=0;
while(i<1000000) {
a=random(20)-10;
c=random(20)-10;
b=random(20)-10;
d=b^2-4*a*c;
if(d>0) {
d=sqrt(d);
};
i=i+1;
};
end=time();
print(end-begin);
}
выдает результатом 2782.0, т.е миллион проходов берет меньше трех секунд, что я считаю вполне приемлемо для интерпретатора.
Ну, вроде все. Говорите, куда слать код. Код очень малокомментирован, правда - боялся, что Реконструктор меня обгонит.