Вы находитесь на странице: 1из 18

Лабораторная работа №3.

Операторы ветвления и выбора

1 Цель и порядок работы

Цель работы – изучить операторы, используемые для организации ветвления в


программе. Познакомится с логическими выражениями и операциями.
Порядок выполнения работы:
 ознакомиться с описанием лабораторной работы;
 получить задание у преподавателя, согласно своему варианту;
 написать программу и отладить ее на ЭВМ.

2 Краткая теория

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


Операторы ветвления управляют потоком выполнения программы. Это условный
оператор if...else и переключатель switch.
Условные операторы позволяют выбрать один из вариантов выполнения действий в
зависимости от каких-либо условий. Условие – это логическое выражение, т.е. выражение,
результатом которого является логическое значение истина или ложь. Выражение может
иметь логический, числовой тип или тип указателя. Если оно не равно 0, то условие
считается истинным. Если равно 0, то условие считается ложным.

Оператор ветвления
Оператор if выбирает один из двух вариантов последовательности вычислений.
Синтаксис условного оператора:

if (выражение)
оператор_1;
else
оператор_2;

+ выражение

оператор 1 оператор 2

Блок-схема оператора ветвления


Рисунок 3.1 – Блок-схема
алгоритма
Если выражение не равно нулю ветвления
(или не есть пустой указатель), то условие
считается истинным и выполняется оператор_1. В противном случае выполняется
оператор_2. В качестве операторов нельзя использовать описания и определения.
Если в случае истинности условия необходимо выполнить несколько операторов, их
можно заключить в фигурные скобки (т.е. использовать составные операторы и блоки):
1
if (x > 0)
{
x = -x;
f(x*2);
}
else
{
int i = 2;
x *= i;
f(x);
}
Заключение нескольких операторов в блок необходимо, где нужно выполнить
несколько операторов вместо одного.
Условный оператор можно расширить для проверки нескольких условий:

if (x < 0) cout << "Отрицательная величина";


else if (x > 0) cout << "Положительная величина";
else cout << "Ноль";

Конструкций else if может быть несколько.


Допускается сокращенная форма условного оператора, в которой отсутствует else
и оператор_2.

if (x > 0) x = -x;

Оператор_1 и оператор_2 могут быть условными. Каждое else соответствует


ближайшему if.

Оператор выбора

Оператор выбора switch используется, когда для каждого из нескольких возможных


значений выражения нужно выполнить определенные действия.
Оператор switch предназначен для организации выбора из множества различных
вариантов. Формат оператора следующий:

switch (переключающее_выражение)
{
case константное_выражение_1: операторы_1;
case константное_выражение_2: операторы_2;
. . .
case константное_выражение_n: операторы_n;
default:
операторы;
}

Значение выражения, следующее за ключевым словом switch в круглых скобках,


должно быть целочисленым. Значение этого выражения является ключевым для выбора из
нескольких вариантов. Тело оператора switch состоит из нескольких операторов,
помеченных ключевым словом case с последующим константным выражением. Так как
константное выражение вычисляется во время трансляции, оно не может содержать
переменные или вызовы функций. Обычно в качестве константного выражения
используются целые или символьные константы.

2
Все константные выражения в операторе switch должны быть уникальны. Кроме
операторов, помеченных ключевым словом case, может быть, но обязательно один,
фрагмент, помеченный ключевым словом default.
Список операторов может быть пустым, либо содержать один или более операторов.
Причем в операторе switch не требуется заключать последовательность операторов в
фигурные скобки.
Управление передается тому из помеченных с помощью case операторов, для
которых значение константного выражения совпадает со значением переключающего
выражения.
С помощью break осуществляется выход из переключателя. В переключателе могут
находиться описания и определения объектов, т.е. составной оператор, входящий в
переключатель, может быть блоком.

#include "stdafx.h"
#include <iostream>

using namespace std;


void main()
{
int ic;
cout <<"\n Введите любую десятичную цифру:";
cin >> ic;
cout << '\n';
switch (ic)
{
case 0: cout << "ноль"; break;
case 1: cout << "один,"; break;
case 2: cout << "два "; break;
case 3: cout << "три,"; break;
case 4: cout << "четыре"; break;
case 5: cout << "пять,"; break;
case 6: case 7: cout << "шесть или семь,"; break;
case 8: case 9: cout << "восемь или девять."; break;
default: cout << "ОШИБКА!":
}
}

Отношения и логические выражения

Отношение определяется как пара арифметических выражений, соединенных


(разделенных) знаком операции отношения. Знаки операций отношения
!= не равно;
== равно;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно;
Логический тип в языке Си отсутствует, поэтому принято, что отношение имеет
ненулевое значение (обычно 1), если оно истинно, и равно 0, если оно ложно. Таким
образом, значением отношения 6 <= 44 будет 1.
Операции >, >=, <, <= имеют один ранг
Операции сравнения на равенство == и != также имеют одинаковый, но более низкий
ранг

3
Арифметические операции имеют более высокий ранг, чем операции отношений,
поэтому в первом примере для выражения а-b не нужны скобки.
Логических операций в языке Си три: ! — отрицание, т.е. логическое НЕ; && –
конъюнкция, т.е. логическое И; || – дизъюнкция, т.е. логическое ИЛИ.
Они перечислены по убыванию старшинства (ранга). Как правило, логические
операции применяются к отношениям. До выполнения логических операций вычисляются
значения отношений, входящих в логическое выражение.

2.2 Язык программирования Паскаль

Условный оператор IF

Условный оператор IF служит для организации процесса вычислений (изменения


последовательности выполнения операторов) в зависимости от какого-либо логического
условия.
Синтаксис оператора IF:
IF Условие THEN Оператор1 ELSE Оператор2;
или
IF Условие THEN Оператор;

Условие может быть представлено логической константой (FALSE – ложь, TRUE -


истина), переменной логического типа (Boolean) или логическим выражением.
Если условие истинно, то выполняется оператор (простой или составной),
следующий за словом THEN, в противном случае, когда условие ложно, будет выполняться
оператор, следующий за словом ELSE. Альтернативная ветвь ELSE может отсутствовать,
если в ней нет необходимости. В таком “усеченном” варианте, в случае, если условие
оказывается ложным, ничего не происходит и выполняется оператор, следующий за
условным оператором IF.

Пример 1.
Пусть необходимо составить программу, вычисляющую значение функции:

VAR
x, y : real;
BEGIN
Write(‘Введите значение аргумента: ’); ReadLn(x);
IF x>0 THEN y := x
ELSE y := 0;
Write(‘Значение функции y = ’, y)
END.

Условные операторы могут быть вложенными друг в друга:

IF Условие THEN if ПодУсловие then ... else ...


ELSE ...;

Обратите внимание на отсутствие точки с запятой перед словом else.


При вложениях условных операторов самое главное – не запутаться в вариантах
сочетаний условий (отчасти этому может помочь ступенчатая форма записи операторов).
Всегда действует правило: альтернатива ELSE считается принадлежащей ближайшему
условному оператору IF, не имеющему ветви ELSE. Например:

4
IF Условие1 THEN if Условие2 then Оператор_А
ELSE Оператор_Б;

По записи может сложиться впечатление, что Оператор_Б будет выполняться только


при “невыполнении” Условия1. Но на самом деле он будет отнесен к Условию2 и
выполнится только при выполнении Условия1 и невыполнении Условия2! Если необходимо,
чтобы Оператор_Б выполнялся именно при невыполнении Условия1, то необходимо
заключить вложенный (усеченный) оператор IF в операторные скобки begin…end:

IF Условие1 THEN begin


if Условие2 then Оператор_А
end
ELSE Оператор_Б;

Оператор выбора CASE

Оператор выбора необходим в тех случаях, когда в зависимости от значения какой-


либо переменной нужно выполнить те или иные операторы (простые или составные). Если
вариантов всего два, то можно обойтись и оператором IF. Но если их, например, десять, то в
этом случае оптимален оператор выбора CASE.

Синтаксис оператора CASE:

CASE Выражение OF
НаборЗначений1 : Оператор1;
НаборЗначений2 : Оператор2;
НаборЗначений3 : Оператор3;
. . .
НаборЗначенийN : ОператорN
ELSE АльтернативныйОператор
END;

Между служебными словами CASE и OF должно стоять выражение (оно


вычисляется при исполнении оператора CASE) любого порядкового типа. Набор значений –
это конкретные значения выражения, при которых необходимо выполнить соответствующий
оператор, игнорируя остальные варианты. Если в наборе несколько значений, то они
разделяются между собой запятой. Можно указывать диапазоны значений, например, 0..9 –
все значения от нуля до девяти. Наборы значений и диапазоны можно комбинировать.
Между набором значений и соответствующим ему оператором обязательно ставится символ
“:”. Значения в каждом наборе должны быть уникальными, т.е. они могут появиться только в
одном варианте. Пересечение наборов значений для разных вариантов является ошибкой, и
она будет замечена компилятором.

Оператор (Оператор1, Оператор2, …) в конкретном варианте может быть, как


простым, так и составным.

Пример 1.

PROGRAM Example_CASE_1;
VAR A : integer;
BEGIN
Write(‘Введите оценку: ‘); Read(A);
CASE A OF

5
2 : Write(‘неудовлетворительно’);
3 : Write(‘удовлетворительно’);
4 : Write(‘хорошо’);
5 : Write(‘отлично’)
ELSE Write(‘Ошибка!’)
END;
END.

Здесь в зависимости от значения переменной А на экран выводится наименование


оценки. Наличие варианта ELSE обеспечивает вывод сообщения об ошибке в случае, когда
введено число вне интервала 2..5.

Пример 2.

PROGRAM Example_CASE_2;
VAR Balls : integer;
BEGIN
Read(Balls );
CASE Balls OF
0..60 : Write(‘неудовлетворительно’);
61..74 : Write(‘удовлетворительно’);
75..90 : Write(‘хорошо’);
91..100: Write(‘отлично’);
ELSE Write(‘Введено число вне диапазона 0..100!’)
END;
END.

Логические выражения

Условное выражение - совокупность переменных и констант простых типов,


объединённых знаками операций сравнения. Результат вычисления условного выражение -
одно из двух логических значений типа Boolean: True (истина) или False (ложь).
В языке Паскаль определены шесть операций сравнения (все они относятся к
четвертому (низшему) приоритету):

< меньше
> больше
<= меньше или равно
>= больше или равно
= равно
<> не равно
Типы операндов должны быть совместимыми по присваиванию.

Примеры условных выражений (условий):

x<2 ch='Y' a+b<>0 sin(x)>=0.5

Важно: При сравнении вещественных чисел следует помнить, что в следствие


неточности их представления в памяти компьютера (в виду неизбежности округления) стоит
избегать попыток определения строгого равенства двух вещественных значений. Есть шанс,
что равенство окажется ложным, даже если на самом деле это не так. Например, выражение
x = (2.23*x/2.23) формально является истинным, но из-за ошибок округления в вещественном
типе может оказаться ложным.

6
Логическое выражение - это совокупность переменных и констант логического типа,
а также условных выражений, объединенных знаками логических операций. Операндами
логических операций могут выступать другие логические выражения. Результат вычисления
логического выражение, как и в случае условных выражений, - одно из двух логических
значений типа Boolean: True (истина) или False (ложь).

В Паскале предусмотрены четыре логические операции:

Приоритет Операция Название

I-й NOT логическое отрицание


II-й AND логическое умножение
III-й OR логическое сложение
III-й XOR логическое исключающее сложение
Результаты логических операций в зависимости от значения операндов приведены
ниже в виде "таблицы истинности":

A B not A A and B A or B A xor B

False False True False False False

False True True False True True

True False False False True True

True True False True True False

Примеры логических выражений:

(x>=0)and(x<=10) (ch='y')or(ch='Y') (x=5)or(y=1)

(x+1>0)and(x+1<10) or (y>0)and(y<2)

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

Условный оператор IF

После ключевого слова if располагается взятое в круглые скобки условное выражение


(логического типа), следом за которым располагается оператор (блок операторов)
произвольной сложности.

Далее в операторе if … else … после ключевого слова else размещается ещё один
оператор.

В силу того, что в C# отсутствуют предопределённые алгоритмы преобразования


значений к булевскому типу, в условное выражение должно быть выражением типа bool –

7
переменной, константой, либо выражением на основе операций сравнения и логических
операций.

if (…)
{

}
else
{
}

Оператор if часто сам в свою очередь является условным оператором произвольной


сложности.

if (…) if (…)
{

}
else
{

}
else
{

Первый Else всегда относится к ближайшему if.

if (true) { int XXX = 125; }


if (true) { int XXX = 125; } else { int ZZZ = 10; }

Оператор выбора switch

Представляет собой оператор, организующий множественный выбор.

Описание:

switch (выражение)
{
case значение1: оператор1; break;
::::::::::
case значениеN: операторN; break;
default: операторN+1; break;
}

Каждое значение Case в обязательном порядке ЗАВЕРШАЕТСЯ оператором break.

char val;
:::::
switch (val)
{
case ‘A’: Console.WriteLine(" A");break;
case ‘B’: Console.WriteLine(" B");break;

default: Console.WriteLine(" unknown");break;


}

8
3 Контрольные вопросы

1. Опишите оператор выбора case.


2. Опишите условный оператор if.
3. Какое назначение оператора break.
4. Какие операции отношения вы знеаете
5. Каков приоритет логических выражений.

4 Задание

1. Изучите теоретический материал, представленный в лабораторной работе.


2. Ответьте на теоретические вопросы.
3. Напишите программу на языке С++ и Паскаль в соответствии с вариантом
задания из пунктов 5.1 и 5.2. Вариант определяется по номеру студента в общем
списке группы. И одно на выбор задание из пункта 6 на языке C#.
4. Проверьте работоспособность программ.
5. Отладьте и протестируйте программы.
6. Сдайте работу преподавателю. При выставлении баллов за работу учитывается:
правильность написания кода, полнота и правильность ответов учащегося на
вопросы преподавателя.

5 Задания к лабораторной работе

5.1 Оператор if
1) Вычислить и вывести на экран значения функции F.

ax 2  b, при х  0 и b  0

x  a
F  , при х  0 и b  0
 x  c
х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

2) Вычислить и вывести на экран значения функции F.


1
 ах  b, при х  5  0 и с  0

x  a
F  , при х  5  0 и с  0
 x
 10 х
 с  4 , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

3) Вычислить и вывести на экран значения функции F.

9

 ax  с, при с  0 и х  0

x  a
F  , при с  0 и х  0
  c
 bх
 с  а , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

4) Вычислить и вывести на экран значения функции F.


 х
a  10  b , при х  0 и b  0

x  a
F  , при х  0 и b  0
xc
 2
3х  с , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

5) Вычислить и вывести на экран значения функции F.



ax 2  b 2 х, при с  0 и b  0

x  a
F  , при с  0 и b  0
xc
х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

6) Вычислить и вывести на экран значения функции F.



 ax 2  b, при х  5 и с  0

x  a
F  , при х  5 и с  0
 x
 х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

7) Вычислить и вывести на экран значения функции F.



 ax 2 , при с  0 и а  0

a  х
F  , при с  0 и а  0
 cх
 х
1  с , в остальных случаях
где а, b, с — действительные числа.

10
Значения а, b, с, x ввести с клавиатуры.

8) Вычислить и вывести на экран значения функции F.



ax 2  b 2 х, при а  0 и х  0

 a
F  х  , при а  0 и х  0
 xc
 х
1  с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

9) Вычислить и вывести на экран значения функции F.



ax  9 2  b, при х  7 и b  0

 x  cd
F  , при х  5 и b  0
 аx
 х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

10) Вычислить и вывести на экран значения функции F.



ax 2  bх  с, при х  3 и b  0

x  a
F  , при х  3 и b  0
 x  c
х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

11) Вычислить и вывести на экран значения функции F.


 2 b
ax  , при х  1 и с  0
 с
 xa
F  , при х  1,5 и с  0
  x  c 2

 х2
 2 , в остальных случаях
с
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

12) Вычислить и вывести на экран значения функции F.

11

ax 3  b 2  с, при х  0,6 и b  с  0

x  a
F  , при х  0,6 и b  с  0
 x  c
х х
 с  а , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

13) Вычислить и вывести на экран значения функции F.



ax 2  b, при х  1  0 и b  х  0

x  a
F  , при х  1  0 и b  х  0
 x
х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

14) Вычислить и вывести на экран значения функции F.



 ax 2  b, при х  0 и b  0

 x
F   5,5, при х  0 и b  0
x c
 х
  с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

15) Вычислить и вывести на экран значения функции F.



ax  с 2  b, при х  0 и b  0

x  a
F  , при х  0 и b  0
 c
 х
а  с , в остальных случаях
где а, Ь, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

16) Вычислить и вывести на экран значения функции F.



ax 2  сх  b, при х  10  0 и b  0

x  a
F  , при х  10  0 и b  0
xc
 х
 а  с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.
12
17) Вычислить и вывести на экран значения функции F.

ax 3  bх 2 , при х  0 и b  0

x  a
F  , при х  0 и b  0
xc
 х5
 с( х  10) , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

18) Вычислить и вывести на экран значения функции F.



ax  7 2  b, при х  5 и b  0

 x  cd
F  , при х  5 и b  0
 аx
х
 с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

19) Вычислить и вывести на экран значения функции F.


 2x  с
 сх  а , при х  0 и b  0

x  a
F  , при х  0 и b  0
xc
 х с
 с  2 х , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

20) Вычислить и вывести на экран значения функции F.


 3 с2
  ax  , при с  0 и х  0
 b
x  a
F   ln 2 x, при с  0 и х  0
 c
 bх
 с  а  8 , в остальных случаях
x


где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

21) Вычислить и вывести на экран значения функции F.

13
1
 ах  b, при х  5  0 и с  0

x  a
F  , при х  5  0 и с  0
 3x
 10 х
 с  7 , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

22) Вычислить и вывести на экран значения функции F.


 х
a  10  b , при х  0 и b  0

 xa
F  , при х  0 и b  0
 x  4c
 7
5 х  с , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

23) Вычислить и вывести на экран значения функции F.



ax 2  bх, при с  0 и b  0

 4x  a
F  , при с  0 и b  0
 x  c
 х
 с  1 , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

24) Вычислить и вывести на экран значения функции F.



 ax 2  5, при с  0 и а  0

 a  4х
F  , при с  0 и а  0
 cх
 х
1  с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

25) Вычислить и вывести на экран значения функции F.



ax 2  b 3 х, при а  0 и х  0

 5a
F  х  , при а  0 и х  0
 xc
 х
1  с  5 , в остальных случаях

14
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

26) Вычислить и вывести на экран значения функции F.



ax 2  5bх  с, при х  3 и b  0

 xa
F  , при х  3 и b  0
 x  5c
 х
 с  4 , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

27) Вычислить и вывести на экран значения функции F.


 b
ax 2  , при х  1 и с  0
 с4
 xa
F  , при х  1,5 и с  0
 x  c  17 
2

 х2
 , в остальных случаях
 (с  2) 2
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

28) Вычислить и вывести на экран значения функции F.



ax 2  b, при х  1  0 и b  х  0

x  a
F  , при х  1  0 и b  х  0
b  x
4  х
 9  с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

29) Вычислить и вывести на экран значения функции F.



bx 3  ax 2  b, при х  0 и b  0

 x
F   5, при х  0 и b  0
x  c
 х
 5  с , в остальных случаях
где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

30) Вычислить и вывести на экран значения функции F.

15
 2x  b
 сх  а , при х  0 и b  0

x  a
F  , при х  0 и b  0
x 7
4  х с
 с  2  х , в остальных случаях

где а, b, с — действительные числа.
Значения а, b, с, x ввести с клавиатуры.

5.2 Оператор switch (case)

1. Представить заданное целое число от 1 до 10 в римской системе счисления.


2. Реализовать в программе меню выбора арифметических действий. В зависимости
от варианта посчитать значение выражения Y:=X{+|-|*|/}А. Х и А вводятся.
3. Написать программу, которая требует ввода числа месяца и, в зависимости от
введенного значения, сообщает номер декады.
4. Написать программу, где ожидается ввод символа с клавиатуры, после чего
определяется, является ли этот символ буквой, цифрой или специальным символом.
5. Написать программу, которая ждет ввода первой буквы названия месяца. В
зависимости от этого определяет квартал.
6. Написать программу, которая ждет ввода буквы русского алфавита и в
зависимости от этого определяет гласная или согласная. Если согласная, то звонкая или
глухая.
7. Написать программу, которая ждет ввода первой буквы названия месяца. В
зависимости от этого определяет время года.
8. Написать программу, которая требует ввода времени дня и, в зависимости от
введенного значения, желает доброго утра, доброго дня, доброго вечера или спокойной ночи.
9. Написать программу, которая ждет ввода буквы и, в зависимости от введенного
значения, сообщает, является ли буква заглавной или строчной.
10. Написать программу, которая запрашивает ваше имя и рост в сантиметрах, а
затем отображает информацию в виде: высокий, средний, низкий.
11. Написать программу, которая бы по введенному номеру единицы измерения (1
— килограмм, 2 — миллиграмм, 3 — грамм, 4 -тонна, 5 — центнер) и массе М выдавала бы
соответствующее значение массы в килограммах.
12. Написать программу, которая по номеру дня недели (целому числу от 1 до 7)
выдает в качестве результата количество уроков в вашей группе в этот день.
13. Написать программу, позволяющую по последней цифре числа определить
последнюю цифру его квадрата.
14. Составить программу, которая по заданным году и номеру месяца m определяет
количество дней в этом месяце.
15. Для каждой введенной цифры (0 — 9) вывести соответствующее ей название на
английском языке (0 — zero, 1 — one, 2 — two, ...).
16. Составить программу, которая по данному числу (1—12) выводит название
соответствующего ему месяца.
17. Составить программу, позволяющую получить словесное описание отметок (1 —
«плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 —
«отлично»).

16
18. Написать программу, которая по номеру месяца выдает название следующего за
ним месяца (при 1 получаем февраль, 4 — май и т.д.).
19. Написать программу, которая бы по введенному номеру времени года (1 — зима,
2 — весна, 3 — лето, 4 — осень) выдавала соответствующие этому времени года месяцы,
количество дней в каждом из месяцев.
20. В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла
носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы,
обезьяны, курицы, собаки и свиньи. Написать программу, где вводится номер некоторого
года и печатается его название по старояпонскому календарю. (Справка: 1996 г. — год
Крысы — начало очередного цикла.)
21. Написать программу, которая бы по введенному номеру единицы измерения (1
— дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр) и длине отрезка L
выдавала бы соответствующее значение длины отрезка в метрах.
22. Написать программу, которая по вводимому числу от 1 до 5 (году курса) выдает
соответствующее сообщение «Привет, k-курсник». Например, если k=1, «Привет,
первокурсник»; если k=4, «Привет, четверокурсник».
23. Написать программу, которая по введенному числу от 1 до 12 (номеру месяца)
выдает все приходящиеся на этот месяц праздничные дни (например, если введено число 1,
то должно получиться 1 января — Новый год, 7 января — Рождество).
24. Имеется пронумерованный список деталей: 1) шуруп, 2) гайка, 3) винт, 4) гвоздь,
5) болт. Составить программу, которая по номеру детали выводит на экран ее название.
25. Составить программу, позволяющую по последней цифре данного числа
определить последнюю цифру куба этого числа.
26. Пусть элементами круга являются радиус (первый элемент), диаметр (второй
элемент) и длина окружности (третий элемент). Составить программу, которая по номеру
элемента запрашивала бы его соответствующее значение и вычисляла бы площадь круга.
27. Пусть элементами прямоугольного равнобедренного треугольника являются: 1)
катет a; 2) гипотенуза b; 3) высота h, опущенная из вершины прямого угла на гипотенузу; 4)
площадь S. Составить программу, которая по заданному номеру и значению
соответствующего элемента вычисляла бы значение всех остальных элементов треугольника.
28. Дано натуральное число N. Если оно делится на 4, вывести на экран ответ N = 4k
(где k — соответствующее частное); если остаток от деления на 4 равен 1 — N= 4k + 1; если
остаток от деления на 4 равен 2 — N= 4k + 2; если остаток от деления на 4 равен 3-N=4k+3.
Например, 12 - 4 • 3, 22 = 4 • 5 + 2.
29. Пусть элементами равностороннего треугольника являются: 1) сторона а; 2)
площадь S; 3) высота h; 4) радиус вписанной окружности r; 5) радиус описанной окружности
R. Составить программу, которая по заданному номеру и значению соответствующего
элемента вычисляла бы значение всех остальных элементов треугольника.
30. Написать программу, которая бы по введенному номеру единицы измерения (1
— дней, 2 — часов, 3 — минут, 4 -секунд) и времени V выдавала бы соответствующее
значение времени в секундах.

6 Дополнительные задания

6.1 Оператор if
(с разрешения преподавателя)
1. Даны три целых числа, найдите среднее из них. Среднее назовем число, которое
больше наименьшего из данных чисел, но меньше наибольшего.
2. С помощью сокращенной формы оператора условия найти наименьшее из четырех
заданных чисел.
3. Даны три числа. Подсчитать количество чисел равных 0.

17
4. Составить программу вычисляющее произведение двух наибольших чисел из трех
введенных с клавиатуры.
5. Если целое число М делиться нацело на целое число N, то вывести на экран
частное от деления, в противном случае - сообщение «M на N нацело не делится».
6. Найдите количество отрицательных чисел среди четырех целых чисел.
7. Составить программу, которая уменьшает первое число в пять раз, если оно
больше второго по абсолютной величине.
8. Составить программу вычисления выражения max(x+y+z, xyz)+3.
 
9. Составить программу вычисления выражения max x 2  y 3 , y 2  z 3  4 .
10. Составить программу которая из трех введенных с клавиатуры чисел возводит в
квадрат положительные, а отрицательные оставляет без изменения.

(для самостоятельного выбора)


11. Выведите на экран номер четверти, которой принадлежит точка с координатами
(x,y), если x и y равны 0, то выводить сообщение что это точка начала координат, а если x
или y равны нулю, то выводить сообщение какой оси координат принадлежит точка.
12. Составить программу для решения следующего неравенства ax 2  b  0 .
13. Составить программу для решения следующего неравенства ax 2  b  0 .
14. Составить программу для решения следующего неравенства ax 2  bx  c  0 .
 a x  b1  0
15. Составить программу для решения следующей системы неравенств  1 .
a2 x  b2  0
 a x  b1  0
16. Составить программу для решения следующей системы неравенств  1 .
a2 x  b2  0

6.2 Оператор switch

1. Для целого числа k от 1 до 99 напечатать фразу «Мне k лет», учитывая при этом,
что при некоторых значениях k слово «лет» надо заменить на слово «год» или «года».
Например, 11 лет, 22 года, 51 год.
2. Составить программу, которая для любого натурального числа печатает
количество цифр в записи этого числа.
3. Напишите программу, которая читает натуральное число в десятичном
представлении, а на выходе выдает это же число в десятичном представлении и на
естественном языке. Например: 7 - семь, 204 - двести четыре, 52 - пятьдесят два.

18

Оценить