Конспект лекций по предмету "Программирование"


Ошибки в передачах управления

1. Если в программе содержится переключатель (например, вычисляемый оператор GO TO в Фортране или его аналог ON… GOTO в Бейсике), то может ли значение индекса когда-ли­бо превысить число возможных переходов? Например, всегда ли L будет принимать значение 1, 2 или 3 в операторе Фортрана GO TO (200, 300, 400), L или операторе Бейсика ON L GOTO 200, 300, 400?
2. Будет ли каждый цикл, в конце концов, завершен? Придумайте неформальное доказательство или аргументы, подтверждающие их завершение.
3. Будут ли программа, модуль или подпрограмма, в конечном счете, завершены?
4. Возможно ли, что из-за входных условий цикл никогда не сможет выполняться? Если это так, то является ли это оплошностью? Например, что произойдет для циклов, начинающихся операторами:
DO WHILE (NOTFOUND)
DO I=X ТО Z
если первоначальное значение NOTFOUND — ложь или если Х больше Z?
5. Для циклов, управляемых как числом итераций, так и булевским условием (например, цикл для организации поиска), какова последовательность «погружения в тело цикла»? Например, что произойдет с циклом, имеющим заголовок
DO I=1 ТО TABLESIZE WHILE (NOTFOUND)
если NOTFOUND никогда не принимает значение «ложь»?
6. Существуют ли какие-ни­будь ошибки «отклонения от нормы» (например, слишком большое или слишком малое число итераций)?
7. Если язык программирования содержит понятие группы операторов (например, DO-груп­пы в PL/1, ограниченные операторами DO-END), то имеется ли явный оператор END для каждой группы и соответствуют ли операторы END своим группам?
8. Существуют ли решения, подразумеваемые по умолчанию? Например, пусть ожидается, что входной параметр X принимает значения 1, 2 или 3. Логично ли тогда предположить, что он должен быть равен 3, если он не равен 1 или 2? Например, рассмотрим программу на языке Си:
switch(X)
{
case 1: printf(“1!!!”); break;
case 2: printf(“2!!!”); break;
default: printf(“3!!!”);
}
Коль скоро это так, то является ли предположение правильным?


Не сдавайте скачаную работу преподавателю!
Данный конспект лекций Вы можете использовать для создания шпаргалок и подготовки к экзаменам.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.