сравнение переменных - Страница 2 - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 3«123»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » сравнение переменных
сравнение переменных
Matrix252005 Дата: Ср, 23.05.2012, 18:10  |                                                                                                                Сообщение # 16
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Ребята, что Вы ерундой занимаетесь???? cool Все можно и оператор IF...THEN...ENDIF прекрасно работает!!!! Можно написать так:

If x > 10 And x < 20 Then
x = 40
EndIf

Можно так: If x > 10 And x < 20 Then x = 40

Можно так: If x > 10 And x < 20 Then x = 40 : Goto Label1

В последнем случае, после выполнения условия, программа перейдет на метку...


THE TRUTH IS OUT THERE.

С уважением, Николай.
ЯНДЕКС Дата: 23.05.2012
anatol Дата: Ср, 23.05.2012, 21:16  |                                                                                                                Сообщение # 17
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Quote (Matrix252005)
Ребята, что Вы ерундой занимаетесь????

А вот и не занимаемся, тем более ерундой biggrin
А поговорить? smile
Если серьезно, то все упирается в правила написания программ, в принципиальности написания и повторения соответственно мануалу, а также
одной из ключевых функциональностей языка - операции цикла и ветвления в программах
rvstar Дата: Пт, 25.05.2012, 16:44  |                                                                                                                Сообщение # 18
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 60
Репутация: 2   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

Quote (Matrix252005)
Нельзя, если условие проверки не выполнится куда идти?

как это - куда идти???? Далее по программе
Matrix252005 Дата: Пт, 25.05.2012, 16:57  |                                                                                                                Сообщение # 19
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Quote (rvstar)
Quote (Matrix252005)
Нельзя, если условие проверки не выполнится куда идти?

как это - куда идти???? Далее по программе

wacko rvstar, я что то не вижу, чтобы я об этом писал!!!!! Конечно простите меня, зрение у меня не ахти, но не до такой же степени...


THE TRUTH IS OUT THERE.

С уважением, Николай.
rvstar Дата: Сб, 26.05.2012, 00:34  |                                                                                                                Сообщение # 20
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 60
Репутация: 2   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

Прошу прощения, я вышесказанное адресовал anatol
anatol Дата: Сб, 26.05.2012, 10:08  |                                                                                                                Сообщение # 21
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Quote (rvstar)
я вышесказанное адресовал anatol

Вот так невнимательность и приводит к "Помогите" smile
Quote
IF (x>10) THEN IF (x<20) THEN quit

Если подпрограмма quit будет сразу после этого выражения? wink
Ладно закончим. Уже читающим мало информации. У меня амбиций нет - сам учусь. И через через что сам проходил на те мысли стараюсь натолкнуть остальных. Простите, что не даю готовых решений - лучше один раз направить, чем всю жизнь подсказывать.
Да и свое решение слаще.
С уважением ко всем форумчанам - Анатолий.

Сообщение отредактировал anatol - Сб, 26.05.2012, 10:10
rvstar Дата: Сб, 26.05.2012, 12:45  |                                                                                                                Сообщение # 22
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 60
Репутация: 2   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

Quote (anatol)
Если подпрограмма quit будет сразу после этого выражения?

quit это не подпрограмма, это метка. А где она будет, должен решить автор программы. Не сочтите за занудство dry

Сообщение отредактировал rvstar - Сб, 26.05.2012, 12:51
dimitriy-bc Дата: Чт, 14.06.2012, 23:42  |                                                                                                                Сообщение # 23
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Всем доброго времени суток. Столкнулся с такой проблемой. Сравнение, записанное в одной строке

If INDICATOR > 100 Then CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 ) Else CYFRA_2 = 0

не работает, а записанное блоком,

If INDICATOR >= 100 Then
CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 )
Else
CYFRA_2 = 0
EndIf

все прекрасно.

Сообщение отредактировал dimitriy-bc - Чт, 14.06.2012, 23:44
mikhail09p Дата: Пт, 15.06.2012, 00:19  |                                                                                                                Сообщение # 24
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 495
Репутация: 10   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Quote (dimitriy-bc)
Всем доброго времени суток. Столкнулся с такой проблемой. Сравнение, записанное в одной строке

If INDICATOR > 100 Then CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 ) Else CYFRA_2 = 0

не работает

Должно заработать, если закончить ENDIF wink
retas Дата: Пт, 15.06.2012, 00:21  |                                                                                                                Сообщение # 25
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Наверное нужно так

If INDICATOR > 100 Then CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 )
Else CYFRA_2 = 0 (после Else может быть нужно smile
EndIf


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
dimitriy-bc Дата: Пт, 15.06.2012, 01:14  |                                                                                                                Сообщение # 26
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Всем доброго времени суток. Столкнулся с такой проблемой. Сравнение, записанное в одной строке
If INDICATOR > 100 Then CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 ) Else CYFRA_2 = 0

не работает, а записанное блоком,
If INDICATOR >= 100 Then
CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 )
Else
CYFRA_2 = 0
EndIf

все прекрасно.
Проблема в том, что CYFRA_2 не обнуляется.

Сообщение отредактировал dimitriy-bc - Пт, 15.06.2012, 01:18
Matrix252005 Дата: Пт, 15.06.2012, 09:47  |                                                                                                                Сообщение # 27
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток.

dimitriy-bc, а Вы пробовали в протеусе проверять по шагово???

Quote (dimitriy-bc)
...не работает, а записанное блоком...

Я тоже это уже заметил и поэтому так не делаю!!! Только в тех случаях, когда идет просто условие без "иначе"... И кстати и Вам советую так не писать (все в одну строчку) читать и построчно проверять хуже!!!!

Если это не военная технология, выложите весь проект, посмотрим "где собака порылась..."


THE TRUTH IS OUT THERE.

С уважением, Николай.
dimitriy-bc Дата: Вс, 17.06.2012, 09:02  |                                                                                                                Сообщение # 28
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Matrix252005, доброго времени суток. Программа абсолютно сырая, на бейсике я только учусь. Любую критику приму с благодарностью.

Добавлено (16.06.2012, 09:56)
---------------------------------------------
Всем доброго времени суток. mikhail09p, и retas, спасибо за ответы. Получилась белиберда с моими сообщениями. Написал первое, оно пропало. Написал второе с коррекцией. Сегодня обнаружил, что первое сообщение есть и даже с ответами. Сейчас попробую ваши рекомендации.

Добавлено (17.06.2012, 09:02)
---------------------------------------------
Всем доброго времени суток. У меня компилируются и полноценно работают только два варианта
‘1)
If INDICATOR >= 100 Then
CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 )
Else
CYFRA_2 = 0
EndIf
‘2)
If INDICATOR >= 10 Then
CYFRA_3 = INDICATOR / 10: INDICATOR = INDICATOR - ( CYFRA_3 * 10 )
Else CYFRA_3 = 0
EndIf

Прикрепления: 7229879.rar(83Kb)
retas Дата: Вс, 17.06.2012, 20:29  |                                                                                                                Сообщение # 29
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Если посмотреть в сторону материала от terrarus http://terrarus.ucoz.ru/proton_plus_ide/index.html , то
выходит что и первый ваш пример должен бы работать добавив двоеточие перед Else, т.е.

If INDICATOR > 100 Then CYFRA_2 = INDICATOR / 100: INDICATOR = INDICATOR - ( CYFRA_2 * 100 ) :Else CYFRA_2 = 0 .


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
dimitriy-bc Дата: Пн, 18.06.2012, 01:41  |                                                                                                                Сообщение # 30
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

retas, я пробовал. Протон выдает ошибку.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » сравнение переменных
Страница 2 из 3«123»
Поиск: