русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задачи и упражнения

1. Вывести “Yes” или “No” в зависимости от того, точка с координатами x, y принадлежит области, ограниченной линиями y= –x, x=0 и y= –1, или нет (записать оператор if и операторы вывода).

if (y<= – x && x>= 0 && y>–1) cout<<"Yes";

else cout<<"No";

2. Нарисовать область плоскости, в которой и только в которой следующее логическое выражение истинно:

а) x>y && x<2 && y>-1; б) x>y || x<2 && y>-1;

в) x>y && x<2 || y>-1; г) x>y || x<2 || y>-1;

д) x>y && (x<2 || y>-1).

3. Даны два вещественных числа x, y. Вывести “Yes” или “No” в зависимости от того, точка плоскости с координатами (x, y) принадлежит кольцу, ограниченному окружностями, радиусы которых r и R (r<R) c общим центром в точке с координатами (a, b), или не принадлежит этому же кольцу.

4. Даны два вещественных числа x, y. Если точка плоскости с координатами (x, y) принадлежит треугольнику с вершинами в точках (–2, 0), (0, 2), (2, 0), то обе координаты увеличить в 10 раз, в противном случае уменьшить их на 10.

§ 4. Оператор выбора switch

Аналогичный оператор есть и в других языках (case в Pascal). Он используется, если уровень вложенности if достаточно большой (2.3). Тогда соответствующая часть программы при использовании switch становится более наглядной и легче для понимания и отладки.

Например, пусть дана z — оценка по “старой” 5-балльной системе. В зависимости от неё вывести текст “не явился”, если z=1, “не удовл.”, если z=2, “удовл.”, если z=3, и т. д.

// Первый вариант с помощью if:

if (z==1) cout<<”не явился”;

else if (z==2) cout <<”не удовл.”;

else if (z==3) cout <<”удовл.”;

else if (z==4) cout <<”хор.”;

else if (z==5) cout <<”отл.”;

else cout<<”Ошибка”;

// Второй вариант с оператором switch предпочтительнее:

switch (z)

{ case 1: cout<<”не явился”; break;

case 2: cout <<”не удовл.”; break;

case 3: cout <<”удовл.”; break;

case 4: cout <<”хор.”; break;

case 5: cout <<”отл.”; break;

default: cout<<”Ошибка ”;

} // Конец оператора switch.

// Здесь оператор, следующий после switch.

Работу оператора рассмотрим на нескольких тестах. Пусть z=1, тогда выводится “не явился” и с помощью break передаётся управление на оператор, следующий после switch, а остальные ветви пропускаются. Если, например, z=3, то первые две ветви пропускаются, выполняется cout <<”удовл.”; и break передаёт управление на оператор, следующий после switch. Если z не является оценкой, например, числом 30, то первые пять ветвей пропускаются, выводится “Ошибка” и выполняется оператор, следующий после switch.

Оператор switch имеет следующий общий вид:

switch (выражение)

{ case константное_выражение1:

последовательность_операторов1; break;

case константное_выражение2:

последовательность_операторов2; break;

case константное_выражениеN:

последовательность_операторовN; break;

default:

последовательность_операторов;

}

Выражение, записываемое после ключевого слова switch обязательно в скобках, может быть целого, символьного или перечисляемого типа. Чаще всего это просто целочисленная или символьная переменная. Нельзя использовать выражение вещественного или строкового типа. В константном выражении можно использовать константы, определённые одним из указанных в 3.1 способов, и нельзя записывать выражения, в том числе переменные или вызовы функций. Чаще всего здесь используется обычная целая или символьная константа.

Работает оператор следующим образом. Значения константных выражений вычисляются во время компиляции. Во время выполнения вычисляется значение выражения и сравнивается с первой константой на строгое равенство. Если не совпало, оно же сравнивается со второй константой и т. д. Если значение выражения совпало с одной из констант, выполняется соответствующая последовательность операторов, и break передаёт управление на оператор, следующий после switch. Если break отсутствует, то выполняется следующая последовательность операторов, хотя значение выражения и не совпадает со следующей константой. Обязательность break для пропуска остальных ветвей — основная особенность этого оператора по сравнению с другими языками. В случае отсутствия совпадений выполняются операторы, записанные после default, который необязателен. Если его нет, то в случае отсутствия соответствий ничего не выполняется.

В отличие от языка Pascal нельзя указать диапазон констант. Разрешается для нескольких констант указать одну и ту же последовательность операторов. Например, анализ оценок по 10-балльной системе будет выглядеть так:

switch (z){ case 1: case 2: case 3: cout <<”не удовл.” ; break;

case 4:

case 5: cout <<”удовл.”; break;

case 6: case 7: case 8: cout <<”хор.”; break;

case 9: case 10: cout <<”отл.” ; break;

default: cout<<”Ошибка ”;

}

При этом ключевые слова case желательно записывать в “столбик”, как это сделано во второй ветви.

Допускается вложенность операторов switch, когда в любой последовательности операторов используется другой оператор switch. Константы или значения константных выражений внутреннего и внешнего операторов switch могут совпадать. На одном уровне switch они должны быть различными. Допустима следующая часть программы:

char flag1, flag2; ……

switch (flag1)

{ case ‘A’: switch (flag2)

{ case ‘A’: cout<<”AA”; break;

case ‘B’: cout<<”AB”; }

break;

case ‘X’:

}

Просмотров: 593


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.