Операторы передачи управления
Оператор goto
Оператор безусловного перехода goto имеет формат:
goto metka;
В теле той же функции должна присутствовать ровно одна конструкция вида:
metka: оператор;
Оператор goto передает управление оператору с меткой metka. Метка –это обычный идентификатор. Оператор goto может передать управление на метку, обязательно расположенную в одном с ним теле функции.
Операторы if и goto могли бы заменить все операторы ветвления, передачи управления и цикла, но такой подход оказался не очень удобен. Применение goto может нарушить принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и один выход. Кроме того, операторы выбора и цикла выглядят более изящно и позволяют ускорить выполнение программы.
Использование оператора безусловного перехода оправдано в двух случаях:
- принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;
- переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо одни и те же действия).
В остальных случаях для записи любого алгоритма существуют более подходящие средства, а использование goto приводит только к усложнению структуры программы и затруднению отладки. В любом случае не следует с помощью goto передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, расположенные после нее, поскольку в этом случае инициализация не будет выполнена:
|
|
int k; ...
goto metka; ...
{int a = 3. b = 4;
k = a + b;
metka: int m = k + 1; ... }
После выполнения этого фрагмента программы значение переменной m не определено.
Оператор break
Оператор прерывает выполнение оператора switch. Управление передается следующему за ним оператору. Об этом было уже сказано выше. Здесь следует лишь подчеркнуть, что break относится к операторам передачи управления.
Тестирование программ
Тестирование выполняется после отладки программы и заключается в проверке правильности ее функционирования при всех вариантах исходных данных, значений переменных, условий и т.п. Это означает, что нужно проверить проход программы по всем «путям» блок-схемы. Сколько путей – столько раз нужно выполнить программу с разными значениями переменных. Следует также проверять какие значения нельзя присваивать переменным в ходе выполнения программы по причине их несоответствия типу переменных или недопустимости этого значения в каком-либо выражении программы (например, нулевое значение переменной может вызвать ошибку деления на 0).
|
|
Результат тестирования – примеры выполнения программы при разных исходных данных и инструкция пользователя, запрещающая вводить неверные исходные данные (например, вместо цифр буквы или цифры, но не те, что надо). В инструкции следует пояснить, почему вводится то или иное запрещение, рекомендация или требование.
Домашнее Задание
Изучите теоретические сведения и подготовьте блок-схемы и текст программ по заданию на лабораторную работу. Блок-схемы и программы записываются в «черновом» варианте в лекционной тетради. Образец блок-схемы для задания 1 приведен в приложении III. Рекомендуется сначала составить блок-схему, а затем, согласно ей, написать программу. Комментарии должны составлять не менее 10% от текста. Студенты, не выполнившие домашнего задания, не допускаются к выполнению лабораторной работы.
Задание к лабораторной работе №2
Выполните обязательные и непонятные Вам примеры теоретических сведений и лишь затем «задание M.N» по варианту N (N – номер компьютера, M – номер задания). После выполнения задания 2 дополните программу циклом с оператором goto. В цикле с помощью оператора switch организуйте выбор: повторение или завершение программы (см. пример использования switch в теоретической части). Выполните тестирование разработанных Вами программ.
|
|
Задание 1
Задание 1.1
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.2
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.3
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.4
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.5
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.6
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.7
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.8
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.9
Вычислить значения функции F при вещественных a, b, c, x, водимых с клавиатуры.
Задание 1.10
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
|
|
Задание 1.11
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.12
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.13
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.14
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 1.15
Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры.
Задание 2
Составить программу, которая печатает сообщение о принадлежности, если точка с координатами (х, у) принадлежит или не принадлежит заштрихованной области (номера вариантов на графиках):
Содержание отчета
Отчет выполняется по выбору преподавателя – либо в редакторе Word, либо в черновом варианте в лекционной тетради. Отчет должен содержать:
1. Листинг программ на языке Си, решающих задачи в соответствии с вариантом (номером компьютера) задания;
2. Блок-схему алгоритма программ (см. Приложение II и III);
3. Пояснения по методу решения задач и по выбору исходных данных для тестирования;
4. Результаты тестирования программ (консольные окна и инструкция пользователя).
При оформлении отчета следует пользоваться копированием листинга и результата тестирования в Word. Последний копируется с помощью комбинации клавиш ALT Prt Sc, при условии активности консольного окна, что означает копирование графики окна в буфер обмена Windows. Затем окно вставляется в документ Word как любой другой объект.
Контрольные вопросы к лабораторной работе №2
1. Запишите условный оператор if со словом else и без него.
2. Объедините два условия логической операцией И, ИЛИ. Добавьте логическое отрицание.
3. Запишите оператор выбора switch без оператора break и с ним. Чем отличаются эти варианты ? Добавьте слово default. Что оно означает ?
4. Объясните назначение операторов goto и break ?
ЛАБОРАТОРНАЯ РАБОТА №3
Дата добавления: 2018-11-24; просмотров: 696; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!