КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Конструкции выбора
К конструкциям выбора в С++ относят условную конструкцию if и переключатель switch. Синтаксис условной конструкции: if (выражение) оператор1; if (выражение) оператор1; else оператор2; Выражение должно быть скалярным и иметь арифметический тип или тип указателя. В операторе if оператор1 выполняется в том случае, если выражение ненулевое, иначе выполняется оператор2 или не выполняются никакие действия, если оператор2 не задан, то есть отсутствует else. В частности, если a целое, то if (a) эквивалентно if (a!= 0). Часто используются в условиях логические операции &&, ||,!. Операции && и || не будут вычислять второй аргумент, если это не нужно. Например, if (p && r) … вначале проверяет, является ли p не нулем, и только, если это так, то проверяет r. Некоторые простые операторы if могут быть с удобством заменены выражениями арифметического if. Например, if (a <= b) max = b; else max = a; лучше выражается так: max = (a<=b)? b: a; В качестве операторов нельзя использовать описания, но можно использовать блоки, в которых, в частности, могут быть включены описания. Пример 1. Напишите программу, которая вычисляет и выводит на экран значение y = #include <iostream.h> void main() { double x,y; cout<< "\nEnter x: "; cin >> x; if ((x>0)||(x<-1)) y=1/x; else y=x; cout << "\ny="<<y; } Операторы в конструкции if в свою очередь могут быть условными, что позволяет организовывать цепочку проверок условий любой вложенности. Синтаксис языка предполагает, что при вложенных условиях операторов каждое else соответствует ближайшему к нему предшествующему if. Пример 2. Используя вложенные уловные операторы, найти максимум из трех целых чисел. #include <iostream.h> void main() { int x,y,z, max; cout << "Enter x,y,z: "; cin >>x>>y>>z; if (x<y) if (y<z) max=z; else max=y; else if (x<z) max=z; else max=x; cout <<"Max= "<< max; } В тексте соответствие if и else показано с помощью отступов. Переключатель является наиболее удобным средством для организации мультиветвления. Синтаксис переключателя: switch (перключающее_выражение) {case константное_выражение1: оператор1; case константное_выражение2: оператор2; ... case константное_выражение n: оператор n; default:оператор; } Управляющая конструкция switch передает управление к тому из помеченных с помощью case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Переключающее_выражение должно быть целочисленным или его значение должно приводится к целочисленному. В одном переключателе все константные_выражения должны иметь различные значения, но быть одного типа. Любой из операторов может быть помечен одной или несколькими метками вида case константное_выражение:, например, может использовать конструкция вида case константное_выражение1: case константное_выражение2: оператор; Если значение переключающего_выражения не совпадает ни с одним из константных_выражений, то выполняется переход к оператору, отмеченному меткой default, которая может и отсутствовать (при этом не выполняются никакие действия). Если не предусмотрены переходы и выходы из переключателя, то в нем последовательно выполняются все операторы, начиная с той метки, на которую передано управление. Для выхода из переключателя обычно используют оператор break. Пример 3. Напишите программу, запрашивающую ввод с клавиатуры любой десятичной цифры и выводящую на экран названия нечетных десятичных цифр, не меньше заданной. Если была введена не цифра, то выдается сообщение об ошибке. #include <iostream.h> void main() { char i; cout<< "Enter number: "; cin>>i; cout<<'\n'; switch (i) { case '0': case '1': cout<<"one, "; case '2': case '3': cout <<"three, "; case '4': case '5': cout <<"five, "; case '6': case '7': cout <<"seven, "; case '8': case '9': cout <<"nine, "; break;//производим выход // из переключателя default: cout <<"It's not number"; } } Если, например, на клавиатуре будет введена цифра 4, то в результате выполнения программы на экран выведется: five, seven, nine.
Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12 заданий 1,2,3,4. Задание 1. Обработка введенного символа 1. Считать символ и определить, является ли он цифрой. 2. Считать символ и определить, является ли он латинской буквой. 3. Считать символ и определить, является ли он русской буквой. 4. Считать символ и определить, является ли он прописной буквой русского или латинского алфавита. 5. Считать символ и определить, является ли он строчной буквой русского или латинского алфавита. 6. Считать символ и определить, является ли он гласной буквой русского алфавита. 7. Считать символ и определить, является ли он гласной буквой латинского алфавита. 8. Считать символ и определить, является его ASCII-код четным. 9. Считать два символа и выдавать на экран сообщение, код какого из них больше. 10. Считать два символа строчных латинских букв и определить, расположены ли они по алфавиту. 11. Считать два символа цифр и определить какая из них больше. 12. Считать скобку и определить, открывающая она или закрывающая. Возможны скобки (), {}, [], <>. Задание 2. Вычисление значения функции 1. 3. .
Задание 3. Применение разветвляющихся алгоритмов при решении простейших задач 1. Даны числа 2. Значение переменных a, b, c поменять местами так, чтобы оказалось 3. По номеру некоторого года определить номер его столетия (учесть, что, к примеру, началом 20-го столетия был 1901, а не 1900 год). 4. Даны числа 5. По трем введенным вещественным числам выяснить, можно ли построить треугольник с такими длинами сторон, и, если можно, то какой: равносторонний, равнобедренный, прямоугольный или общего вида. 6. Даны числа 7. Введите свой месяц и день рождения. Определите, является ли ваш день рождения очень счастливым, просто счастливым или обычным. День считается очень счастливым, если остатки от деления на 7 сумм цифр месяца и дня совпадают, просто счастливым, если хотя бы один из этих остаток равен 0, и обычным в противном случае. 8. Определить, имеют ли поля шахматной доски (n 1, m 1) и (n 2, m 2) одинаковый цвет. (n 1, m 1, n 2, m 2 – натуральные числа от 1 до 8). 9. Определить, угрожает ли слон, расположенный на поле (n 1, m 1) шахматной доски, фигуре, расположенной на поле (n 2, m 2). (n 1, m 1, n 2, m 2 – натуральные числа от 1 до 8). 10. Определить, угрожает ли ферзь, расположенный на поле (n 1, m 1) шахматной доски, фигуре, расположенной на поле (n 2, m 2). (n 1, m 1, n 2, m 2 – натуральные числа от 1 до 8). 11. Определить, угрожает ли конь, расположенный на поле (n 1, m 1) шахматной доски, фигуре, расположенной на поле (n 2, m 2). (n 1, m 1, n 2, m 2 – натуральные числа от 1 до 8). 12. Даны три вещественных числа a, b, c. Вычислить сколько вещественных корней имеет квадратное уравнение Задание 4. Mультиветвление 1. Напишите программу, запрашивающую с клавиатуры два вещественных числа и один из знаков операций +, -,*,/ и выводящую на экран результат соответствующего арифметического действия над этими числами. 2. Напишите программу, выдающую на экран название оценки в зависимости от количества набранных баллов: 5 – «отлично», 4 – «хорошо», 3 – «удовлетворительно», 1,2 – «неудовлетворительно». 3. Напишите программу, запрашивающую с клавиатуры два вещественных числа и один из знаков операций <(меньше), >(больше), =(равно),!(не равно) и выводящую на экран результат соответствующей операции сравнения над этими числами. 4. Введите число и месяц рождения. Определить, под каким знаком зодиака рожден человек в этот день. (Считается, что каждый знак зодиака начинает оказывать свое влияние с 22 числа каждого месяца). 5. Напишите программу, выводящую на экран основное положительное качество человека по дате его рождения. Если сумма цифр числа и месяца рождения человека равна 3, то основным его качеством будет ум, 4 - красота, 5 - доброта, 6 - энергичность, 7 - скромность, в противным случае трудно выделить основное качество. 6. Определить, каким является для человечества введенный год. Год считается счастливым, если остаток от деления суммы его двух последних цифр на 7 равен 0, удачным - 1, неудачным - 2, несчастным - 3, обычным - в остальных случаях. 7. Дано двузначное число. Подсчитать сумму цифр этого числа и напечатать название числа этой суммы, если оно меньше 10. Например, при вводе числа 34 должно быть выдано сообщение: “сумма цифр числа равна семи”, при вводе числа 91 – “сумма цифр числа больше девяти”. 8. По введенному с клавиатуры символу (!?:;,. –) напечатать название знака препинания или выдать сообщение, что введен не знак препинания. 9. Написать программу, выводящую на экран строку “switch” при вводе числа 1, строку “конструкции switch” - при вводе числа 2, “пример конструкции switch” – при вводе числа 3, “просто пример конструкции switch” – при вводе числа 4 и “Это просто пример конструкции switch” – при вводе числа 5. В противном случае вывести на экран сообщение “Введен неверный код строки”. 10. Напишите программу, запрашивающую с клавиатуры номер месяца и выводящую на экран его название. Если введено число больше 12, то выдается соответствующие сообщение. 11. Напишите программу, запрашивающую ввод с клавиатуры любой десятичной цифры и выводящую на экран название ближайшей нечетной десятичной цифры, не меньше заданной. Если была введена не цифра, то выдается сообщение об ошибке. 12. Введите с клавиатуры 7 слов. Затем по введенной цифре определите, существует ли слово с таким порядковым номером, и, если существует, выведите его на экран. Например, если набраны слова “один два три четыре пять шесть семь”, то при нажатии клавиши 5 на экран должно быть выведено слово “пять”.
Дата добавления: 2014-12-27; Просмотров: 587; Нарушение авторских прав?; Мы поможем в написании вашей работы! |