Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба инфа 6

.docx
Скачиваний:
0
Добавлен:
04.03.2022
Размер:
262.35 Кб
Скачать

Лабораторная работа №6

Табулирование функции в программе Microsoft Visual Studio на языке программирования С++ на основе пользовательских функций

Оглавление

1 Задание 3

2 Ход выполнения лабораторной работы 3

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

2.2 Разработка блок-схемы 3

2.3 Код программы 6

2.4 Тестирование программы 8

Список использованных источников 10

1 Задание

1)Разработать проект в среде программирования Microsoft Visual Studio, в которой осуществляется табулирование функции на языке программирования С++ на основе пользовательских функций

2) Построить таблицу и вычислить произведение значений функции y=f(x) при y<0 при изменении х на отрезке [-1,5;1,5] с шагом 0,15

(1)

Для выполнения лабораторной работы следует разработать:

  1. Функцию ввода double Vvod(TextBox^t)

  2. Функцию double Fun(double x) для расчета функции y=f(x)

  3. Функцию вывода void Vivod(double z, TextBox^t)

  4. Функция вывода переменных в таблицу void VivodDGV(double x, double y, DataGridView^DGV)

  5. Функцию void Tabul(double x, double a, double b, double h, double& k, DataGridView^grid) для табулирования функции и вычисления произведения значений функции при выполении определенных условий

  6. Событийную функцию, в которой осуществляются вызовы функции ввода double Vvod(TextBox^t), пользовательской функции double Fun(double x), функции вывода переменных в таблицу void VivodDGV(double x, double y, DataGridView^DGV), пользовательской функции void Tabul(double x, double a, double b, double h, double& k, DataGridView^grid) и функции вывода void Vivod(double z, TextBox^t)

2 Ход выполнения лабораторной работы

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

Функция ввода: double Vvod(TextBox^t).

Функция вывода: void Vivod(double z, TextBox^t).

Пользовательская функция для расчета функции: double Fun(double x).

Пользовательская функция для табулирования функции: void Tabul(double x, double a, double b, double h, double& k, DataGridView^grid).

Функция вывода данных в таблицу: void VivodDGV(double x, double y, DataGridView^DGV).

Переводим формулу (1) на язык программирования C++:

y=pow(x,8)-0.4*pow(x,3)-1.24;

2.2 Разработка блок-схемы

Посторим блок-схему работы функции ввода (рисунок 1).

Рисунок 1 – Блок-схема функции ввода.

Разработаем блок-схему работы пользовательской функции (рисунок 2).

Рисунок 2 – Блок-схема пользовательской функции.

Разработаем блок-схему работы функции табулирования (рисунок 3).

Рисунок 3 – Функция табулирования функции

Разработаем блок-схему работы функции вывода данных в таблицу (рисунок 4).

Рисунок 4 – Функция вывода данных в таблицу.

Разработаем блок-схему работы функции вывода (рисунок 5).

Рисунок 5 – Блок-схема функции вывода.

Разработаем блок-схему событийной функции (рисунок 6).

Рисунок 6 – Блок-схема событийной функции.

2.3 Код программы

Laboratornsrabots.cpp

#include "stdafx.h"

#include "Form1.h"

using namespace Laboratornsrabots;

[STAThreadAttribute]

int main(array<System::String ^> ^args)

{

// Включение визуальных эффектов Windows XP до создания каких-либо элементов управления

Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

// Создание главного окна и его запуск

Application::Run(gcnew Form1());

return 0;

}

Form1.h

#pragma once

#include "form2.h"

#include "form3.h"

#include "form4.h"

namespace Laboratornsrabots {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

<…>

#pragma endregion

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

form2^ f=gcnew form2();

f->Owner=this;

f->Show();

//f->ShowDialog();

this->Hide();

}

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

form3^ f=gcnew form3();

f->Owner=this;

f->Show();

//f->ShowDialog();

this->Hide();

}

private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {

form4^ f=gcnew form4();

f->Owner=this;

f->Show();

//f->ShowDialog();

this->Hide();

}

};

}

Form4.h

#pragma once

#define _USE_MATH_DEFINES

#include <math.h>

namespace Laboratornsrabots {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

<…>

#pragma endregion

double Fun(double x)

{

double y=pow(x,8)-0.4*pow(x,3)-1.24;

return y;

}

void VivodDGV(double x, double y, DataGridView^DGV)

{

dataGridView1->ColumnCount=2;

DGV->Rows->Add(x,y);

}

void Tabul(double x, double a, double b, double h, double& k, DataGridView^grid)

{

x=a;

double y;

int n = Convert::ToInt32(((b-a)/h)+1);

k=1;

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

{

y=Fun(x);

VivodDGV(x,y, dataGridView1);

if (y<0)

k=k*y;

x=x+h;

}

}

double Vvod(TextBox^t)

{

return Convert::ToDouble(t->Text);

}

void Vivod(double z, TextBox^t)

{

t->Text=Convert::ToString(z);

}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

Owner->Show();

this->Close();

}

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

double k1, x1;

double h1=Vvod(textBox2);

double a1=Vvod(textBox3);

double b1=Vvod(textBox4);

Tabul(x1,a1,b1,h1,k1, dataGridView1);

Vivod(k1, textBox5);

}

};

}

2.4 Тестирование программы

Исходные данные: h=0,15, a=-1,5, b=1,5.

Результаты табулирования приведены на рисунке 1.

Рисунок 1 – Результаты табулирования

Результат вычисления произведения значений функции представлен на рисунке 2.

Рисунок 2 – Результат вычисления произведения значений функции

Сравнив с результатами калькуляторы(рисунок 3), мы видим, что они совпадают.

Рисунок 3 – Результаты вычисления произведения значений функции на калькуляторе

Список использованных источников

  1. ГОСТ 7.1-2001 СИБИД. Библиографическая запись. Библиографическое описание. Общие требования и правила составления [электронный ресурс] URL: https://internet-law.ru/gosts/gost/1560 (дата обращения 03.11.2019)

  2. ГОСТ 7.32-2001 СИБИД. Отчет о научно-исследовательской работе. Структура и правила оформления (с Изменением N 1) [электронный ресурс] URL: http://docs.cntd.ru/document/gost-7-32-2001-sibid (дата обращения 03.11.2019)

Соседние файлы в предмете Информатика