Операторы передачи управления



 

Оператор 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!