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

  • Индивидуальное задание на разработку программного проекта

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

  • Разработка функциональных алгоритмов

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

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

  • Информатика, лабораторная работа №8. Лабораторная работа №8.1. Общее задание на разработку программного проекта


    Скачать 0.68 Mb.
    НазваниеОбщее задание на разработку программного проекта
    АнкорИнформатика, лабораторная работа №8.1
    Дата24.01.2022
    Размер0.68 Mb.
    Формат файлаdocx
    Имя файлаЛабораторная работа №8.1.docx
    ТипДокументы
    #341084


    Общее задание на разработку программного проекта

    1. Изучите вопросы программирования алгоритмов регулярных циклических структур;

    2. Выберите вариант задания.

    3. Проведите формализацию поставленной задачи.

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

    Для этого разработайте схемы алгоритмов и программные коды следующих функций:

    • функция вычисления значения функции y = f(x) одного аргумента в одной точке согласно вашему индивидуальному заданию;

    • функцию построения таблицы значений y = f(x) одного аргумента на заданном отрезке с заданным шагом изменения аргумента, причем использовать в качестве параметра цикла переменную целого типа;

    • функция ввода исходных данных;

    • функция вывода результатов;

    • главной функции main, которая вызывает описанные выше функции для решения поставленной задачи.

    1. Создайте консольный проект, содержащий 3 раздельно откомпилированных файла:

    • файл, содержащий функцию ввода исходных данных и функцию вывода результатов;

    • файл с функциями вычисления значения функции y = f(x) и построения таблицы значений y = f(x);

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

    1. Выполните проект и получите результаты.

    2. Докажите правильность полученных результатов.


    Индивидуальное задание на разработку программного проекта


    Вариант

    Задание

    18

    Создать проект согласно общему заданию для формирования таблицы значений функции y = f(x) при изменении x на отрезке [a; b] с шагом h.

    отрезок [-2;6], шаг h = 0.5
    Вычислить произведение положительных значений функции.




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

    • функция func, вычисляющая f(x) в заданной точке x;

    • функция regCikl, формирующая и выводящая таблицу значений f(x) на заданном отрезке значений x, а также определяющая наименьшее значение заданной функции на этом же отрезке;

    • функция get, выполняющая ввод исходных данных.: границ отрезка [a;b] и шага h;

    • функция put, выводящая найденное наименьшее значение функции f(x);

    • главная функция main, последовательно вызывающая функцию get, regCikl, put.

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

    Разработка функциональных алгоритмов
    Схема алгоритма функции func вычисления значения заданной функции в одной точке (рисунок 1):



    Рисунок 1 - функция func

    Схема алгоритма RegCikl решения задачи и формирования таблицы значений функции y=f(x) на отрезке [a; b] с шагом h изображена на рисунке 2:



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


    Программный код проекта
    Программный код проекта представлен ниже:

    Файл GetPut.cpp:
    // Файл GetPut.cpp с функциями ввода и вывода:

    #include

    using namespace std;
    void Get(float& a, float& b, float& h)

    {

    setlocale(LC_ALL, "rus");

    cout << "Введите нижнюю границу отрезка -> ";

    cin >> a;

    cout << "Введите верхнюю границу отрезка ->";

    cin >> b;

    cout << "Введите шаг таблицы ->";

    cin >> h;

    }
    void Put(float P)

    {

    setlocale(LC_ALL, "rus");

    cout << endl << "Произведение значений функция равно: " << P << endl;

    }


    Файл Resh.cpp:
    #include

    #include "cmath"

    using namespace std;
    float func(float x);

    void RegCikl(float& a, float& b, float& h, float& P, float& PMin, float& PMax)

    {

    setlocale(LC_ALL, "rus");

    int n = int((b - a + h / 2) / h) + 1;

    P = 1;

    PMax = 1E308; PMin = -1E308;

    float x, y;

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

    cout << "\tx\t\ty" << endl;

    for (int i = 1; i <= n; i++)

    {

    x = a + (i - 1) * h;

    y = func(x);

    P = P * y;

    if (P > PMax) PMax = P;

    if (P < PMin) PMin = P;;

    cout << "\t" << x << "\t\t" << y << endl;

    }

    }
    float func(float x) {

    if (x >= 0 && x <= 5) return 5*exp(x);

    else if (x > 5) return 2 * sin(x);

    else if (x < 0) return abs(x);

    }

    Файл main.cpp:
    // Файл main.cpp:

    #include
    void Get(float& a, float& b, float& h);

    void Put(float P);

    void RegCikl(float& a, float& b, float& h, float& P, float& PMin, float& PMax);
    int main()

    {

    float a, b, h, P, PMin, PMax;

    Get(a, b, h);

    RegCikl(a, b, h, P, PMin, PMax);

    Put(P);

    system("PAUSE");

    }

    Результаты выполнения проекта
    Результаты выполнения проекта при заданных значениях исходных данных приведены на рисунке 3:


    Рисунок 3 - результаты выполнения проекта

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



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