роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Без описания
nestandart Супермодератор Post Id



Супер-модератор


Сообщений всего: 1490
Дата рег-ции: Сент. 2010  



Вот сижу и думаю как научить программу различать четные и не четные числа.
Должна быть какая то простая арифметическая последовательность результат которой будет либо 1 либо 0 (зависит от того четное первоначальное число или нет).
Перебираю варианты , но что то пока ничего.

Очень не хочется городить говнокод

что то вроде

if(a==1&&a==3&&a==5&&a==7&&a==9)
{
действие 1
}

if(a==2&&a==4&&a==6&&a==8&&a==10)
{
действие 2
}

Что подскажите ?
 
 Top
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



Просто есть способ деления с остатком. А потом проверять этот остаток, если больше нуля, то число нечетное...
Я так думаю.
(Добавление)
Т.е. я хотел сказать, что делить надо на 2. =)
(Добавление)
Как это в программе на Си выглядит, сейчас не вспомню. Надо операторы вспоминать.
 
 Top
elmot Post Id



Гуру


Сообщений всего: 1141
Дата рег-ции: Дек. 2010  



вы чо, ребята???
CODE:
if(a & 1) {/*odd*/} else {/*even*/}
 
 Top
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



Распишите мне как работает эта конструкция подробно. Пожалуйста. =)
А то я не могу догнать. Понимаю, что для МК, но не понимаю (a & 1).
Забыл просто.
 
 Top
nestandart Супермодератор Post Id



Супер-модератор


Сообщений всего: 1490
Дата рег-ции: Сент. 2010  



Цитата:
А то я не могу догнать. Понимаю, что для МК, но не понимаю (a & 1).

Аналогично. В чистом СИ я не очень ориентируюсь.
 
 Top
elmot Post Id



Гуру


Сообщений всего: 1141
Дата рег-ции: Дек. 2010  



СКАЗОЧНИК пишет:
Распишите мне как работает эта конструкция подробно. Пожалуйста. =)
А то я не могу догнать. Понимаю, что для МК, но не понимаю (a & 1).
Забыл просто.

Это любой Си.
& - битовая операция И (не путать с логической И && ). a & 1 - младший бит, т.е. остаток от деления на 2.
1 - трактуется Си как true; 0 - как false.

(Отредактировано автором: 23 Октября, 2012 - 17:50:15)

 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



Я так делал. Может конечно не оптимально, но работает.
CODE:
if(a%2 ==1){/*odd*/} else {/*even*/}
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



а на си никак нельзя нулевой бит байта проверить?
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



elmot написал о проверке нулевого бита.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



В GameLogo вот так Голливудская улыбка
чету = round (у/2) -у/2
четх = round (х/2) -х/2
чет = четх+чету

пусть четх =0 ', это я уже для каких-то своих нужд четность декартовых координат вычислял, не помню уже.
 
 Top
anar Post Id



Главнокомандующий


Сообщений всего: 441
Дата рег-ции: Июнь 2011  



nestandart пишет:
Вот сижу и думаю как научить программу различать четные и не четные числа.

Если для ардуино, то все очень просто:
CODE:

if(a % 2 > 0) // если a нечетное число, то что-то делаем.

(Отредактировано автором: 28 Октября, 2012 - 14:47:30)

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



в ардуино есть опретаор % обозначающий четность?
В Си такого не было, ...
(Добавление)
nest а переполнение?
Вот я и боюсь что виртуальная машина GL с этим не справляется. Вспомнил я зачем четность считал, сейчас еще раз проверю и выдам создателям чтоб бошки не путали... Замешательство
 
 Top
elmot Post Id



Гуру


Сообщений всего: 1141
Дата рег-ции: Дек. 2010  



% - это оператор остатка от деления. Есть в любом С
 
 Top
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



Вот про это я и писал. =) Про оператор "%"!!!! Просто забыл. После этого оператора остается только остаток от деления. Его и проверяем на 0. Если ноль, значит четное! =)
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



или минус четное, простите, если вам не знакомо разностороннее стремление к минимуму
 
 Top
Страниц (1): [1]
« Алгоритмы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru