Контрольные вопросы и упражнения
142 |
Глава 5. Действия и операторы в программах |
2. Нарисуйте схемы алгоритмов для следующих программных фрагментов:
3. Дано: подмассив A[i..n]. Требуется: найти к-е вхождение элемента х (k > 0). Использовать инварианты.Идея: Элемент х должен встречаться в массиве k раз. Область поиска последовательно сужается слева-направо. Инвариант цикла: {должен быть (область) and счетчик < k} Постусловие: Начальный текст программы: Инициализация (обнуление счетчика вхождений, установка начальной левой границы области) Цикл {должен быть (область) and счетчик < k} Если область пуста, то выход; Если элемент массива = х, то увеличить счетчик; Если счетчик = k, то вернуть индекс элемента и выйти; (Перейти к следующему элементу). Сужение области поиска. Продолжить самостоятельно. 4. Какие недостатки имеются у арифметического оператора IF языка Fortran? 5. Что необычного есть в операторе выбора языка С? Какие компромиссы были приняты при его проектировании? 6. Какие проблемы возникают при разработке циклов с известным числом повторений? |
Контрольные вопросы и упражнения |
143 |
7. Что представляет собой цикл с предусловием? Что представляет собой цикл с постусловием? 8. В чем заключается разница между оператором for языка С и аналогичным оператором языка С++? 9. Какова основная причина изобретения циклов с повторением по данным? 10. Какие преимущества имеет оператор exit в языке Ada над оператором break языка С? 11. В чем состоит разница между оператором break языка С++ и его аналогом в языкеJava? 12. Перепишите следующий фрагмент программы на языке С, не используя операторы goto и break. |