График,по заданному х вычислить у(похоже на сиськэ) - C (СИ)
Формулировка задачи:
дан график, представлен на прикрепленном файле.
Написать программу которая вычисляет у, по введенному х.
дано условие
Я вот нашел y промежуточный вариант,но он не правильный.
У кого нибудь есть какие мысли как написать такую прогу???!!! Помогите пожалуйста!
#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(); }
Решение задачи: «График,по заданному х вычислить у(похоже на сиськэ)»
textual
Листинг программы
#include <iostream> #include <math.h> using namespace std; int where(int x) { int k=1; while(true) { if(k-1<=x && x<=k && !(k%2)) return 1; if(k-1<=x && x<=k && (k%2)) return 2; k++; } } int main() { float x; cout<<" X="; cin>>x; if(x<0) cout<<" No solutions."; else { int re=where(x); x-=floor(x); cout<<re<<" "<<x; cout.precision(4); if(re==1) cout<<" Y="<<(x*x); if(re==2) cout<<" Y="<<1-(x*x); } cout<<endl; system("pause"); return 0; }
Объяснение кода листинга программы
В этом коде:
- Находится целочисленная часть от введенного значения x (x - floor(x)).
- Вычисляется значение y в зависимости от результата функции where(x):
- если where(x) равно 1, то y = x*x.
- если where(x) равно 2, то y = 1-x*x.
- Выводится значение y на экран.
Код решает графическую задачу: по заданному значению x вычисляет соответствующее значение y на графике. Функция where(x) используется для определения типа кривой, которую нужно нарисовать в зависимости от значения x.
Для работы кода необходимо подключение заголовочных файлов iostream и math.h.
В функции main() вводится значение x с помощью функции cin, вычисляется значение y и выводится на экран с помощью функции cout. Значение x вычитается на целую часть (x - floor(x)) перед вычислением y.
Если значение x отрицательное, выводится сообщение
No solutions.
. Функция where(x) используется для определения значения re, которое будет использоваться в функции main() для вывода соответствующего значения y.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д