Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <stdbool.h>
  4. #include <math.h>
  5. #include <malloc.h>
  6.  
  7. int main() {
  8. SetConsoleOutputCP(CP_UTF8);
  9. printf("%s", "Тема: Составить таблицу значений для функции.\n");
  10. printf("-----------------------------------------------------------------------------------\n");
  11. const double minCoef = -100, maxCoef = 100;
  12. double firstCoef;
  13. bool isNotCorrect;
  14. do {
  15. printf("Пожалуйста, введите коэффициент a (значение от %.0lf до %.0lf): ",
  16. minCoef, maxCoef);
  17. scanf("%lf", &firstCoef);
  18. isNotCorrect = (firstCoef < minCoef || firstCoef > maxCoef);
  19. if (isNotCorrect) {
  20. printf("Ошибка! Число не удовлетворяет промежутку значений от %.0f до %.0f.\n", minCoef, maxCoef);
  21. }
  22. } while (isNotCorrect);
  23. double secondCoef;
  24. do {
  25. printf("Пожалуйста, введите коэффициент b (значение от %.0f до %.0f): ",
  26. minCoef, maxCoef);
  27. scanf("%lf", &secondCoef);
  28. isNotCorrect = (secondCoef < minCoef || secondCoef > maxCoef);
  29. if (isNotCorrect) {
  30. printf("Ошибка! Число не удовлетворяет промежутку значений от %.0f до %.0f.\n", minCoef, maxCoef);
  31. }
  32. } while (isNotCorrect);
  33. double thirdCoef;
  34. do {
  35. printf("Пожалуйста, введите коэффициент c (значение от %.0f до %.0f): ",
  36. minCoef, maxCoef);
  37. scanf("%lf", &thirdCoef);
  38. isNotCorrect = (thirdCoef < minCoef || thirdCoef > maxCoef);
  39. if (isNotCorrect) {
  40. printf("Ошибка! Число не удовлетворяет промежутку значений от %.0f до %.0f.\n", minCoef, maxCoef);
  41. }
  42. } while (isNotCorrect);
  43. const double minX = -500, maxX = 500;
  44. double startX;
  45. double endX;
  46. do {
  47. do {
  48. printf("Пожалуйста, введите x0 (значение от %.0f до %.0f): ", minX, maxX);
  49. scanf("%lf", &startX);
  50. isNotCorrect = (startX < minX || startX > maxX);
  51. if (isNotCorrect) {
  52. printf("Ошибка! Число не удовлетворяет промежутку значений от %.0f до %.0f.\n", minX, maxX);
  53. }
  54. } while (isNotCorrect);
  55. do {
  56. printf("Пожалуйста, введите xn (значение от %.0f до %.0f): ", minX, maxX);
  57. scanf("%lf", &endX);
  58. isNotCorrect = (endX < minX || endX > maxX);
  59. if (isNotCorrect) {
  60. printf("Ошибка! Число не удовлетворяет промежутку значений от %.0f до %.0f.\n", minX, maxX);
  61. }
  62. } while (isNotCorrect);
  63. if (startX > endX) {
  64. isNotCorrect = true;
  65. printf("Неверные значения x0 и xn! X0 должно быть меньше xn!\n");
  66. }
  67. } while (isNotCorrect);
  68. const double minStep = 1, maxStep = 100;
  69. double step;
  70. do {
  71. printf("Пожалуйста, введите шаг h (значение от %.0f до %.0f): ", minStep,
  72. maxStep);
  73. scanf("%lf", &step);
  74. isNotCorrect = (step < minStep || step > maxStep);
  75. if (isNotCorrect) {
  76. printf("Ошибка! Число не удовлетворяет промежутку значений от %.0f до %.0f.\n", minStep, maxStep);
  77. }
  78. } while (isNotCorrect);
  79. double count = floor((endX - startX) / step) + 1;
  80. int useCount = (int) count;
  81. double *resultTable;
  82. resultTable = (double*)malloc(useCount * 2 * sizeof(double));
  83. printf("-----------------------------------------------------------------------------\n");
  84. printf("Таблица значений заданной функции: \n");
  85. printf("---------------------------\n");
  86. double answerY;
  87. for (int i = 0; i < useCount; i++) {
  88. *(resultTable + i*2 + 0) = startX;
  89. answerY = firstCoef * startX * startX + secondCoef * startX + thirdCoef;
  90. //resultTable[i][1] = answerY;
  91. *(resultTable + i*2 + 1) = startX;
  92. //printf("| x = %6.1f | y = %6.1f |\n", resultTable[i][0], resultTable[i][1]);
  93. printf("| x = %6.1f | y = %6.1f |\n", *(resultTable + i*2 + 0), *(resultTable + i*2 + 1);
  94. printf("---------------------------\n");
  95. startX = startX + step;
  96. }
  97. free(resultTable);
  98. getchar();
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement