Большое число
- Войдите на сайт для отправки комментариев
Вс, 10/03/2013 - 18:27
Никогда при написании скетчей не использовал большие числа.
Сегодня вычисляя средне квадратичное значение с аналогового входа
столкнулся с непонятным для меня случаем.
При возведении в квадрат у меня получаются разные числа
взависимости от типа переменной.
unsigned long x=0; void setup() { Serial.begin(9600); } void loop() { x=sq(analogRead(0)); Serial.println(x); }
Подставлял все варианты переменной - получал разные значения - но все не правильные.
Попробывал так:
unsigned long x=0; void setup() { Serial.begin(9600); } void loop() { x=sq(500*500); Serial.println(x); }
То-же самое
В чем проблема?
http://arduino.ru/forum/programmirovanie/otschet-vremeni-posle-vklyuchen...
Спасибо!
Завтра проверю.
В ссылке все понятно а как быть когда нужно
выполнить действия с переменными и дополнить L, U, UL . Компилятор ругается.
Например
for (x=200; x=500; x+10)
{
z=z+(sq(x));
}
Serial.println (z);
Вставка программного кода в тему/комментарий
Как ругается, что ругается - неведомо. Взять ваш код и у себя посмотреть - нельзя так как это огрызок кода.
бесконечный цикл. никогда не закончится (всматривайтесь в третий параметр). UPD: вернее пройдет один раз, но проблема там же, UPD2: после того как вы изменили ;x=10) на ;x+10) - первый апдейт потерял смысл. Теперь это точно бесконечный цикл. UPD3: хотя нет. в любом случае бесконечный. x=500 - тоже проблема. Читайте for , плюс == (и вообще весь раздел "операторы сравнение"), ++ и += (а лучше весь раздел "унарные операторы"), а также = (assignment) . Да, похорошему со всем разделом Программирование нужно ознакомится. Это и сеть "базовый минимум" обязательный к прочтению.
Почитайте в доке какое максимальное число влазит unsigned long, прикинте не выходит-ли сумма за эти границы (лень сейчас самому считать).
А помочь вам в этих прикидках поможет школьный учебник математики. Например вот:Математика - это просто! 9 - 11 классы. Формулы суммы первой степени, квадратов, кубов первых n натуральных чисел
После этого вы возможно поймете что и sq и цикл с суммой вам не нужен. Все сводится к умножению и делению.
Заодно будете знать ответ на вопрос "зачем программисту математика" ;)
см. UPD3 прошлого поста.