Практическое занятие № 2

ТЕМА: Создание программ с операторами ветвления на С++

ЦЕЛЬ РАБОТЫ: получить практические навыки по применению условных операторов и записи логических выражений

 

Ход работы

1. Выдать на экран меню пользователя со следующими пунктами:

 

1 - расчет функции

2 - нахождение максимального из трех чисел

3 - решение задачи

 

2. При выборе определенного пункта меню пользователь должен ввести с клавиатуры нужные исходные данные и получить ответ. Если выбран недопустимый режим работы программы, то выдать сообщение об ошибке

 

3. В качестве функции для первого пункта меню предлагается следующая:

 

 

На экран с вывести значение x, с и y с точностью до 3 знаков после запятой.  Проверить работоспособность программы при всех возможных значениях а (при а=10 x=11.389, c=13.71, y=-0,466; при a=5 x=0.006, c=12.506, y=2.

 

4. Нахождение минимального из трех  чисел выполнить с помощью оператора IF...ELSE и оператора ? : Выдать на экран оба результат для сравнения

 

5. В качестве задачи для третьего пункта меню предлагается следующая. К финалу конкурса лучшего по профессии «Специалист электронного офиса» были допущены двое: Иванов и Петров,. Соревнования проходили в три тура. Иванов в первом туре набрал M1 баллов, во втором – N1, в третьем – P1. Петров – соответственно M2, N2, P2. Составьте программу, определяющую фамилию и общую сумму баллов победителя.

 

Выполнение работы

//подключаем заголовочные файлы

#include <iostream.h>

#include <math.h>

 

int main()

{

//подключаем отображение русских символов
system("chcp 1251>nul");
//описываем переменную для запоминания выбора из меню

int k;

 

//выдаем меню на экран и ждем выбора от пользователя

cout<<"1 - расчет функции\n";

cout<<"2 - нахождение минимального из трех чисел\n";

cout<<"3 - решение задачи\n";

cout<<"Сделайте выбор: ";

cin>>k;

 

//начинаем анализировать выбор пользователя

switch (k)

{

//если выбран первый пункт меню

case 1: {

      //описываем переменные

      float a,x,c,y;

      //вводим исходные данные

      cout<<"Введите значение переменной а: ";

      cin>>a;

 

 

      //считаем функцию Х

      if (a>=8)

            x=4+exp(2);

      else

            x=pow(cos(a),4);

 

 

      //считаем функцию С

      c=pow(5*sin(4*x),1/3.0)+12;

 

 

      //считаем функцию Y

      if (c>0)

 

            y=4*cos(x)-2;

      else

            if (c==0)

                  y=sqrt(x)+4;

            else

                  y=pow(x,3)/2;

 

      //выводим результат

      cout.precision(3);

      cout<<"При a="<<a<<" x="<<x<<", c="<<c<<", y="<<y<<"\n";

      //выходим из оператора switch

      break;

      }

 

 

//если выбран второй пункт меню

case 2: {

      //описываем переменные

      float a,b,c,d;

      //вводим исходные данные

      cout<<"Введите три числа: ";

      cin>>a>>b>>c;

 

      //находим максимальное из 3 чисел

      //с помощью оператора IF...ELSE

      if (a>b && a>c)

            d=a;

      else

            if (b>a && b>c)

                  d=b;

            else

                  d=c;

      //выводим результат

      cout<<"Максимальное число равно (1 способ): "<<d<<"\n";

 

      //находим максимальное из 3 чисел

      //с помощью оператора ?:

      d=(a>b && a>c ? a : (b>a && b>c ? b : c));

      //выводи результат

      cout<<"Максимальное число равно (2 способ): "<<d<<"\n";

      //выходим из оператора switch

      break;

      }

//если выбран третий пункт меню

case 3:

      {

      //описываем переменные

      float m1,n1,p1,m2,n2,p2;

      //вводим исходные данные

      cout<<"Введите баллы, набранные Ивановым в трех турах: ";

      cin>>m1>>n1>>p1;

      cout<<"Введите баллы, набранные Петровым в трех турах: ";

      cin>>m2>>n2>>p2;

 

      //определяем победителя и выводим результат

      if (m1+n1+p1 > m2+n2+p2)

            cout<<"Победил Иванов, набрав "<<m1+n1+p1<<" баллов\n";

      else

            if (m1+n1+p1 < m2+n2+p2)

                        cout<<"Победил Петров, набрав "<<m2+n2+p2<<" баллов\n";

            else

 

            cout<<"В соревнованиях зафиксирована ничья\n";

      //выходим из оператора switch

      break;

      }

//если выбран недопустимый пункт меню

default :

      //выдаем сообщение об ошибке

      cout<<"Выбран недопустимый режим работы программы\n";

}

//делаем паузу для просмотра результата

system("pause");

//завершаем работу главной программы
return 0;

}

 

Решить самостоятельно:

 

1.      Составить алгоритм вычисления стоимости покупки с учетом скидки: при покупке товара на сумму больше 500 руб. предоставляется скидка 10 %. Входные данные: a (цена единицы товара), b (количество единиц товара). Выходные данные: s (сумма покупки).

 

2.      Составить алгоритм решения задачи для определения большей скорости: одно значение указано в километрах в час, а другое в метрах в секунду. (1 м/с = 3,6 км/ч).

 

3.      Составить алгоритм вывода названия дня недели по его порядковому номеру (1 – понедельник, 2 – вторник, 3 – среда, 4 – четверг, 5 – пятница, 6 – суббота, 7 – воскресенье).

 

4.      Составить алгоритм решения задачи для вычисления значения функции

 

5.      Составить алгоритм для нахождения произведения двух наименьших чисел из трех заданных.

Указание: задачу можно свести к нахождению максимального из трех чисел x, y, z. Если x – максимальное, найдите произведение чисел y, z. Если y – максимальное, найдите произведение чисел x, z. И т.д.

 

6.      Составить алгоритм расчета премии: если оклад сотрудника > 5000 процент премии составляет 10 %; если оклад < 5000, то процент премии равен 12 %.

 

7.      Составить алгоритм вычисления Z = min (A – B, max (C3, A + B + С)).