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

  • 1.4 Висновки

  • ЛАБОРАТОРНА РОБОТА 4. ЛОГІЧНИЙ ТИП ДАНИХ І РОЗГАЛУЖЕННЯ У ПРОГРАМАХ. . звіт з Лабораторної роботи №4. Лабораторна робота логічний тип даних і розгалуження у програмах


    Скачать 30.66 Kb.
    НазваниеЛабораторна робота логічний тип даних і розгалуження у програмах
    Анкор ЛАБОРАТОРНА РОБОТА 4. ЛОГІЧНИЙ ТИП ДАНИХ І РОЗГАЛУЖЕННЯ У ПРОГРАМАХ
    Дата20.12.2022
    Размер30.66 Kb.
    Формат файлаdocx
    Имя файла. звіт з Лабораторної роботи №4.docx
    ТипЛабораторна робота
    #855657
    1. Лабораторна робота 4. ЛОГІЧНИЙ ТИП ДАНИХ І РОЗГАЛУЖЕННЯ У ПРОГРАМАХ

      1. Мета роботи


    В процесі виконання лабораторної роботи студенти мають отримати такі знання та навички:

    • Ознайомитися з операціями над даними логічного типу.

    • Навчитися записувати та обчислювати логічні вирази.

    • Ознайомитися з операторами if … else та switch.

    • Створити проект, що реалізує алгоритми з розгалуженнями.
      1. Завдання на лабораторну роботу


    Під час підготовки до роботи опрацювати розділі 1 та 2 підручника [1] і дати відповіді на питання для самоперевірки з розділу 1.

    Під час виконання лабораторній роботі виконати такі завдання:

    -Створити проект для реалізації завдання 11 розділу 6 підручника

    -РЕАЛІЗАЦІЯ ПРОЕКТУ «IF_SWITCH»
      1. Результати виконання роботи

        1. Виконання завдання 11 з підручника


    У лістингу 1.1 представлено код для знаходження мінімального, середнього та максимального значення.

      1. Код програми

    #include

    #include

    #include

    #include

    using namespace std;

    float MAX (float a, float b, float c)

    {

    float m1= max (a, b);

    float m2= max (b, c);

    return(max (m1, m2));

    }

    float MIN (float a, float b, float c)

    {

    float n1= min (a, b);

    float n2= min (b, c);

    return(min (n1, n2));

    }

    float MID (float a, float b, float c)

    {

    if(MAX(a,b,c) != a && MIN(a,b,c) != a)

    {

    return a;

    }

    if(MAX(a,b,c) != b && MIN(a,b,c) != b)

    {

    return b;

    }

    if(MAX(a,b,c) != c && MIN(a,b,c) != c)

    return c;

    }

    int main(int argc, char *argv[])

    {

    QCoreApplication app(argc, argv);

    cout << " Crated by Kuzmenko N.O. PI-223"

    << endl;

    cout<< "Enter 3 numbers: "<< endl;

    float x1, x2, x3;

    float z1; cout<<"z1- "; cin>> z1 ;

    float z2; cout<<"z2- "; cin>> z2 ;

    float z3; cout<<"z3- "; cin>> z3 ;

    x1= z1;

    x2= z2;

    x3= z3;

    z1= MIN(x1, x2, x3);

    z2= MID(x1, x2, x3);

    z3= MAX(x1, x2, x3);

    cout << "Minimum = "<< z1 << endl << "Middle = " << z2

    << endl << "Maximum = " << z3 << endl;

    return app.exec();

    На рисунку 1.1 наведено результат виконання простої програми.


    Рисунок 1.1 – результат виконання програми
        1. Реалізація алгоритму розв’язання квадратного рівняння


    У лістингу 1.2 представлено код програми

      1. Код програми



    #include

    #include

    #include

    #include

    using namespace std;

    void testCoef(double a, double b, double c);

    void printLinEqResult(double b, double c);

    double calcLinRoot(double b, double c);

    void printSqrEqResult(double a, double b, double c);

    int calcSqrData(double a, double b, double c,

    double &re, double &im);

    /*якщо а не дорівнює 0 то вирішується квадратне

    рівняння, інакше вирішується лінійне*/

    void testCoef(double a, double b, double c){

    if (a != 0){

    printSqrEqResult (a, b, c);

    }

    else {

    printLinEqResult(b, c);

    }

    /*Якщо b не дорівнює нулю то вирішення за формулою x=(-b)/c

    якщо с = нулю то будь-який розвязок, інакше немає розвязку*/

    }

    void printLinEqResult(double b, double c){

    if(b !=0){

    double x = calcLinRoot(c, b);

    cout << "x =" << x << endl;

    }

    else if(c == 0){

    cout << "Any solution"<
    }

    else{

    cout << "No solution"<
    }

    }

    //повертає значення кореня

    double calcLinRoot(double b, double c){

    return -b/c;

    }

    //вирішення і виведення розязків квадратного рівняння

    void printSqrEqResult(double a, double b, double c){

    double im, re;

    if(calcSqrData(a, b, c, re, im))

    printf("x1 = %f, x2 = %f\n",re + im, re - im);

    printf("x1 = %f + %fi, x2 = %f - %fi\n",re,im,re,im);

    }

    /*формула для вирішення дискримінанта а також розвязків

    рівняння*/

    int calcSqrData(double a, double b, double c,

    double &re, double &im){

    double d = b*b - 4*a*c;

    re = -b/(2*a);

    im = sqrt(fabs(d))/(2*a);

    return d >= 0;

    }

    int main(int argc, char *argv[])

    {

    QCoreApplication app(argc, argv);

    float a,b,c;

    cout << "

    << endl;

    cout << "\n Equation 5*x^2 - 25 + 30 = 0\n";

    testCoef(5, -25, 30);

    cout << "\n Equation 2*x^2 + 10x + 0 = 0\n";

    testCoef(2, 10, 0);

    cout << "\n Equation 4*x^2 + 0x - 16 = 0\n";

    testCoef(4, 0, -16);

    cout << "\n Equation 1*x^2 + 2x + 5 = 0\n";

    testCoef(1, 2, 5);

    cout << "\n Equation 0*x^2 + 2x + 3 = 0\n";

    testCoef(0, 2, 3);

    cout << "\n Equation 0*x^2 + 0x + 3 = 0\n";

    testCoef(0, 0, 3);

    cout << "\n Equation 0*x^2 + 0x + 0 = 0\n";

    testCoef(0, 0, 0);

    while(true){

    cout << "Write coefitients\n";

    cout <<"a ="; cin >> a ;

    cout <<"b ="; cin >> b ;

    cout <<"c ="; cin >> c ;

    testCoef(a, b, c);

    }

    return app.exec();

    }

    На рисунках 1.2 та 1.3 наведено результати виконання простої програми.

    Рисунок 1.2 – результат виконання програми

    Рисунок 1.3 – результат виконання програми

    1.4 Висновки

    За результатами виконання лабораторної роботи можна зробити наступні висновки.

    • Ознайомилися з операціями над даними логічного типу.

    • Навчилися записувати та обчислювати логічні вирази.

    • Ознайомилися з операторами if … else та swith.

    • Створили проект, що реалізує алгоритми з розгалуженнями.


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