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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2015, 11:14   #1
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию Изменение значений в диапазоне. СИ

Подскажите, где можно почитать про методы, которыми можно было бы реализовать следующую функцию

Задан диапазон в виде структуры

Код:
struct _range_ {
             float min;
             float max;
}
Необходимо менять значения переменной в рамках этого диапазона с шагом delta по принципу "пилы". Доходим до max, начинаем идти к min и обратно

Пока додумался завести переменную-флаг и переключать ее, если

Код:
val>a.min
Но тогда значения будут выходить за диапазон, что в корне неверно.
Подтолкните, пожалуйста
Bayern_M вне форума Ответить с цитированием
Старый 14.04.2015, 11:50   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
while(1){
  for(val = min; val < max; val += step) {}
  for(val = max; val > min; val -= step) {}
}
p51x вне форума Ответить с цитированием
Старый 14.04.2015, 12:01   #3
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
while(1){
  for(val = min; val < max; val += step) {}
  for(val = max; val > min; val -= step) {}
}
Изящно!

А мой вариант имеет право на жизнь?

Код:
float pila (float val,float delta,struct _range_ *a)
{
	int n;

	if (val==a->max)
		{
			n=0;
		}
	else if (val==a->min)
		{
			n=1;
		}

	if (n)
		{
			val+=delta;
		}
	else
		{
			val-=delta;
		}

	return val;
}
Bayern_M вне форума Ответить с цитированием
Старый 14.04.2015, 14:00   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну вы хотя бы n статической сделали, а то каюк вашей пиле. Если на ваш код натравить хороший компилятор может и прокатит, ну или если вы не гонитесь за оптимизацией.
p51x вне форума Ответить с цитированием
Старый 14.04.2015, 14:21   #5
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну вы хотя бы n статической сделали, а то каюк вашей пиле. Если на ваш код натравить хороший компилятор может и прокатит, ну или если вы не гонитесь за оптимизацией.
Посидел еще

Код:
float pila (float val,float delta,struct _range_ a)
{

	if (val<a.min || val>a.max)
		{
			delta=(-1)*delta;
		}

	val+=delta;

	return val;
}
Проблема осталась одна. Никак не изменяется статически объявленная delta. Поэтому на входе она всегда одна и та же, хотя за вызов функции мы сменили знак.

Как можно учесть этот нюанс?
Bayern_M вне форума Ответить с цитированием
Старый 14.04.2015, 15:49   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Передавать ссылку или указатель на дельту
p51x вне форума Ответить с цитированием
Старый 14.04.2015, 19:56   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Передавать ссылку или указатель на дельту
ещё круче - цикл внутри функции, а в цикле - callback!
мильярд индусов просто обзавидуются от такого мегакода, к бабке не ходи.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL выбрать записи в диапазоне времени которых нет в другом диапазоне Yuran БД в Delphi 6 11.03.2015 17:18
Отследить последнее изменение в диапазоне strannick Microsoft Office Excel 4 28.03.2012 20:57
Расчет в заданом диапазоне значений V_Boka Microsoft Office Excel 1 20.04.2011 17:48
Расчет значений функций в указанном диапазоне изменения аргумента и параметра. aijan Помощь студентам 1 27.11.2009 07:52
Работа с фильтром и счет уникальных значений в диапазоне necton Microsoft Office Excel 2 19.02.2009 12:40