График,по заданному х вычислить у - C (СИ)
Формулировка задачи:
дан график, представлен на прикрепленном файле.
Написать программу которая вычисляет у, по введенному х.
дано условие что при х=0.5, у будет равен 1-0.866=0,134
х>=0.
Я вот написал промежуточный вариант.но он не правильный. У кого нибудь есть какие мысли как написать такую прогу???!!! Помогите пожалуйста!
#include <stdio.h> #include <math.h> #include <conio.h> int main() { float b,c; float y; float x; printf("\n Vvedite x"); scanf("%f",&x); { b=ceil(x); } c=b; if(x>0 && x<2) { y=1-sqrt(1-(x-c)*(x-c)); } else if (x>2 && x<4) { y=(1-sqrt(1-(x-c)*(x-c)))*(-1); } printf ("\n y=%0.3f",y); printf ("\n c=%0.3f",c); printf ("\n b=%0.3f",b); }
Решение задачи: «График,по заданному х вычислить у»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <conio.h> int main() { int i, k, r; float x, y, z; printf("\n Vvedite x "); scanf("%f",&x); { z=floor(x); } for(i=1; i<=x; i=i+4) { k=i; r=k+2; } if (x==k) { y=1; } else if(x==r) { y=-1; } else if(((int)z%2!=0) && ((int)floor(z/2.0)%2!=0)) { y=sqrt(1-(x-z)*(x-z))-1; } else if(((int)z%2!=0) && ((int)floor(z/2.0)%2==0)) { y=1-sqrt(1-(x-z)*(x-z)); } if(((int)z%2==0) && ((int)floor(z/2.0)%2!=0)) { y=sqrt(1-(x-z)*(x-z))-1; } else if(((int)z%2==0) && ((int)floor(z/2.0)%2==0)) { y=1-sqrt(1-(x-z)*(x-z)); } printf ("\n x=%0.3f",x); printf ("\n y=%0.3f",y); getch(); }
Объяснение кода листинга программы
В этом коде выполняется вычисление значения переменной y по заданному значению переменной x. Список действий:
- Запрос на ввод значения переменной x с помощью функции scanf.
- Вычисление значения переменной z как ближайшего целого числа, меньшего или равного x.
- Если x равно k (четное число), то y присваивается значение 1.
- Если x равно r (нечетное число), то y присваивается значение -1.
- Если x не является четным или нечетным числом, и z нечетное, то y вычисляется как квадратный корень из разности x и z, с вычетом 1.
- Если x не является четным или нечетным числом, и z четное, то y вычисляется как разница между 1 и квадратным корнем из разности x и z.
- Если x четное и z нечетное, то y вычисляется как квадратный корень из разности x и z, с вычетом 1.
- Если x четное и z четное, то y вычисляется как разница между 1 и квадратным корнем из разности x и z.
- Вывод значений переменных x и y с помощью функции printf.
- Ожидание нажатия клавиши с помощью функции getch.
Значения переменных:
- i, k, r - используются в цикле для вычисления значения y.
- x - введенное пользователем значение.
- y - результат вычислений.
- z - ближайшее целое число, меньшее или равное x.
- printf - функция вывода информации на экран.
- scanf - функция ввода информации с клавиатуры.
- getch - функция ожидания нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д