Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 семестр / лр 5

.docx
Скачиваний:
29
Добавлен:
16.12.2020
Размер:
76.78 Кб
Скачать

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информационных систем и технологий

ОТЧЕТ

по лабораторной работе №5

Разветвляющиеся программы

Выполнила: студентка ФИТ группы № 9 Каленик Алина

Проверила: Пустовалова Наталья Николаевна

Минск 2020

Задание №1

3

Даны действительные числа x, y, z. Вычислить max(x + y + z, xyz) * 3.

#include <iostream>

using namespace std;

void main()

{

setlocale(LC_CTYPE, "Russian");

double x, y, z, max, t;

cout << "Введите число x"<< endl;

cin >> x;

cout << "Введите число y"<< endl;

cin >> y;

cout << "Введите число z"<< endl;

cin >> z;

max = x + y + z;

if (max < x * y * z)

max = x * y * z;

else

max = x + y + z;

t = max * 3;

cout << "t = " << t << endl;

}

Задание №2

3

Даны три числа a, b и c. Найти среднее геометрическое этих чисел, если все они отличны от нуля, и среднее арифметическое в противном случае.

Через оператор if:

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_CTYPE, "Russian");

double a, b, c, m, n, t;

cout << "Введите число a" << endl;

cin >> a;

cout << "Введите число b" << endl;

cin >> b;

cout << "Введите число c" << endl;

cin >> c;

t = a * b * c;

if (t == 0)

{

m = (a + b + c) / 3;

cout << "Среднее арифметическое введенных чисел = " << m << endl;

}

else

{

n = sqrt(a * b * c);

cout << "Среднее геометрическое введенных чисел = " << n << endl;

}

}

Через тернарный оператор:

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_CTYPE, "Russian");

double a, b, c, m, n, t;

cout << "Введите число a" << endl;

cin >> a;

cout << "Введите число b" << endl;

cin >> b;

cout << "Введите число c" << endl;

cin >> c;

t = a * b * c;

(t == 0) ? (m = (a + b + c) / 3, cout << "Среднее арифметическое введенных чисел = " << m << endl) : (n = sqrt(a * b * c), cout << "Среднее геометрическое введенных чисел = " << n << endl);

}

Задание №3

Написать программу, реализующую диалог на любую тему с использованием оператора switch.

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "ru");

int a;

cout << "Не могли бы вы посоветовать книгу? (1-Да, с удовольствием; 2-Нет, извините) " << endl;

cin >> a;

switch (a)

{

case 1:

{

cout << "Какой жанр вы предпочитаете? (1-Романы; 2-Детективы; 3-Не знаю )" << endl;

cin >> a;

switch (a)

{

case 1:

cout << "Тогда вам подойдет произведение М.Миттчел 'Унесенные ветром'" << endl;

break;

case 2:

cout << "Тогда вам подойдет произведение Б.Акунина 'Азазель'" << endl;

break;

case 3:

cout << "Тогда вам подойдет произведение Р.Бредбери '451 градус по Фаренгейту'" << endl;

break;

}

break;

}

case 2:

cout << "Жаль" << endl;

break;

default:

cout << "Некорректный вариант" << endl;

break;

}

}

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

2. На шахматном поле в клетке (k, l) расположен конь. Угрожает ли он фигуре стоящей в клетке (m, n)? Предусмотреть обработку ошибочного ввода пользователя (выдавать диагностическое сообщение).

#include <iostream>

using namespace std;

void main()

{

setlocale(LC_ALL, "rus");

char k, m; int n;

cout << "Программа расчитывает угрожает ли конь, стоящий в клетке (k,1) другой фигуре стоящей в клетке (m,n)\n";

cout << "Задайте буквенную координату для коня ( от 'A' до 'H') \n";

cin >> k;

cout << "Задайте буквенную координату для фигуры (от 'A' до 'H') \n";

cin >> m;

cout << "Задайте числовую координату для фигуры (от 1 до 8)\n";

cin >> n;

if (((k >= 'A') && (k <= 'H')) && ((m >= 'A') && (m <= 'H')) && ((n >= 1) && (n <= 8)))

{

if ((n >= 4)&&(n !=1))

cout << "Вашей фигуре ничего не угражает";

else

{

if (((m - k <= 2) || (k - m <= 2)) && ((m - k != 0) || (k - m != 0)))

{

if ((((m - k == 1) || (k - m == 1)) && (n == 3)) || (((m - k == 2) || (k - m == 2)) && (n == 2)))

cout << "Ваша фигура будет сбита";

else

cout << "Вашей фигуре ничего не угражает";

}

else

cout << "Вашей фигуре ничего не угражает";

}

}

else cout << "Вы ввели неккорктные данные, попробуте еще раз =)\n";

}

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

2. На шахматном поле в клетке (k, l) расположен слон. Угрожает ли он фигуре стоящей в клетке (m, n)? Предусмотреть обработку ошибочного ввода пользователя (выдавать диагностическое сообщение).

#include <iostream>

using namespace std;

void main()

{

setlocale(LC_ALL, "rus");

char k, m; int n;

cout << "Программа расчитывает угрожает ли слон, стоящий в клетке (k,1) другой фигуре стоящей в клетке (m,n)\n";

cout << "Задайте буквенную координату для слона ( от 'A' до 'H') \n";

cin >> k;

cout << "Задайте буквенную координату для фигуры (от 'A' до 'H') \n";

cin >> m;

cout << "Задайте числовую координату для фигуры (от 1 до 8)\n";

cin >> n;

if (((k >= 'A') && (k <= 'H')) && ((m >= 'A') && (m <= 'H')) && ((n >= 1) && (n <= 8)))

{

if ((k = m) && (n == 1))

cout << "Вашей фигуре ничего не угражает";

else

{

if ((k - m == n) || (m - k == n))

cout << "Вашей фигуре ничего не угражает";

else

cout << "Ваша фигура будет сбита";

}

}

else cout << "Вы ввели неккорктные данные, попробуте еще раз =)\n";

}

Соседние файлы в папке 1 семестр