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

Лабораторная работа №2

Разветвляющиеся алгоритмы. Условные операторы. Оператор множественного


выбора

Задания для самостоятельной работы

1) Дано действительное число x. Вычислить f(x), если

2
f(x)=¿ {0 при x≤0,¿ {x −x при 0<x≤1, ¿ ¿¿¿
//1.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double x, pi = 3.14, f;
cout << "Введите x:" << endl;
cin >> x ;
if (x <= 0)
{
f = 0;
}
else
if (0 < x && x <= 1)
{
f = x * x - x;
}
else
{
f = x * x - sin(pi * x * x);
}
cout << "f(x)=" << f << endl;
system("pause");
return 0;
}
2) Даны действительные числа a, b, c. Найти корни квадратного уравнения
2
ax +bx+c=0, в противном случае ответом должно служить сообщение, что корней нет.

//2.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double a, b, c, d, x1, x2;
cout << "a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "c=";
cin >> c;
d = (b * b) - (4 * a * c);
if (d > 0)
{
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
cout << "Корни уравнения: " << x1 << " "<<"и"<<" " << x2<< endl;
}
else
if (d == 0)
{
cout << "Корень уравнения :" << -b / (2 * a) << endl;
}
else
cout << "Корней нет!" << endl;
2
system("pause");
return 0;
}

3) Даны действительные числа x, y, z. Выяснить, существует ли треугольник с


длинами сторон x, y, z.

//3.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double a, b, c;
A:
cout << "Введите стороны треугольника" << endl;
cout << "a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "c=";
cin >> c;
if ((a <= 0) || (b <= 0))
{
cout << "Введите стороны с положительным значением!" << endl;
goto A;
}

3
else

if ((a > b + c) || (b > a + c) || (c > a + b))


{
cout << "Такого треугольника не существует!"<<endl;
}
else
{
cout << "Такой треугольник существует"<<endl;
}
system("pause");
return 0;
}

4) Даны три действительных числа. Возвести в квадрат те из них, значения


которых неотрицательны.

//4.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double a, b, c;
cout << "Введите три действительных чила:" << endl;
cin >> a;
cin >> b;
cin >> c;
if (a >= 0)
{
a *= a;
cout << "a^2=" << a << endl;
}
else
{
4
cout << " а - отрицательное число" << endl;
}
if (b >= 0)
{
b *= b;
cout << "b^2=" << b << endl;
}
else
{
cout << " b - отрицательное число" << endl;
}
if (c >= 0)
{
c*= c;
cout << "c^2=" << c << endl;
}
else
{
cout << " c - отрицательное число" << endl;
}
system("pause");
return 0;
}

5
5) Даны действительные числа. Выбрать из них, те которые принадлежат
интервалу [1,3].

//5.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double a, b, c;
cout << "Введите действительные числа:" << endl;

6
cin >> a;
cin >> b;
cin >> c;
if ((a >= 1) && (a <= 3))
{
cout << "Число" << a << "принадлежит интервалу [1;3]" << endl;
}
if ((b >= 1) && (b <= 3))
{
cout << "Число" << b << "принадлежит интервалу [1;3]" << endl;
}
if ((c >= 1) && (c <= 3))
{
cout << "Число" << c << "принадлежит интервалу [1;3]" << endl;
}
else
{
cout << "Нет чисел, принадлежащих интервалу [1;3]";
}

system("pause");
return 0;

6) Даны действительные числа x и y (x≠y). Меньшее из них заменить


полусуммой чисел, а большее – удвоенным произведением.

//6.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double x,y,p,s;
A:
cout << "Введите x и y:" << endl;
cin >> x;
cin >> y;
if (x == y)
{
cout << "Введите x не равное y!" << endl;
goto A;
}
else
s = (x + y) / 2;
p = 2 * y * x;
if (x < y)
{
x = s;
y = p;
}
else
{
y = s;
x = p;
}
cout << "x=" << x << endl;
cout << "y=" << y << endl;
system("pause");
return 0;

7
}

7) Если сумма 3 действительных чисел x,y,z <1, то наименьшее из этих чисел


заменить полусуммой двух других, в противном случае заменить меньшее из x и y
полусуммой двух оставшихся значений.

// 7.
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
cout << "Введите x,y,z: " << endl;
double x, y, z;
8
cin >> x;
cin >> y;
cin>> z;
if (x + y + z < 1)
{
double min = x;
if (min > y) min = y;
if (min > z) min = z;
if (min == x) x = (y + z) / 2;
if (min == y) y = (x + z) / 2;
if (min == z) z = (x + y) / 2;
}
else
if (x > y)
{
y = (x + z) / 2;
}
else
{
x = (y + z) / 2;
}
cout << "x="<<x << " " << "y="<<y << " " << "z="<<z ;
system("pause");
return 0;
}

8) Программа запрашивает у пользователя «Сколько Вам лет?» . Вы вводите


положительное число до 100. Программа должна выдать полный ответ « Вам Х (или
лет или года или год).

//8.
#include <iostream>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
int age;
cout << "Введите возраст: ";
cin >> age;
if (age > 4 && age < 21)
cout<< "Вам"<<" "<< age <<" "<< "лет" << endl;
else if (age % 10 == 1)
cout <<"Вам"<<" "<< age <<" "<< "год" << endl;
else if (age % 10 > 1 && age % 10 < 5)
cout <<"Вам"<< " "<<age <<" "<< "года" << endl;
else
cout <<"Вам"<<" "<< age <<" "<< "лет" << endl;
system("pause");
return 0;
}

9) Даны действительные числа a, b, c.Удвоить эти числа, если a≥b≥c, и


заменить их абсолютными значениями, если это не так.

// 9.
#include <iostream>
#include <cmath>
using namespace std;

9
int main()
{
setlocale(LC_ALL, "rus");
cout << "Введите a,b,c: " << endl;
double a, b, c;
cin >> a >>b >> c;
if (a >= b && a >= c && b >= c)
{
cout << "a=" << a * 2 << " " << "b=" << b * 2 << " " << "c=" << c * 2 << endl;
}
else
cout << "a=" << abs(a) << " " << "b=" << abs(b) << " " << "c=" << abs(c) << endl;
system("pause");
return 0;

10) Дано натуральное число n (n≤9999). Является ли это число палиндромом


(перевертышем) с учетом четырех цифр, как, например, числа 2222, 6116, 0440 и т. д.

//10.
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
int n, a, a1, b, b1, c, d;
A:
cout << "Введите четырёхзначное целое число: " << endl;
cin >> n;
if ((n <= 1000) || (n >= 9999))
10
{
cout << " Число не четырехзначное! ";
goto A;
}
else
{
a = n / 1000;
b = (n % 1000) / 100;
c = (n % 100) / 10;
d = n % 10;
if (a == d && b == c)
cout << "Это палиндром!" << endl;
else
cout << "Это не палиндром!"<<endl;
system("pause");
return 0;
}
}

11) Услуги телефонной сети оплачиваются по следующему правилу: за


разговоры до А минут в месяц — В руб., а разговоры сверх установленной нормы

11
оплачиваются из расчета С руб. за минуту. Написать программу, вычисляющую плату
за пользование телефоном для введенного времени разговоров за месяц.

//11.
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double n, a, b, c;
cout << "Введите норму минут в месяц:";
cin >> a;
cout << "Введите цену за эту норму:";
cin >> b;
cout << "Введите оплату за каждую превышенную минуту:";
cin >> c;
A:
cout << "Сколько минут за этот месяц?";
cin >> n;
if (n < 0)
{
cout << "Введите положительное значение!";
goto A;
}
else
if (n <= a)
cout << "Оплатите" <<" "<< b <<" "<<"рублей"<< endl;
else cout <<"Оплатите" << " " << (n - a) * c + b << " " << "рублей" << endl;
system ("pause");
return 0;
}

12
12) Грузовой автомобиль выехал из одного города в другой со скоростью v1
км/ч. Через t ч в этом же направлении выехал легковой автомобиль со скоростью v2
км/ч. Составить программу, определяющую, догонит ли легковой автомобиль
грузовой через t1 ч после своего выезда.
//13.
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double v1, v2, t1, t2, s1, s2;
cout << "Скорость грузовика (км/ч) :";
cin >> v1;
cout << "Через сколько часов выехала машина? ";
cin >> t1;
cout << "Скорость машины (км/ч):";
cin >> v2;
cout << "Прошло часов с выезда машины:";
cin >> t2;
s1 = (t1 + t2) * v1;
s2 = t2 * v2;
if (s1 == s2)
cout << "Машина догнала грузовик!" << endl;
else cout << "Машина не догнала грузовик!" << endl;
system("pause");
return 0;
}

13
13) Перераспределить значения переменных х и у так, чтобы в х оказалось
большее из этих значений, а в у — меньшее.
//14.
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double x, y, z = 0;
cout << "Введите x:";
cin >> x;
cout << "Введите y:";
cin >> y;
if (y > x)
{
z = x;
x = y;
y = z
14
;
}
else
{
x = x;
y = y;
}
cout << "x=" << x << endl;
cout << "y=" << y << endl;
system("pause");
return 0;
}

14) Составить программу, определяющую результат гадания на ромашке —


«любит—не любит», взяв за исходное данное количество лепестков n.
//16.
#include<iostream>

15
#include<cmath>
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
int n;
cout << "Гадание на роомашке"<<endl;
cout << "Введите количество лепестков:";
cin >> n;
if (n%2==0)
{
cout << "Не любит"<< endl;
}
else
cout << "Любит" << endl;
system("pause");
return 0;
}

15) Написать программу — модель анализа пожарного датчика в помещении,


которая выводит сообщение «Пожароопасная ситуация», если температура в комнате
превысила 60° С.
//17.
#include<iostream>
#include<cmath>

16
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
double t;
cout << "Какая температура в комнате?";
cin >> t;
if (t>60)
{
cout << "Пожароопасная ситуация!"<< endl;
}
else
cout << "Все нормально" << endl;
system("pause");
return 0;
}

17