Проверить, является ли введенное число является решением уравнения (составить блок-схему) - C (СИ)
Формулировка задачи:
Составить блок-схему
Проверить, является ли введенное число является решением уравнения {ax}^{4}+{bx}^{2}+cx=d
^ - степень
Перевірити, чи введене число є розв’язком рівняння {ax}^{4}+{bx}^{2}+cx=d
^ - степінь
Решение задачи: «Проверить, является ли введенное число является решением уравнения (составить блок-схему)»
textual
Листинг программы
#include <stdio.h>
double a, b, c, d;
double f(double x);
int main()
{
char chStub = 0;
int iChoise = 0;
int iWork = 1;
double x = 0;
a = b = c = d = 1;
while(iWork)
{
printf("1 - Enter a, b, c, d\n");
printf("2 - Enter value for check\n");
printf("0 - Exit\n");
printf("[Current values a b c d : %lf %lf %lf %lf]\n", a, b, c, d);
printf("Your choise : ");
if(!scanf("%d",&iChoise))
printf("Incorrect input\n");
else
{
switch(iChoise)
{
case 1:
printf("a b c d : ");
if(scanf("%lf%lf%lf%lf", &a, &b, &c, &d) < 4)
printf("Incorrect input\n");
break;
case 2:
printf("x : ");
if(!scanf("%lf", &x))
printf("Incorrect input\n");
else
if(f(x) == 0)
printf("%lf - is root of equation\n", x);
else
printf("%lf - is not root of equation\n", x);
break;
case 0:
iWork = 0;
break;
default:
printf("Unssupported key\n");
break;
}
}
chStub = getchar();
while(chStub != '\n')
chStub = getchar();
}
return 0;
}
double f(double x)
{
return a*x*x*x*x + b*x*x + c*x - d;
}
Объяснение кода листинга программы
- В начале программы объявлены переменные a, b, c, d типа double и функция f(double x).
- В функции main() после инициализации переменных, введен цикл while, который будет выполняться до тех пор, пока пользователь не введет 0 для выхода.
- Внутри цикла while выводится меню с вариантами выбора.
- При выборе 1, пользователю предлагается ввести значения a, b, c, d. Если ввод верный, то значения сохраняются в соответствующих переменных.
- При выборе 2, пользователю предлагается ввести значение x для проверки, является ли оно решением уравнения.
- Если ввод верный, то значение x передается в функцию f(double x), которая возвращает 0, если x является решением уравнения, и ненулевое значение в противном случае.
- При выборе 0, цикл while завершается.
- В функции f(double x) определена формула для вычисления значения функции f(x).
- В случае ошибки ввода, программа выводит сообщение об ошибке и просит ввести корректное значение.