График,по заданному х вычислить у(похоже на сиськэ) - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Находится целочисленная часть от введенного значения x (x - floor(x)).
  2. Вычисляется значение y в зависимости от результата функции where(x):
    • если where(x) равно 1, то y = x*x.
    • если where(x) равно 2, то y = 1-x*x.
  3. Выводится значение 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.

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


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

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

15   голосов , оценка 4.067 из 5
Похожие ответы