Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <iomanip>
- #include <windows.h>
- using namespace std;
- int main()
- {
- typedef double(*myf_1)(double, double, double);
- typedef double(*myf_math)(double, double);
- typedef const char*(*FName)();
- if (!(LoadLibraryEx(L"lab9dll.dll", 0, LOAD_LIBRARY_AS_DATAFILE)))
- {
- cout << "LoadLibraryError" << endl;
- system("pause");
- exit(0);
- }
- HINSTANCE ptrToDll = LoadLibrary(L"lab9dll.dll");
- myf_1 myFunc = (myf_1)GetProcAddress(ptrToDll, "myf_1");
- myf_math Func = (myf_math)GetProcAddress(ptrToDll, "myf_math");
- FName Name = (FName)GetProcAddress(ptrToDll, "FName");
- if (!(ptrToDll && myFunc && Func && Name))
- {
- cout << "FunctionsError" << endl;
- system("pause");
- exit(0);
- }
- m1: double eps = -1, xstart = 0, xend = 0, dx = 1, a = 0;
- cout << "eps = ";
- cin >> eps;
- cin.clear();
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "x start = ";
- cin >> xstart;
- cin.clear();
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "x end = ";
- cin >> xend;
- cin.clear();
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "dx = ";
- cin >> dx;
- cin.clear();
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "a = ";
- cin >> a;
- if ((eps <= 0) || ((xstart != xend) && (dx == 0)) || ((xstart < xend) && (dx < 0)) || ((xstart > xend) && (dx > 0) || cin.fail()))
- {
- cout << "\nError\n\n";
- cin.clear();
- cin.ignore(cin.rdbuf()->in_avail());
- goto m1;
- }
- printf("______________________________________________________________\n");
- printf("|%-10s|%3s%-17s|%-17s|%-10s|\n", "x", "My ", Name(), Name(), "delta");
- printf("--------------------------------------------------------------\n");
- if (dx == 0)
- dx = 1;
- for (; dx > 0 ? xstart <= xend : xstart >= xend; xstart = round((xstart + dx) * 10000000) / 10000000)
- printf("|%10.7lf|%20.7lf|%17.7lf|%10.7lf|\n", xstart, myFunc(eps, a, xstart), Func(a, xstart), sqrt(fabs(myFunc(eps, a, xstart) * myFunc(eps, a, xstart) - Func(a, xstart) * Func(a, xstart))));
- printf("--------------------------------------------------------------\n");
- double xideal = 0;
- m2: cout << "x ideal = ";
- cin >> xideal;
- if (cin.fail())
- {
- cout << "\nError\n\n";
- cin.clear();
- cin.ignore(cin.rdbuf()->in_avail());
- goto m2;
- }
- printf("______________________________________________________________\n");
- printf("|%-10s|%-3s%-17s|%-17s|%-10s|\n", "eps", "My ", Name(), Name(), "delta");
- printf("--------------------------------------------------------------\n");
- for (double eps = 0.1; eps >= 0.0000001; eps *= 0.1)
- printf("|%10.7lf|%20.7lf|%17.7lf|%10.7lf|\n", eps, myFunc(eps, a, xideal), Func(a, xideal), sqrt(fabs(myFunc(eps, a, xideal) * myFunc(eps, a, xideal) - Func(a, xideal) * Func(a, xideal))));
- printf("--------------------------------------------------------------\n");
- FreeLibrary(ptrToDll);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement