Табуляция функций с использованием оператора цикла с постусловием do … while - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача: Напишите и отладьте программу для табуляции следующих функций с использованием оператора цикла с постусловием do … while: Z = -a ex-3a, если 0 < x<= 3, a = 1; 1.5, Z= -a (1+ln(x-3a)), если 3 < x <= 4, шаг x=a/2. Вот мое решение:
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <locale.h>
  4. #include <conio.h>
  5. #define e 2.7182
  6. void main()
  7. {
  8. setlocale(LC_ALL, "RUS");
  9. float a, x, z;
  10. printf("-----------------------------\n");
  11. printf(" a | x | y |\n");
  12. printf("-----------------------------\n");
  13. a = 1;
  14. do
  15. {
  16. printf("%5.2f\n", a);
  17. x = 0;
  18. {
  19. z = -a*exp(x - (3 * a));
  20. printf("%12.2f|%10.2f\n", x, z);
  21. x = x + (a / 2);
  22. }
  23. while (x <= 3);
  24. z = (-a)*(1 + log(fabs(x - (3 * a))));
  25. printf("%12.2f|%10.2f\n", x, z);
  26. x = x + (a / 2);
  27. } while (x <= 4);
  28. printf("--------------------------------\n");
  29. a = a + 0.5;
  30. while (a <= 1.6)
  31. _getch();
  32. }
Программа не работает (На экран выводится только a=1 и значение функции при x=0) Что-то здесь не так (но вот что? )

Решение задачи: «Табуляция функций с использованием оператора цикла с постусловием do … while»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <locale.h>
  4. #include <conio.h>
  5. #define e 2.7182
  6.  
  7. int main()
  8. {
  9.     double a, x, z;
  10.  
  11.     setlocale(LC_ALL, "RUS");
  12.  
  13.     a = 1;
  14.     printf("-------------------------------------------------\n");
  15.     printf("|\t\tz= -a*exp(x - (3 * a))\t\t|\n");
  16.     do
  17.     {
  18.         x = a/2;
  19.         printf("-------------------------------------------------\n");
  20.         printf("|\t a\t|\t x\t|\t y\t|\n");
  21.         printf("-------------------------------------------------\n");
  22.         do
  23.         {
  24.             z = -a*exp(x - (3 * a));
  25.             printf("|\t%4.2lf\t|\t%4.2lf\t|\t%4.2lf\t|\n", a, x, z);
  26.             x = x + (a / 2);
  27.         } while (x <= 3);
  28.         a = a + 0.5;
  29.     } while (a <= 1.5);
  30.     printf("-------------------------------------------------\n\n");
  31.  
  32.     a = 1;
  33.     printf("-------------------------------------------------\n");
  34.     printf("|\tz= (-a)*(1 + log(fabs(x - (3 * a))))\t|\n");
  35.     do
  36.     {
  37.         x = 3 + a / 2;
  38.         printf("-------------------------------------------------\n");
  39.         printf("|\t a\t|\t x\t|\t y\t|\n");
  40.         printf("-------------------------------------------------\n");
  41.         do
  42.         {
  43.             z = (-a)*(1 + log(fabs(x - (3 * a))));
  44.             printf("|\t%4.2lf\t|\t%4.2lf\t|\t%4.2lf\t|\n", a, x, z);
  45.             x = x + (a / 2);
  46.         } while (x <= 4);
  47.         a = a + 0.5;
  48.     } while (a <= 1.5);
  49.     printf("-------------------------------------------------\n");
  50.  
  51.     _getch();
  52.     return 0;
  53. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы