Главная страница
Навигация по странице:

  • «Московский технический университет связи и информатики»

  • «Разработка проекта, решающего задачу вычисления сложного выражения с условием и выбора наименьшего (наибольшего) из нескольких значений» по теме

  • «Логические данные и выражения. Операторы разветвления VС++. Программная реализация базовых разветвляющиеся структур и типовых алгоритмов» по дисциплине

  • «Информатика»

  • Лабораторная работа №7 – Проект №2 «Разработка проекта, решающего задачу вычисления сложного выражения с условием и выбора наиме. Реферат 7.2 (Троян). Логические данные и выражения. Операторы разветвления vс. Программная реализация базовых разветвляющиеся структур и типовых алгоритмов по дисциплине


    Скачать 357.17 Kb.
    НазваниеЛогические данные и выражения. Операторы разветвления vс. Программная реализация базовых разветвляющиеся структур и типовых алгоритмов по дисциплине
    АнкорЛабораторная работа №7 – Проект №2 «Разработка проекта, решающего задачу вычисления сложного выражения с условием и выбора наиме
    Дата02.04.2022
    Размер357.17 Kb.
    Формат файлаdocx
    Имя файлаРеферат 7.2 (Троян).docx
    ТипЛабораторная работа
    #435372

    МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

    Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

    «Московский технический университет связи и информатики»





    Кафедра «Информатика»

    Лабораторная работа №7 – Проект №2

    «Разработка проекта, решающего задачу

    вычисления сложного выражения с условием и выбора наименьшего (наибольшего) из нескольких значений»

    по теме

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

    Операторы разветвления VС++. Программная реализация базовых разветвляющиеся структур и типовых алгоритмов»

    по дисциплине

    «Информатика»

    Выполнил: студент гр. БИН2103 Троян Иван

    Вариант №23
    Проверил:
    Москва, 2021 г.

    СОДЕРЖАНИЕ



    СОДЕРЖАНИЕ 2

    1. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 3

    2. ФОРМАЛИЗАЦИЯ РЕШЕНИЯ 3

    3. РАЗРАБОТКА ДВУХ ФУНКЦИОНАЛЬНЫХ АЛГОРИТМОВ И АЛГОРИТМА ГЛАВНОЙ ФУНКЦИИ MAIN 4

    4.КОД ПРОГРАММЫ 7

    5. РЕЗУЛЬТАТЫ 10

    1. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 3

    2. ФОРМАЛИЗАЦИЯ РЕШЕНИЯ 3

    3. РАЗРАБОТКА ДВУХ ФУНКЦИОНАЛЬНЫХ АЛГОРИТМОВ И АЛГОРИТМА ГЛАВНОЙ ФУНКЦИИ MAIN 4

    4.КОД ПРОГРАММЫ 6

    5. РЕЗУЛЬТАТЫ 10
    1. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

    v=

    2. ФОРМАЛИЗАЦИЯ РЕШЕНИЯ

    Алгоритм решения данной задачи представляет собой комбинацию вычисления сложного выражения с условием и выбора (наименьшего, наибольшего) из нескольких значений, используя все виды разветвлений. Можно решить эту задачу двумя способами:

    Создать функциональный алгоритм и соответствующую программную функцию, используя вложенные разветвления с базовыми алгоритмами нахождения наибольшего и наименьшего значений без использования библиотечных функций max и min;

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

    Будем считать, что исходные данные и результат вычислений имеют тип double. Для контроля правильности результата создадим переменную целого типа, этой переменной будем присваивать номер ветви разветвления, по которой выполнились вычисления.

    3. РАЗРАБОТКА ДВУХ ФУНКЦИОНАЛЬНЫХ АЛГОРИТМОВ И АЛГОРИТМА ГЛАВНОЙ ФУНКЦИИ MAIN



    Рисунок 1 - Схема алгоритма Razv



    Рисунок 2 - Схема алгоритма Razm



    Рисунок 3 - Схема алгоритма main

    4.КОД ПРОГРАММЫ

    Main.cpp

    #include

    #include

    using namespace std;

    void Get(double& x, double& y, double& z, double& c,);

    void Put(double , int);

    double Razv(double x, double y, double z, double c, int& n);

    double Razm(double x, double y, double z, double b, int& n);

    int main()

    {

    double x,y,z,c,v;

    int n;

    Get(x,y,z,c);

    int choice;

    cout<<"Каким способом решать задачу?\n";

    cout<<"1 - с вложенными разветвлениями ";

    cout<<"без библиотечных функций max и min \n";

    cout<<"2 - со своими функциями minMy и maxMy \n";

    cout<<"Что выбираете 1 или 2 ?\n";

    cin>>choice;

    switch(choice)

    {

    case 1:

    v = Razv(x,y,z,c,n);

    break;

    case 2:

    h = Razm(x,y,z,c,n);

    break;

    default:

    cout<<" Вы ввели что-то не то! ";

    cout<
    system("PAUSE");

    return 0;

    }

    Put(v,n);

    system("PAUSE");

    return 0;

    }




    Choice.cpp

    #include

    using namespace std;

    double Razv(double x, double y, double z, double c, int& n)

    {

    double v;

    if (z*y < 0)&& (x>0)

    { v = c* sqrt(x)*(y-z)

    n = 1;

    }

    else if (y*z<0)&& (x>0)

    { double v1=z,v2=y;

    v=x;

    if (v1>v) v = v1;

    if(v2>v) v = v2;

    v = 2;

    }

    else {double v1=x, v2=y*y;

    v=z;

    if (v1
    if(v2
    n = 3;

    }

    return v;

    }

    double maxMy(double z, double y);

    double minMy(double z, double y);

    double Razm(double x, double y, double z, double v, int& n)

    {

    if (pow(abs(x),y) < z) { n = 1;

    return c* sqrt(x)*(y-z));

    }

    else if (y*z < 0 {n = 2;

    return maxMy(x, maxMy(y, z));

    }

    else {n = 3;

    return minMy(pow(x), minMy(y*y);

    }

    }

    double maxMy(double x, double y)

    {

    double g;

    if (x > y) g = x; else g = y;

    return g;

    }

    double minMy(double x, double y)

    {

    double g;

    if (x < y) g = x; else g = y;

    return g;

    }




    GetPut.cpp

    #include

    using namespace std;

    void Get(double& x, double& y, double& z, double& c,)

    {

    setlocale(LC_ALL,"rus");

    cout<<" Введите x, y, z\n";

    cin>>x>>y>>z;

    cout<<" Введите c\n";

    cin>>c;

    }

    void Put(double v, int n)

    {

    setlocale(LC_ALL,"rus");

    cout<<" Вычислено значение сложной функции с условием "<
    cout<<" Номер ветки разветвления "<
    }

    5. РЕЗУЛЬТАТЫ



    Рисунок 4 - Ветвь№1



    Рисунок 5 - Ветвь№2

    2

    Рисунок 6 - Ветвь№3, если не получается 1 ветвь



    Рисунок 7 - Ветвь№3, если не получается 2 ветвь

    Исходные данные

    Результат

    Ветви

    c

    х

    у

    z




    -3

    1

    2

    3

    3.72789

    1

    -3

    2

    1

    1

    2

    2

    -3

    11

    3

    4

    1

    3(1)

    -3

    11

    3

    4

    1

    3(2)


    написать администратору сайта