2013-03-01 9 views
0

Готовлю для составителей экзамена, и я нашел следующие два вопроса в прошлых статьях, которые я не знаю, как ответить:Составители экзамен Разъяснение

1. Array bounds checking requires code to check each array subscript to ensure it 
falls within the array's declared range. How could induction variable analysis be 
used to avoid repeated bounds checks in "for" loops. 

2. Give a short example in Java in which one array address calculation is loop- 
invariant and another array address is an induction variable. 

Я знаю, что инвариантного и индукционные переменной означает, но Я не знаю, чего от меня ждут в отношении объяснения этих двух решений.

Я был бы признателен, если бы кто-нибудь помог мне с объяснением.

Спасибо!

ответ

0

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

Что касается второго, существует множество примеров (на разных языках, включая Java) циклов-инвариантных и индукционных переменных, - просто Google для этих условий.