Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
887 Кб
Скачать
☆

3.6. Оператор перехода goto

Оператор безусловного перехода используется для изменения последовательности выполнения операторов.

Формат оператора:

goto метка;

В теле той же функции должна присутствовать ровно одна конструкция вида:

метка: оператор;

Оператор goto передает управление на помеченный оператор.

Метка – это обычный идентификатор, областью видимости которого является функция, в теле которой он задан.

Использование оператора безусловного перехода оправданно, как правило, в двух случаях:

  • принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;

  • переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия).

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

Использование оператора безусловного перехода считается плохим стилем программирования, т.к. нарушает принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и один выход.

Пример: Дано число m (1 £ m £ 7). Вывести на экран название дня недели, который соответствует этому номеру.

блок-схема

программа

//switch;

#include <conio.h>

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL,"Rus");

int n;

metka : cout<<"\nВведите номер дня недели: ";

cin>>n;

switch (n)

{

case 1 : cout<<"\nПонедельник";break;

case 2 : cout<<"\nВторник";break;

case 3 : cout<<"\nСреда";break;

case 4 : cout<<"\nЧетверг";break;

case 5 : cout<<"\nПятница";break;

case 6 : cout<<"\nСуббота";break;

case 7 : cout<<"\nВоскресенье";break;

default : cout<<"\nНеверный ввод\n"; goto metka;

}

_getch();

return 0;

}

Результат работы программы:

Введите номер дня недели: 12

Неверный ввод

Введите номер дня недели: 2

Вторник

Лабораторная работа № 3 Программирование алгоритмов разветвляющейся структуры

ЦЕЛЬ РАБОТЫ: приобретение навыков программирования вычислительных разветвляющихся процессов с использованием условного, составного операторов, оператора выбора (множественного ветвления) и оператора безусловного перехода.

Выполнение работы: в соответствии с вариантом составить и реализовать программы.

Задание I

Решить задачу с использованием конструкции ветвления:

  1. Расстояние от дома до школы S км. До начала урока осталось t минут. Ученик идет со скоростью v. Определить, придёт ли он раньше звонка, после звонка или во время.

  2. Даны действительные числа x, y и z. Найти min(x, y, z).

  3. Вычислить значение функции

  1. Возвести в квадрат большее из трёх заданных чисел.

  2. Определить, есть ли среди трёх заданных чисел чётные.

  3. Вывести на экран три заданных числа в порядке убывания.

  4. Определить, принадлежит ли точка А(а1, а2) кольцу, определяемому окружностями: x2 + y2 = 1 и x2 + y2 = 16.

  5. Вычислить значение функции

  6. Две окружности заданы координатами центра и радиусами. Сколько точек пересечения имеют эти окружности?

  7. В два сосуда, один из которых имеет форму шара радиуса R1, а другой – форму куба с ребром А, доверху налита вода. Сравните количество воды в сосудах.

  8. Вычислить значение функции:

  9. Даны три произвольных действительных числа. Можно ли построить треугольник с такими длинами сторон?

  10. Какая из точек A(a1, a2) или B(b1, b2) находится дальше от начала координат?

  11. Две прямые заданы уравнениями: a1x + b1y+ c1 =0 и a2x + b2y+ c2 =0. Определить, пересекаются ли они.

  12. Попадёт ли тока А(a1, a2) в окружность заданного радиуса с центром в начале координат?

  13. Вычислить значение функции где a = 2.8, b = - 0.3, c = 4.

  14. В заборе выпилена дыра прямоугольной формы с известными размерами. Определить, пройдёт ли в эту дыру мяч заданного радиуса.

  15. Две окружности заданы координатами центра и радиусами. Определить, пересекаются ли они, касаются друг друга или не имеют общих точек.

  16. В григорианском календаре каждый год, номер которого делится на 4, является високосным, за исключением тех, которые делятся на 100 и не делятся на 400 нацело. Определить число дней в году по номеру года. Т.о. 1900 г. - не високосный, 2000 г. – високосный.

  17. Определить, есть ли среди четырёх заданных чисел кратные пяти.

  18. Вычислить значение функции , где а = -0.5, b = 2.

  19. Из трех действительных чисел a, b и c выбрать те, модули которых больше 4.

  20. Даны три произвольных действительных числа. Можно ли построить треугольник с такими длинами сторон? Если да, то вывести на экран является ли заданный треугольник равносторонним, равнобедренным или разносторонним.

  21. Даны действительные числа x и y. Найти U = max2 (x2y, xy2).

  22. Решить квадратное уравнение.