Similar presentations:
Алгоритмы и структуры данных. Урок 9. Операторы передачи управления. Вложенные циклы
1.
2.
План занятия1
Операторы передачи управления
2
Вложенные циклы
3.
Операторы передачи управленияДля экстренного выхода из цикла применяются два оператора:
break - досрочно завершает выполнение цикла (или оператора switch), передавая управление на
следующий за ним оператор;
continue - выполняет переход к следующей итерации цикла, пропуская все оставшиеся действия
до конца текущего шага. Если это цикл for, то перед проверкой условия выполняются
модификации.
Оператор break выполняет выход только из одного цикла,
в котором он непосредственно находится!
break
вход
Тело цикла
выход
continue
4.
Операторы передачи управленияПример. Найти сумму целых чисел, вводимых с клавиатуры. Ввод числа 0 означает, что чисел
больше нет и нужно вывести результат.
5.
Операторы передачи управленияПример. Пользователь вводит число. Необходимо распечатать все делители этого числа и найти
произведение четных делителей. Для решения этой задачи можно перебрать все числа, меньшие
заданного пользователем (поскольку делитель всегда меньше самого числа). Каждое из этих
чисел нужно проверить: если оно является делителем, то распечатать. А если нет, то его просто
пропустить. Кроме того, если делитель является четным, то его нужно учесть в произведении
(помножить на него переменную P, в которой мы будем накапливать этот результат).
6.
Операторы передачи управленияОператор goto позволяет передать управление в любую точку программы. Для этого в нужном
месте программы перед оператором ставим метку (идентификатор, после которого идет
двоеточие). А в goto указываем эту метку
Здесь newstep - это метка, т.е. обычный идентификатор, который подчиняется всем правилам
создания имен в языке C++.
С помощью goto управление не должно передаваться назад по тексту программы. Использовать
этот оператор нужно только в крайних случаях, когда другие средства языка программу не
упрощают, а запутывают.
Оператор return служит для выхода из функции (передачи управления назад той функции,
которая вызвала текущую). Поскольку мы пока используем только одну функцию (main),
оператор return означает прекращение программ.
7.
Операторы передачи управленияПример. Реализуем игру виде теста. Следующий вопрос должен быть задан пользователю, если
предыдущий ответ был правильным. Если же ответ был неверным, то нужно вывести
финальное сообщение и закончить программу. Если не использовать оператор return, то код
будет содержать столько вложенных if, сколько у нас вопросов теста.
8.
Операторы передачи управления9.
Вложенные циклыЦиклы можно «вкладывать» друг в друга. Внутренний цикл в тексте программы сдвигается
вправо на 3-4 позиции. Понимать и отлаживать вложенные циклы уже значительно сложнее,
чем вложенные операторы ветвления.
Пример. Вывести на экран треугольник из звездочек. Высота треугольника запрашивается у
пользователя.
10.
Практика1 Пользователь вводит неотрицательное целое число. Если это число простое, вывести YES, в
противном случае вывести NO. Число называется простым, если оно делится только на себя и
на единицу. Единица не является простым числом.
2 Пользователь вводит целые неотрицательные числа. Признак конца ввода - число 0.
Определите, какое количество элементов этой последовательности равны ее наибольшему
элементу. Если пользователь сразу ввел завершающий 0, то ответ тоже должен быть 0.
11.
Практика3 Напишите программу, которая выводит на консоль рамочку из звездочек. Ширину и высоту
рамки пользователь вводит через пробел. В случае, если ширина или высота равны 1, рамка
вырождается в линию из звездочек.
4 Пользователь вводит высоту треугольника. Вывести на консоль треугольник следующего вида.
5 Пользователь вводит ширину треугольника. Вывести на экран треугольник вида.
12.
Практика6 Напишите программу, которая выводит на экран простые числа в диапазоне от 2 до n. При
этом пользователь вводит n - правую границу диапазона. Если n является простым числом, то в
выводе оно должно присутствовать ( т.е. до n включительно).
7 Вывести на экран таблицу умножения от 1 до k. Значение k (k<10) вводит пользователь.
13.
Домашнее заданиеВывести на экран прямоугольник из звездочек. Ширина и высота прямоугольника
запрашивается у пользователя.