Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. typedef double(*myf_1)(double, double, double);
  11. typedef double(*myf_math)(double, double);
  12. typedef const char*(*FName)();
  13. if (!(LoadLibraryEx(L"lab9dll.dll", 0, LOAD_LIBRARY_AS_DATAFILE)))
  14. {
  15. cout << "LoadLibraryError" << endl;
  16. system("pause");
  17. exit(0);
  18. }
  19. HINSTANCE ptrToDll = LoadLibrary(L"lab9dll.dll");
  20. myf_1 myFunc = (myf_1)GetProcAddress(ptrToDll, "myf_1");
  21. myf_math Func = (myf_math)GetProcAddress(ptrToDll, "myf_math");
  22. FName Name = (FName)GetProcAddress(ptrToDll, "FName");
  23. if (!(ptrToDll && myFunc && Func && Name))
  24. {
  25. cout << "FunctionsError" << endl;
  26. system("pause");
  27. exit(0);
  28. }
  29. m1: double eps = -1, xstart = 0, xend = 0, dx = 1, a = 0;
  30. cout << "eps = ";
  31. cin >> eps;
  32. cin.clear();
  33. cin.ignore(cin.rdbuf()->in_avail());
  34. cout << "x start = ";
  35. cin >> xstart;
  36. cin.clear();
  37. cin.ignore(cin.rdbuf()->in_avail());
  38. cout << "x end = ";
  39. cin >> xend;
  40. cin.clear();
  41. cin.ignore(cin.rdbuf()->in_avail());
  42. cout << "dx = ";
  43. cin >> dx;
  44. cin.clear();
  45. cin.ignore(cin.rdbuf()->in_avail());
  46. cout << "a = ";
  47. cin >> a;
  48. if ((eps <= 0) || ((xstart != xend) && (dx == 0)) || ((xstart < xend) && (dx < 0)) || ((xstart > xend) && (dx > 0) || cin.fail()))
  49. {
  50. cout << "\nError\n\n";
  51. cin.clear();
  52. cin.ignore(cin.rdbuf()->in_avail());
  53. goto m1;
  54. }
  55. printf("______________________________________________________________\n");
  56. printf("|%-10s|%3s%-17s|%-17s|%-10s|\n", "x", "My ", Name(), Name(), "delta");
  57. printf("--------------------------------------------------------------\n");
  58. if (dx == 0)
  59. dx = 1;
  60. for (; dx > 0 ? xstart <= xend : xstart >= xend; xstart = round((xstart + dx) * 10000000) / 10000000)
  61. 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))));
  62. printf("--------------------------------------------------------------\n");
  63. double xideal = 0;
  64. m2: cout << "x ideal = ";
  65. cin >> xideal;
  66. if (cin.fail())
  67. {
  68. cout << "\nError\n\n";
  69. cin.clear();
  70. cin.ignore(cin.rdbuf()->in_avail());
  71. goto m2;
  72. }
  73. printf("______________________________________________________________\n");
  74. printf("|%-10s|%-3s%-17s|%-17s|%-10s|\n", "eps", "My ", Name(), Name(), "delta");
  75. printf("--------------------------------------------------------------\n");
  76. for (double eps = 0.1; eps >= 0.0000001; eps *= 0.1)
  77. 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))));
  78. printf("--------------------------------------------------------------\n");
  79. FreeLibrary(ptrToDll);
  80. system("pause");
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement