Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Что не так в коде?


Что не так в коде?

Сообщений 1 страница 8 из 8

1

Число (cislo) надо разобрать на единицы, десятки и сотни.
переменные объявлены так: Dim Cislo As Word , Cifri(4) As Byte
Вот код в отладчике и то, что он считает:
http://i.piccy.info/i5/76/38/593876/q1_800.jpg

0

2

Поправьте меня, если я не прав, но получается следующее: переменная сначала записывается в ячейку результата и лишь затем к ней применяется математическое действие. При этом, если размер результата меньше, то ничего хорошего не происходит. Вот код, который у меня заработал:

Dim Cislo As Integer , Zzz As Integer, Cifri(4) As Byte
Zzz = Cislo \ 100
Cifri(1) = Zzz
Zzz = Cislo \ 10
Cifri(2) = Zzz Mod 10
Zzz = Cislo Mod 10
Cifri(3) = Zzz

0

3

я преобразовал число в символы, потом через mid вырезал

0

4

Александр Д. написал(а):

я преобразовал число в символы, потом через mid вырезал

А потом пишешь что размер генерируемого кода слишком большой!

0

5

про mid:
я просил помощи в аналогичной проблемой преобразования, мне никто не помог...
делал, как сумел... :(

про прожорливость!
очень!
хотя всё и влезло, решил переписать всё под FastAVR и в чистую сравнить

0

6

Я тоже думал про преобразование в текст, но это заведомо расточительный вариант. Сейчас я просто объявил Cifri тоже как Integer  и избавился от промежуточной переменной.
Все бы ничего, но я уже второй раз спотыкаюсь о некорректное поведение компилятора с переменными.

0

7

а можно пример некорректного кода?
и укажите, пожалуйста, версию компилятора

0

8

Вот здесь я жаловался на жизнь :  )

Версия 1.11.9.8

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Что не так в коде?