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

  • 1.Задание на разработку проекта и вариант задания

  • 2.Формализация и уточнение задания

  • 3.Схемы алгоритмов пользовательских функций

  • 4.Программный код проекта

  • 5.Результаты выполнения проекта

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


    Скачать 183.17 Kb.
    НазваниеРазработка проекта, решающего задачу построения таблицы значений функции двух переменных
    Дата10.12.2021
    Размер183.17 Kb.
    Формат файлаdocx
    Имя файлалаюба 8.2 вариант 2.docx
    ТипЛабораторная работа
    #299264

    Федеральное агентство связи

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

    образовательное учреждение высшего образования

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

    ЛАБОРАТОРНАЯ РАБОТА № 8.2

    по дисциплине “Информатика”

    на тему

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

    Выполнил: студент гр.
    Проверил:

    Москва 2021 г.

    Оглавление

    1. Задание на разработку проекта и вариант задания……………………....3

    2. Формализация и уточнение задания………………………………………3

    3. Схемы алгоритмов пользовательских функций………………………….3

    4. Программный код проекта……………………………………………..…5

    5. Результаты выполнения проекта………………………………………….7

    6. Доказательство правильности работы…………………………………..12


    1.Задание на разработку проекта и вариант задания

    Создать проект согласно общему заданию 19 варианта (Рисунок 1):



    Рисунок 1 – Общее задание

    2.Формализация и уточнение задания

    Для реализации задания разработаю следующие пользовательские функции:

    • Функция fun, вычисляющая z(x,y) при заданных значениях x и y;

    • Функция Tab, формирующая и выводящая таблицу значений z(x,y) на заданных отрезках изменения x и y, а так же считающая сумму и количество значений функции при z>0;

    • Функция Get, выполняющая ввод исходные данных: границ отрезков [a;b] и [c;d], шагов табуляции h1 и h2;

    • Функция Put, выводящая вычисленную сумму и количество положительных значений функции;

    • Главная функция main, последовательно вызывающая функции Get,Tab и Put.

    Для представления вещественных чисел будем использовать типа данных с двойной точностью double.

    3.Схемы алгоритмов пользовательских функций

    Схема алгоритма функции Resh() решения задачи и формирования

    таблицы значений функции z=f(x,y) на заданных отрезках изменения x и y.

    (Рисунок 2)



    Рисунок 2 – Схема алгоритма процедуры Resh()

    Cхема алгоритма функции func() вычисления значения заданной функции в одной точке .(рисунок 3)


    Рисунок 3 – Схема алгоритма процедуры func()


    4.Программный код проекта
    Главная функция main()

    #include

    using namespace std;
    void Get(double&, double&, double&, double&, double&, double&);

    double Resh(double, double, double, double, double, double,int&);

    void Put(double,int );
    int main()

    {

    double a, b, h1,c,d,h2, S;

    int m;

    Get(a, b, h1, c, d, h2);

    S = Resh(a, b, h1, c, d, h2,m);

    Put(S,m);

    cout << endl;

    return 0;

    }

    Функция Resh()

    #include

    #include

    using namespace std;
    double func(double x,double y)

    {

    double z;

    z = 1/(x+6.28-y)-sin(x);

    return z;

    }
    double Resh(double a, double b, double h1, double c, double d, double h2,int& s)

    {

    setlocale(LC_ALL, "rus");

    double x, y,S=0,z;

    s = 0;

    int n1 = ceil((b - a) / h1) ;

    int n2 = ceil((d - c) / h2) ;

    cout << "Таблица значений функции:" << endl;

    cout << "x= y= z=" << endl;

    for (int i = 0; i <= n1; i ++)

    {

    x = a+i*h1;

    for (int j = 0; j <= n2; j ++)

    {

    y = c + j*h2;

    z = func(x, y);

    cout << x << " " << y <<" "<
    if (z>0)

    {

    S = S+z;

    s++;

    }

    }

    }

    return S;

    }Функция Get() и Put()

    #include

    using namespace std;
    void Get(double& a, double& b, double& h1, double& c, double& d, double& h2)

    {

    setlocale(LC_ALL, "rus");

    cout << "Введите начало отрезка a= ";

    cin >> a;

    cout << "Введите конец отрезка b= ";

    cin >> b;

    cout << "Введите шаг табулирования h1= ";

    cin >> h1;

    cout << "Введите начало отрезка c= ";

    cin >> c;

    cout << "Введите конец отрезка d= ";

    cin >> d;

    cout << "Введите шаг табулирования h2= ";

    cin >> h2;

    }
    void Put(double S,int s)

    {

    cout << "Сумма значение S=" << S<
    cout << "Кол-во значений s= " << s;

    }
    5.Результаты выполнения проекта

    Вывод данного проекта (Рисунок 4-7 )



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



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



    6.Доказательство правильности работы

    Подставив исходные значения в Microsoft Excel, вычисления сошлись, а значит программа работает верно. Проверка некоторых вычислений показана на (рисункe 7)



    Рисунок 7 – проверка вычисления значения функции


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