
- •Г.В. Ваныкина, т.О. Сундукова
- •Часть 1. Введение в программирование Тула - 2009
- •Содержание
- •Предисловие
- •Лабораторная работа №1
- •Лабораторная работа №2 Типы данных. Стандартные потоки ввода-вывода данных
- •Лабораторная работа №3 Константы. Стандартные потоки ввода-вывода вещественных данных
- •Лабораторная работа №4 Форматированный ввод-вывод данных
- •Лабораторная работа №5 Присваивание. Арифметические операции
- •Лабораторная работа №6 Логические и поразрядные операции. Операции сравнения и определения размера
- •Лабораторная работа №7 Математические функции. Выражения
- •Математические функции – файл math.H
- •Лабораторная работа №8 Линейные программы. Преобразование типов
- •Лабораторная работа №9 Операторы выбора: оператор условия if
- •Лабораторная работа №10 Решение задач с использование оператора условия if
- •Лабораторная работа №11 Операторы перехода. Операторы выбора: оператор-переключатель switch
- •Лабораторная работа №12 Решение задач с использованием оператора-переключателя switch
- •Лабораторная работа №13 Операторы цикла: оператор цикла с параметром for
- •Лабораторная работа №14 Операторы цикла: оператор цикла с предусловие while
- •Лабораторная работа №15 Операторы цикла: оператор цикла с постусловием do … while
- •Лабораторная работа №16 Решение задач с использованием операторов цикла
- •Лабораторная работа №17 Функции пользователя
- •Лабораторная работа №18 Решение задач методом процедурной абстракции
- •Лабораторная работа №19 Рекурсивные функции
- •Индивидуальные задания Требования к оформлению индивидуальных заданий
- •Задание 1. Линейные программы
- •Задание 2. Задачи на составление логических выражений
- •Задание 3. Условный оператор
- •Задание 4. Цикл с параметром
- •Задание 5. Циклы с условиями
- •Задание 6. Числовые функции
- •Задание 7. Функции
- •Задание 8. Рекурсия
- •Литература
- •Часть 1. Введение в программирования
Лабораторная работа №11 Операторы перехода. Операторы выбора: оператор-переключатель switch
Цель работы: изучить операторы перехода и научиться работать с оператором-переключателем switch в языке C++.
Теоретические сведения
Операторы перехода
Оператор break – оператор, который прерывает выполнения операторов управления вычислительным процессом. Синтаксис:
break;
Оператор перехода break обеспечивает прекращение выполнения самого внутреннего из объединяющих его операторов switch, for, while, do while. После выполнения оператора перехода break управление передается оператору, следующему за прерванным.
Оператор continue – оператор, который позволяет продолжить выполнение цикла, пропустив операторы, оставшиеся в теле цикла. Синтаксис:
continue;
Оператор continue используется только внутри операторов цикла for, while или do while.
Оператор return – оператор, завершающий выполнение функции, в которой он задан, и возвращающий управление в точку вызывающей функции, непосредственно следующую за вызовом. Оператор return в функции main передает управление операционной системе. Синтаксис:
return [выражение];
Значение выражения, если оно задано, возвращается в вызывающую функцию в качестве значения вызываемой функции. Если выражение опущено, то возвращаемое значение не определено. Выражение может быть заключено в круглые скобки, хотя их наличие не обязательно.
Оператор goto (оператор безусловного перехода) – оператор, который передает управление на оператор, помеченный меткой. Помеченный оператор должен находиться в той же функции, что и оператор goto, а метка должна быть уникальной, т.е. нельзя помечать одной меткой более одного оператора. Синтаксис:
goto метка;
Использование оператора безусловного перехода goto в практике программирования на языке С++ настоятельно не рекомендуется, так как он затрудняет понимание программ и возможность их модификаций.
Оператор-переключатель switch
Данный оператор предназначен для организации выбора из множества различных вариантов. Формат оператора-переключателя следующий:
switch (выражение) { case метка1: список_операторов1; case метка2: список_операторов2; . . . . . . . . . . . . . . . . case меткаN: список_операторовN; [default: список_операторов;] } |
|
тело_оператора |
выражение – это любое выражение, допустимое в языке С++ и имеющее целочисленное значение. Значение данного выражения является ключевым для выбора из нескольких вариантов.
тело_оператора – набор помеченных операторов, заключенных в фигурные скобки. В теле оператора используются предложения с метками после ключевых слов case и/или default.
метка1, метка2,...меткаN – константное выражение (обычно целочисленное или символьное), вычисляемое во время трансляции, поэтому оно не может содержать переменные или вызовы функций. Все метки должны быть уникальны. Возможно использование нескольких меток перед списком операторов.
список_операторов – это оператор или составной оператор (который может быть пустым). Обратите внимание, что в операторе-переключателе не требуется заключать составной оператор в фигурные скобки.
default – оператор, на который передается управление, при отсутствии совпадения значения выражения с какой-то меткой. Данный оператор в конструкции употребляется только один раз.
Схема выполнения оператора switch следующая:
вычисляется выражение в круглых скобках;
вычисленные значения последовательно сравниваются с метками (константными выражениями), следующими за ключевыми словами case;
если одна из меток совпадает со значением выражения, то управление передается на список операторов, помеченный соответствующим ключевым словом case;
если ни одна из меток не равна выражению, то управление передается на список операторов, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после оператора выбора switch оператор.
Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора-переключателя switch путем передачи управления оператору, следующему за switch. В случае отсутствия оператора break сравнение по меткам будет продолжено.
Пример 1. Программа простейшего калькулятора.
#include <stdio.h>
void main () {
float a,b,x;
char znak;
printf ("\nВведите простейшее арифметическое
выражение\n");
scanf ("%f%c%f",&a,&znak,&b);
switch (znak)
{ /*Начало области действия оператора switch*/
case '+': x=a+b;
printf("=%.3f",x);
break; /*сложение*/
case '-': x=a-b;
printf("=%.3f",x);
break; /*вычитание*/
case '*': x=a*b;
printf("=%.3f",x);
break; /*умножение*/
case '/': x=a/b;
printf("=%.3f",x);
break; /*деление*/
default:
printf("\n Неправильно написано арифметическое
выражение или указанная операция не
выполняется\n");
}; /*Конец области действия оператора switch*/
}
Задания
Составить программу вычисления площади геометрических фигур.
Составьте программу для решения задачи. Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» – 1, масти «трефы» – 2, масти «бубны» – 3, масти «червы» – 4. По заданному номеру масти m (1 m 4) определить название соответствующей масти.
Составьте программу для решения задачи. Определить остаток от деления целой части значения выражения
на 7 и в зависимости от величины выдать сообщение об одном из дней недели (воскресенью соответствует номер «0», понедельнику – «1» и т.д.).
Домашние задания
Наберите код программы из Примера 1. Сохраните код программы. Выполните компиляцию и запуск программы. Введите свои данные в качестве входных.
Составить программу вычисления площади поверхности геометрических тел. Добавьте комментарии, поясняющие, площадь поверхности какого тела вычисляется.
Составьте программу для решения задачи. Описать список времен года: лето, осень, зима, весна. По введенному значению времени года перечислить все месяца этого сезона.
Элементы окружности пронумерованы следующим образом: 1 – радиус (R), 2 – диаметр (D), 3 – длина (L), 4 – площадь круга (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке).