Основной конструкцией ветвления в языке С++ является оператор if (условный оператор), имеющий следующий синтаксис:
Else
Вначале вычисляется логическое выражение, указанное в круглых скобках, если оно окажется истинными (true), то выполняется , а затем управление передается оператору, следующему за конструкцией if (при этом не выполняется). Если же выражение окажется ложным (false), то выполняется , а затем управление передается оператору, следующему за конструкцией if.
Конструкция if изображается следующим образом с помощью блок-схем:
Пример программы вычисляющей максимум двух целых чисел, введенных с клавиатуры:
using namespace std;
//Вводим значения переменных a и b с клавиатуры
//Если a больше b, то
max = a; //переменной max присвоить значение переменной a
else //иначе (a меньше или равно b)
max = b; //переменной max присвоить значение переменной b
//Выводим найденный максимум чисел a и b
Часть оператора if, относящуюся к ветке «иначе» (еlse), можно опускать, если она в программе не нужна. В этом случае оператор if будет выглядеть так:
География пельменей — Италия | Уральские пельмени 2023
Пример программы, вычисляющей максимум двух целых чисел, введенных с клавиатуры, без использования части «иначе» (else):
using namespace std;
//Вводим значения переменных a и b с клавиатуры
//В начале полагаем, что максимум равен значению переменной b
//Если a больше max, то
max = a; //переменной max присвоить значение a
//Выводим найденный максимум чисел a и b
Если при истинности или ложности логического выражения нужно выполнить не один оператор, а несколько, то в этом случае применяется составной оператор. Составной оператор – последовательность операторов, заключенных в фигурные скобки <>.
Так и исходной конструкции if могут быть составными, т.е. состоять из нескольких простых операторов, объединенных фигурными скобками <>:
Else
Пример фрагмента программы, использующего составной оператор:
Для формирования условия, указываемого в круглых скобках оператора if, используются операции отношения и логические операции.
Операции отношения: , = (больше или равно), == (равно), != (не равно).
a + 2 >= c * 3 – a + 2 больше или равно c * 3;
x == y * 2 – x равно y * 2;
z != a + b – z не равно a + b.
Логические операции: ! (отрицание), (логическое «И», конъюнкция), || (логическое «ИЛИ», дизъюнкция).
Пусть a, b – некоторые логические выражения, тогда дадим формальные определения данных операций:
!a – истинно ó a – ложно;
a || b – истинно ó хотя бы одно из выражений a или b является истинным.
Приоритетность выполнения логических операций: ! – имеет наибольший приоритет, — средний и || — наименьший.
Логические операции используются для формирования сложных составных условий, используемых в операторе ветвления if.
x < 1.0 || x >= 2.0 – определяет, принадлежит ли x объединению (-¥, 1.0)È[2.0, +¥)
Сборник Топ 20 Номеров за 2022 – Уральские Пельмени
Пример фрагмента программы, определяющей принадлежит ли точка с координатами (x, y) прямоугольнику ABCD, имеющему следующие координаты вершин: A(0, 0), B(0, b), C(a, b), D(a, 0):
Также операторы if могут быть вложены друг в друга.
Пример фрагмента программы, определяющей принадлежность точки прямоугольнику с помощью вложенных операторов if:
Дополнительной конструкцией ветвления в языке С++ является оператор выбора switch. Он имеет следующий синтаксис:
Оператор выбора выполняется следующим образом:
1. Вычисляется значение выражения в круглых скобках.
2. Последовательно сравнивается значение выражения с константами , …
3. При совпадении значения с одной из констант осуществляет переход на первый оператор из набора операторов, соответствующих этой константе.
4. Если в списке операторов встретился break, то осуществляется переход на следующий оператор за конструкций switch, иначе – выполняются операторы из нижележащих наборов операторов (относящихся к другим константам) до тех пор, пока не встретится break или не закончится switch.
5. Если значение выражения не совпало ни с одной из констант, то выполняются операторы секции default (по умолчанию). Если данная секция отсутствует, то управление передается первому оператору, следующему за конструкцией switch.
Пример программы, которая в зависимости от значения переменной n использует различные формулы для вычисления функции f:
using namespace std;
//Читаем значение переменных n, x, y
case 1: //Если n равно 1
f = x + y; //вычисляем f по первой формуле
break; //выход из конструкции switch
//(переход к оператору печати значения f)
case 2: //Если n равно 2
f = 2.0 * x * y; //вычисляем f по второй формуле
break; //выход из конструкции switch
case 3: //Если n равно 3
f = x — 3.0 * y + 1.0; //вычисляем f по третьей формуле
break; //выход из конструкции switch
case 4: //Если n равно 4
f = y; //вычисляем f по четвертой формуле
break; //выход из конструкции switch
//Выводим на экран вычисленное значение f
Обратите внимание! В конце каждого набора операторов следует ставить оператор break, иначе начнут выполняться операторы, соответствующие следующей константе. Например, если исключить break из набора операторов, соответствующих case 1, то после выполнение оператора “f = x + y;” начнет выполняться оператор “f = 2.0 * x * y;”.
Если двум константам, идущим последовательно в конструкции switch, соответствует один и тот же набор операторов, то их можно объединить, сделав пустым набор операторов у первой константы.
Пример программы, вычисляющей по номеру месяца время года, ему соответствующее.
using namespace std;
int month; //Переменная для хранения номера месяца
//Вводим номер месяца
//Используем конструкцию выбора для определения времени
//Если значение month равно 1, 2 или 12
//Если значение month равно 3, 4 или 5
//Если значение month равно 6, 7 или 8
//Если значение month равно 9, 10 или 11
//Если другое значение
В данной программе константам 12, 1, 2 соответствует один и тот же набор из двух операторов: вывод на экран строки “Winter” и break. Поэтому просто друг за другом записываются три данные константы, после чего указывается общий набор операторов:
Аналогичным образом обрабатываются номера месяцев, относящихся к весне, лету и осени.
Задание 1. Решение квадратного уравнения.
Написать программу, решающую квадратное уравнение для введенных вещественных коэффициентов , и .
Наберите и протестируйте работу данной программы:
#include //Подключаем для фунции sqrt
using namespace std;
//Вводим значения коэффициентов уравнения
D = b * b — 4.0 * a * c;
//Если дискриминант неотрицателен
//Вычисляем корни уравнения
x1 = (-b + sqrt(D)) / (2.0 * a);
x2 = (-b — sqrt(D)) / (2.0 * a);
//Если дискриминант положителен (вложенный условный оператор)
//Выводим значения обоих корней
else //иначе (дискриминант равен нулю)
//Выводим значения совпадающих корней
else //иначе (дискриминант отрицателен)
//Сообщаем, что нет решений
Задание 2. Использование одиночного условного оператора.
Пример.Написать программу, определяющую принадлежит ли точка с координатами (x, y) кругу с центром (a, b) и радиусом R.
Решение
using namespace std;
//a, b — координаты центра круга
//R — радиус круга
//x, y — координаты точки
double a, b, R, x, y;
//Вводим параметры круга
//Вводим координаты точки
//Если точка удовлетворяет неравенству круга, то
if ((x — a) * (x — a) + (y — b) * (y — b)
//выводим, что она принадлежит ему
//выводим, что она не принадлежит ему
Решить по вариантам:
Вариант 1.Определить, является ли введенное число положительным или отрицательным.
Вариант 2.Определить, является ли введенное целое число четным или нечетным.
Вариант 3.Определить, делится ли введенное целое число на 5 или не делится.
Вариант 4.Даны два натуральных числа m и n. Определить, делится ли m на n без остатка.
Вариант 5.Дано двузначное число, определить, делится ли на 7 его сумма цифр.
Вариант 6.Определить, является ли введенное натуральное число двузначным.
Вариант 7.Определить, является ли введенное натуральное число трехзначным.
Вариант 8.Даны стороны прямоугольника и радиус круга. Определить, какая из фигур имеет большую площадь.
Вариант 9.Даны сторона квадрата и радиус окружности. Определить, какая из фигур имеет большую длину контура.
Вариант 10.Дана сторона куба и радиус шара. Определить, какая из фигур имеет больший объем.
Вариант 11.Даны две величины объема: одна в сантиметрах кубических, другая в метрах кубических. Определить, какая из них больше.
Вариант 12.Даны массы и объемы двух тел. Определить, какое из них имеет большую плотность.
Вариант 13.Даны длины сторон треугольника и радиус круга. Определить, какая из фигур имеет большую площадь.
Задание 3. Составные логические выражения в условном операторе.
См. пример в начале о точке и прямоугольнике.
Используя логические операции в условии оператора if, решить по вариантам:
Вариант 1.Дано натуральное число. Определить, является ли оно четным четырехзначным числом.
Вариант 2.Дано трехзначное натуральное число. Определить, является ли оно нечетным числом, сумма цифр которого делится на 13.
Вариант 3.Программа вводит год в виде целого числа. Определить, является ли он високосным. Год считается високосным, если он делится на 4, исключая года, делящиеся на 100, но не делящиеся на 400. Например, 2010 – високосный год (делится на 4, но не на 100); 1800, 1900, 2100 – не високосные (делятся на 100, но не на 400); 1600, 2000, 2400 – високосные (делятся на 400).
Вариант 4.Дано трехзначное натуральное число. Определить, равны ли все его цифры.
Вариант 5.Дано трехзначное натуральное число. Определить, есть ли у него одинаковые цифры.
Вариант 6.Дано четырехзначное натуральное число. Определить, есть ли в его записи хотя бы одна четная цифра.
Вариант 7.Дано четырехзначное натуральное число. Определить, является ли оно палиндромом, т.е. числом, запись которого будет одинакова при чтении слева направо и справа налево. Например, 1221, 2332 – палиндромы.
Вариант 8.Написать программу, определяющую принадлежит ли точка с координатами (x, y, z) прямоугольному параллелепипеду, заданному координатами двух его противоположных вершин, при условии, что его грани параллельны координатным плоскостям.
Вариант 9.Даны три положительных вещественных числа. Определить, существует ли треугольник с заданными сторонами.
Вариант 10.Треугольник задан длинами своих сторон. Определить, является ли он равносторонним.
Вариант 11.Треугольник задан длинами своих сторон. Определить, является ли он разносторонним.
Вариант 12.Написать программу, определяющую принадлежит ли точка с координатами (x,y) отрезку, концы которого заданы координатами (x1,y1) и (x2,y2).
Вариант 13.Треугольник задан длинами своих сторон. Определить, является ли он равнобедренным.
Задание 4. Вложенные условные операторы.
См. пример в начале о точке и прямоугольнике.
Используя вложенные условные операторы, решить по вариантам:
Вариант 1.Дано натуральное число. Определить делится ли оно одновременно на 10 и 15.
Вариант 2.Найти наибольшее из трех данных вещественных чисел.
Вариант 3.Найти наименьшее из трех данных вещественных чисел.
Вариант 4.Треугольник задан длинами своих сторон. Определить, является ли он прямоугольным.
Вариант 5.Дано трехзначное натуральное число. Определить его наименьшую цифру.
Вариант 6.Определить произведение двух наименьших из трех данных чисел.
Вариант 7.Определить сумму двух наибольших из трех данных чисел.
Вариант 8.Определить среднее из трех данных чисел a, b и с. Среднее число больше или равно min и меньше или равно max.
Вариант 9.Программа вводит целое число из отрезка [0; 9999]. Результат его работы вывод фразы, характеризующей данное число: «однозначное число», «двузначное число», «трехзначное число», «четырехзначное число» (выводить фразы на экран можно на английском или транслитом).
Вариант 10.Программа вводит целое число из отрезка [0; 999]. Результат его работы вывод фразы, характеризующей данное число: «четное однозначное число», «нечетное однозначное число» «четное двузначное число», «нечетное двузначное число», «четное трехзначное число», «нечетное трехзначное число» (выводить фразы на экран можно на английском или транслитом).
Вариант 11.Треугольник задан длинами своих сторон. Определить, является ли он тупоугольным.
Вариант 12.Треугольник задан длинами своих сторон. Определить, является ли он остроугольным.
Вариант 13.Программа вводит возраст человека в виде целого числа N. Результат ее работы – вывод правильной (с точки зрения русского языка) фразы «Вам N лет/год/года» (выводить фразу на экран можно транслитом).
Задание 5. Условный оператор и работа с символами.
Пример.Проверить, является ли введенный символ строчной латинской буквой.
Решение
using namespace std;
//Определяем переменную для хранения вводимого символа
//Просим пользователя ввести символ
//Читаем символ с клавиатуры
//Если код символа ch больше или равен кода символа ‘a’
// и меньше или равен кода символа ‘z’, то
//(дело в том, что в кодировке ASCII алфавитные символы
//имеют последовательные коды, коды цифр также последовательны)
//выводим на экран, что ch — строчная латинская буква
//выводим, что ch не является строчной латинской буквой
Решить по вариантам:
Вариант 1.Проверить, является ли введенный символ цифрой.
Вариант 2.Проверить, является ли введенный символ заглавной латинской буквой.
Вариант 3.Проверить, является ли введенный символ знаком препинания (точкой, запятой, восклицательным знаком).
Вариант 4.Проверить, является ли введенный символ знаком препинания (точкой, точкой с запятой, вопросительным знаком).
Вариант 5.Проверить, является ли введенным символ разделителем (пробелом, левой или правой фигурной скобкой).
Вариант 6.Проверить, является ли введенный символ знаком арифметической операции (+, -, *, /).
Вариант 8.Проверить, является ли введенный символ специальным знаком (`, ~, ,
Вариант 10.Проверить, является ли введенный символ четной цифрой.
Вариант 11.Проверить, является ли введенный символ нечетной цифрой.
Вариант 12.Проверить, является ли введенный символ строчной или заглавной буквой латинского алфавита.
Вариант 13.Проверить, является ли введенный символ заглавной буквой латинского алфавита или цифрой.
Задание 6. Работа с оператором выбора switch.
См. примеры в начале.
Решить по вариантам:
Вариант 1.Написать программу, запрашивающую номер дня недели и выдающую в ответ его название.
Вариант 2.Написать программу, запрашивающую цифру от 0 до 9 и выдающую английское (немецкое) слово, соответствующее ее названию.
Вариант 3.Написать программу, запрашивающую номер месяца и выдающую в ответ количество дней в нем (год невисокосный).
Вариант 4.Написать программу, запрашивающую номер месяца и выдающую в ответ его название.
Вариант 5.Написать программу, которая по номеру дня недели выдает количество занятий в этот день в соответствии с Вашим расписанием (учитываем, например, только верхнюю неделю).
Вариант 6.Написать программу, запрашивающую цифру от 0 до 9 и выдающую английское (немецкое) слово, соответствующее ее названию.
Вариант 7.Написать программу, запрашивающую номер месяца и выдающую в ответ его название.
Вариант 8.Написать программу, запрашивающую номер дня недели и выдающую в ответ его название.
Вариант 9.Написать программу, запрашивающую номер месяца и выдающую в ответ количество дней в нем (год невисокосный).
Вариант 10.По году в номере группы определить, на каком курсе учится студент.
Вариант 11.По номеру класса определить в начальной школе, среднем звене или в старших классах обучается ученик.
Вариант 12.Написать программу, определяющую по номеру месяца номер квартала, к которому он относится.
Вариант 13.Написать программу-калькулятора, которая вводит два вещественных числа a и b, а также символ операции c (+, -, /, или *). Программа должна выполнять соответствующие операции вычисления над веденными числами и выдавать результат.
Задание 7. Дополнительные задачи (по желанию):
- Написать программу, определяющую принадлежит ли тока с координатами (x, y) треугольнику, заданному координатами его вершин.
- Написать программу, определяющую результат пересечения двух прямоугольников, стороны которых параллельны координатным осям.
- Написать программу, вычисляющую дату, следующую за данной. Дата задается тремя числами d, m, y, обозначающими соответственно день, месяц и год.
Источник: stydopedia.ru
Напишите программу, которая вводит номер месяца и выводит название времени года на английском языке. При вводе неверного номера месяца должно быть выведено слово ‘NO’.
Входная строка содержит единственное число – номер месяца (возможно, неверный).
Нужно вывести название времени года (на английском языке), соответствующее введённому номеру месяца (‘winter’ – зима, ‘spring’ – весна, ‘summer’ – лето, ‘autumn’ – осень). Если введён неверный номер месяца, программы должна вывести слово ‘NO’.
- 24 February 2021
- Ответ оставил: Hikolgij
Var A:integer;
Begin
Read(A);
A:= A mod 12;
if (A>=0)and(A<3) then Write(Зима);
if (A>2)and(A<6) then Write(Весна);
if (A>5)and(A<9) then Write(Лето);
if (A>8)and(A<=11) then Write(Осень);
End.
Нравится —> 0
- НЕ НАШЛИ ОТВЕТ?
Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
На сегодняшний день (04.07.2023) наш сайт содержит 16353 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос.
Нажимая на кнопку «Ответить на вопрос», я даю согласие на обработку персональных данных
Ответить на вопрос
Последние опубликованные вопросы
Источник: edubirdie.pro
Напишите программу, которая вводит номер месяца и выводит название времени года. Оператор выбора использовать не разрешается. При вводе неверного номера месяца должно быть выведено сообщение об ошибке.
begin var m := Arr(‘Зима’, ‘Зима’, ‘Весна’, ‘Весна’, ‘Весна’, ‘Лето’, ‘Лето’, ‘Лето’, ‘Осень’, ‘Осень’, ‘Осень’, ‘Зима’); var k := ReadInteger(‘Введите номер месяца:’) — 1; if k.InRange(0, 11) then Println(m[k]) else Println(‘Недопустимый номер месяца’)end.
Введите номер месяца: 11
Осень
Оцени ответ
Не нашёл ответ?
Если тебя не устраивает ответ или его нет, то попробуй воспользоваться поиском на сайте и найти похожие ответы по предмету Информатика.
Источник: uchiru.net