Задача с периодической функцией (Си)
Вот мое решение:
#include <math.h>;
#include <conio.h>;
float a,f;
void main()
{
clrscr();
puts("Vvedite a");
scanf("%d",&a);
if (a>1)
{
while (a>1) a=a-2;
}
if (a<-1)
{
while (a<-1) a=a+2;
}
if ((a>=-1) && (a<=0)) f=a+1;
else f=-pow(a,2)+1;
printf("f(a)=%5.5f",f);
getch();
}
Правильно ли я понял суть задания, т.е. правильные ли ответы получаются (вроде бы для отрицательных нет, и для больших чисел программа не очень подходит)? И вообще подскажите какие есть ошибки.
y = sqrt(1*1 - x*x)
а у тебя
y = 1*1 - x*x
1. не вздумай юзать pow для вычисления квкорня;
2. опять таки вместь pow(a,2), лучше пиши a*a;
ЗЫ: по методу пока ничего, а насчет споров о корректности задачи - мало ли было таких задач;)
Значения не будут одинаковы. Если ето у тебя такая парабола, то конечно, но мне по рисунку показалось что ето окружность. Ведь для окружности радиус сразу понятен с рисунка, а для параболи надо степень и коефициент. Через точки (0, 1) и (1, 0) много разных парабол провести можно.
А что, окружность двумя точками однозначно задается?;) А про радиус ты сам сказал -- "показалось". Я лично, такую задачу бы решать отказался.С таким условием.
Я сам только что с политеха и знаю как точно в ВУЗах условия задают и как от них отказаться просто :)
Окружность задается 3-мя точками.
Зная логику преподавателей - по умолчанию ето круг с центром в начале координат и радиусом 1.
2Draconit Можеш конечно уточнить задание у преподавателя, но думаю что он тоже считает ето колом.
Тебя никто не заставляет.
Отказаться от задания и потребовать его переформулировки? Просто. А что, подчиняться во всем логике преподавателей?
Тебя никто не заставляет.
Я вообще, это автору советовал:)
#include <math.h>
#include <conio.h>
void main()
{
double a,f;
clrscr();
puts("Vvedite a");
scanf("%lf",&a);
[COLOR=red]a=fmod(a,2.0);[/COLOR]
if (a<=0) f=a+1;
else f=sqrt(1-a*a);
printf("f(%5.5lf)=%5.5lf",a,f);
getch();
}
Никак не пойму почему просто не вычислить остаток от деления на период (правда есть сомнения насчет точности)?
А за код большое спасибо, помог разобраться!