Табуляция функций с использованием оператора цикла с постусловием 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.
Вот мое решение:
Программа не работает (На экран выводится только a=1 и значение функции при x=0)
Что-то здесь не так (но вот что? )
Листинг программы
- #include <stdio.h>
- #include <math.h>
- #include <locale.h>
- #include <conio.h>
- #define e 2.7182
- void main()
- {
- setlocale(LC_ALL, "RUS");
- float a, x, z;
- printf("-----------------------------\n");
- printf(" a | x | y |\n");
- printf("-----------------------------\n");
- a = 1;
- do
- {
- printf("%5.2f\n", a);
- x = 0;
- {
- z = -a*exp(x - (3 * a));
- printf("%12.2f|%10.2f\n", x, z);
- x = x + (a / 2);
- }
- while (x <= 3);
- z = (-a)*(1 + log(fabs(x - (3 * a))));
- printf("%12.2f|%10.2f\n", x, z);
- x = x + (a / 2);
- } while (x <= 4);
- printf("--------------------------------\n");
- a = a + 0.5;
- while (a <= 1.6)
- _getch();
- }
Решение задачи: «Табуляция функций с использованием оператора цикла с постусловием do … while»
textual
Листинг программы
- #include <stdio.h>
- #include <math.h>
- #include <locale.h>
- #include <conio.h>
- #define e 2.7182
- int main()
- {
- double a, x, z;
- setlocale(LC_ALL, "RUS");
- a = 1;
- printf("-------------------------------------------------\n");
- printf("|\t\tz= -a*exp(x - (3 * a))\t\t|\n");
- do
- {
- x = a/2;
- printf("-------------------------------------------------\n");
- printf("|\t a\t|\t x\t|\t y\t|\n");
- printf("-------------------------------------------------\n");
- do
- {
- z = -a*exp(x - (3 * a));
- printf("|\t%4.2lf\t|\t%4.2lf\t|\t%4.2lf\t|\n", a, x, z);
- x = x + (a / 2);
- } while (x <= 3);
- a = a + 0.5;
- } while (a <= 1.5);
- printf("-------------------------------------------------\n\n");
- a = 1;
- printf("-------------------------------------------------\n");
- printf("|\tz= (-a)*(1 + log(fabs(x - (3 * a))))\t|\n");
- do
- {
- x = 3 + a / 2;
- printf("-------------------------------------------------\n");
- printf("|\t a\t|\t x\t|\t y\t|\n");
- printf("-------------------------------------------------\n");
- do
- {
- z = (-a)*(1 + log(fabs(x - (3 * a))));
- printf("|\t%4.2lf\t|\t%4.2lf\t|\t%4.2lf\t|\n", a, x, z);
- x = x + (a / 2);
- } while (x <= 4);
- a = a + 0.5;
- } while (a <= 1.5);
- printf("-------------------------------------------------\n");
- _getch();
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д