IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Простой алгоритм
лёшик
сообщение 21.06.2009 10:57
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Народ, прошу помощи, подскажите алгоритм для присваивания возрастающего значения числовой
переменной ( a:=a+1) и при достижении заданного значения aLim уменьшения значения до нуля (a:=a-1),
чтобы в итоге текущее значение циклически колебалось в этих пределах. Цикл задан методом OnTimer.
Заранее спасибо! Понимаю, что листинг такого алгоритма крайне несложен, но для чайника задачка пока что
непосильная))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
sheka
сообщение 21.06.2009 11:20
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


если правильно понял, то
Код

napr:=true;

procedure ontimer;
  ..
  if (napr=true)then
    if(a<alim)then inc(a)
    else napr:=false
  else
    if(a>0)then dec(a)
    else napr:=true;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
лёшик
сообщение 21.06.2009 11:28
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


то есть, вводим логическую переменную napr (направление), которая будет переключать режим цикла между увеличением и уменьшением переменной "а"? Ок, пасибки, ща попробуем прописать))) А выражение if...then...else
допускает внутри себя повторение? If...then.....if.....else - ?

Добавлено через 11 мин.
a какие параметры у функций "inc" и "dec"? Не встречал их в учебниках blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.06.2009 11:40
Сообщение #4


Гость






Не надо никаких логических переменных, достаточно хранить изменение (положительное или отрицательное):
delta := 1; a := 1;
...
procedure ontimer;
begin
if (a <= 0) or (a >= aLim) then delta := -delta;
inc(a, delta);
end;


Добавлено через 38 сек.
Цитата
Не встречал их в учебниках
У тебя Хелпа нет? F1 не нажимается?
 К началу страницы 
+ Ответить 
sheka
сообщение 21.06.2009 11:42
Сообщение #5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


это тоже самое - просто поставил бегин-енд для наглядности.
Код

  if (napr=true)then
    begin
      if(a<alim)then inc(a)
      else napr:=false;
    end
  else
    begin
      if(a>0)then dec(a)
      else napr:=true;
    end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
лёшик
сообщение 21.06.2009 11:42
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


в коллективе ликбез идет семимильными шагами, на три порядка быстрее, чем в одиночку, картина проясняется)))


Добавлено через 2 мин.
Цитата(volvo @ 21.06.2009 11:40) *

Не надо никаких логических переменных, достаточно хранить изменение (положительное или отрицательное):
delta := 1; a := 1;
...
procedure ontimer;
begin
if (a <= 0) or (a >= aLim) then delta := -delta;
inc(a, delta);
end;


Добавлено через 38 сек.
У тебя Хелпа нет? F1 не нажимается?



Хелп в порядке, но несколько он заумный для неграмотного новичка, как правило, остается вне контуров извилин))) wink.gif


Добавлено через 7 мин.

чот у меня индицируются только крайние значения, нет пошагового изменения переменной (((



Цитата(лёшик @ 21.06.2009 11:42) *

в коллективе ликбез идет семимильными шагами, на три порядка быстрее, чем в одиночку, картина проясняется)))
Добавлено через 2 мин.
Хелп в порядке, но несколько он заумный для неграмотного новичка, как правило, остается вне контуров извилин))) wink.gif



Добавлено через 5 мин.
О, уже работает полным ходом, еще раз спасибо ! ! ! ! ! good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 24.06.2025 22:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"