График,по заданному х вычислить у - 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. Список действий:

  1. Запрос на ввод значения переменной x с помощью функции scanf.
  2. Вычисление значения переменной z как ближайшего целого числа, меньшего или равного x.
  3. Если x равно k (четное число), то y присваивается значение 1.
  4. Если x равно r (нечетное число), то y присваивается значение -1.
  5. Если x не является четным или нечетным числом, и z нечетное, то y вычисляется как квадратный корень из разности x и z, с вычетом 1.
  6. Если x не является четным или нечетным числом, и z четное, то y вычисляется как разница между 1 и квадратным корнем из разности x и z.
  7. Если x четное и z нечетное, то y вычисляется как квадратный корень из разности x и z, с вычетом 1.
  8. Если x четное и z четное, то y вычисляется как разница между 1 и квадратным корнем из разности x и z.
  9. Вывод значений переменных x и y с помощью функции printf.
  10. Ожидание нажатия клавиши с помощью функции getch. Значения переменных:
    • i, k, r - используются в цикле для вычисления значения y.
    • x - введенное пользователем значение.
    • y - результат вычислений.
    • z - ближайшее целое число, меньшее или равное x.
    • printf - функция вывода информации на экран.
    • scanf - функция ввода информации с клавиатуры.
    • getch - функция ожидания нажатия клавиши.

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


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

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

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