Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2010, 11:52   #1
Krezol
 
Регистрация: 12.02.2010
Сообщений: 6
По умолчанию с++,периодическая функция

хм...народ,подкиньте идейку плз)
как описать функцию, вычисляющую значение периодической функции в произвольной точке на все числовой прямой?
к примеру период равен 2...на отрезке (-1,0) значение функции x+1,а на (0,1) значение -x+1...

собственно ,реализовать я это смогу,а вот идейка не прёт(..хотя вроде задачка легкая...
Krezol вне форума Ответить с цитированием
Старый 24.02.2010, 12:48   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

идея следующая: рекурсивное приведение аргумента на отрезок (-1;1)
и ее реализация
Код:
function period_func(x: real): real;
const 
  period=2;
begin
  if x<-1 then result:=period_func(x+period)
  else if x>1 then result:=period_func(x-period)
  else if x>0  then result:=-x+1
  else result:=x+1;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.02.2010, 13:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то типа
Код:
void fun(){
 for(float x=-1;x<=1;x+=0.1){
  y=((x<0)?x:-x)+1;
 }
}
Не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2010, 14:39   #4
Krezol
 
Регистрация: 12.02.2010
Сообщений: 6
По умолчанию

хм..ну это как бы понятно,но как это сделать на всей числовой прямой??
Krezol вне форума Ответить с цитированием
Старый 24.02.2010, 23:18   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
сделать на всей числовой прямой?
делается как и в математике
последовательным приведением аргумента x в заданный (-1;1) диапазон путем +/-perid
Код:
function calcx(x:real): reak
begin //вычисление приведенного аргумета
result:=x;
while true do
if result<-1 then result:=result+period
else if result>1 then result:=result-peroid
else break;
end;
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 24.02.2010 в 23:26.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция NeosPasha Помощь студентам 0 25.01.2010 13:01
Функция SL1CK Помощь студентам 3 07.06.2009 17:36
ИФ функция fatal_err0r Microsoft Office Excel 2 18.03.2009 17:05
Функция в VB asd48 Помощь студентам 1 25.12.2008 23:29
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50