Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2010, 21:32   #1
Юлия-студентка
Новичок
Джуниор
 
Регистрация: 22.06.2010
Сообщений: 3
Вопрос

у меня проблема с задачей в vb, дана следующая строчка программы, нужно обьяснить для чего нужны скобки
If (KeyASCii=ASC("/")) or (KeyASCii=ASC("*"))
подскажите пожалуйста, в каких случиях скобки ставятся, для чего, и когда их ставить не обязательно??????
Жду ответа, завтра экзамен!!!!

Цитата:
Сообщение от Юлия-студентка Посмотреть сообщение
у меня проблема с задачей в vb, дана следующая строчка программы, нужно обьяснить для чего нужны скобки
If (KeyASCii=ASC("/")) or (KeyASCii=ASC("*"))
подскажите пожалуйста, в каких случиях скобки ставятся, для чего, и когда их ставить не обязательно??????
Жду ответа, завтра экзамен!!!!
Почему KeyASCii пишется в скобках???
важен любой ответ!

Последний раз редактировалось Stilet; 25.06.2010 в 12:11.
Юлия-студентка вне форума Ответить с цитированием
Старый 22.06.2010, 22:18   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Можно и так написать:
Код:
If KeyASCii=ASC("/") or KeyASCii=ASC("*") then
Скобки тут не нужны, но и не мешают.
Скобки были бы нужны, если оператор OR имел бы больший приоритет, чем оператор сравнения =
А это не так, поэтому сначала выполняются 2 сравнения KeyASCii=ASC("/") и KeyASCii=ASC("*"),
и лишь потом вычисляется результат выражение1 or выражение2
EducatedFool вне форума Ответить с цитированием
Старый 22.06.2010, 22:42   #3
Юлия-студентка
Новичок
Джуниор
 
Регистрация: 22.06.2010
Сообщений: 3
По умолчанию

спасибо за ответ!

хотя я не совсем разобралась, хочу подробнее обьяснить задачу...
скачала программу калькулятор на vb, но преподователь спрашивает для чего поставлены скобки
.....
if (keyascii=asc("/")) or (keyascii=asc("*)) or (keyascii("+")) or (keyascii=asc("-")) then
......
я говорила ему, что можно писать без скобок, но он требует обьяснения в каком случае написание скобок необходимо, а в каком нет????
Юлия-студентка вне форума Ответить с цитированием
Старый 23.06.2010, 09:37   #4
romlo
Пользователь
 
Аватар для romlo
 
Регистрация: 21.06.2010
Сообщений: 49
По умолчанию

Скобками расставляют приоритет вычисления( то есть что вычислить в первую очередь).
К примеру в ((f=n and n=k) or f=k) сначала вычисляется f=n, потом n=k,
потом (f=n and n=k) и потом ((f=n and n=k) or f=k).
А в примере (f=n and (n=k or f=k)) сначала вычисляется (n=k or f=k), а только потом f=n.
Если выражение одно (f=n) то скобок не надо. В первом примере тоже скобок не надо, потому что and и or имеют одинаковый приоритет вычисления. Это как в математике плюсы и минусы: (2-1)+1=2-1+1,
но 2-(1+1) уже не равно.
Понятно?
romlo вне форума Ответить с цитированием
Старый 23.06.2010, 10:56   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
я говорила ему, что можно писать без скобок, но он требует обьяснения в каком случае написание скобок необходимо, а в каком нет?
Хм... Вопрос хороший...
Про VB не скажу, но в Делфи скобки бывают необходимы когда есть несколько условий - а то Делфи может не правильно понять к чему именно применяются And, Or и подобное...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 23.06.2010, 12:08   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Юлия-студентка Посмотреть сообщение
спасибо за ответ!

хотя я не совсем разобралась, хочу подробнее обьяснить задачу...
скачала программу калькулятор на vb, но преподователь спрашивает для чего поставлены скобки
.....
if (keyascii=asc("/")) or (keyascii=asc("*)) or (keyascii("+")) or (keyascii=asc("-")) then
......
я говорила ему, что можно писать без скобок, но он требует обьяснения в каком случае написание скобок необходимо, а в каком нет????
VB, я изучал довольно давно, могу и ошибаться.
Но помню, примерно такую фишку.
Дело в том, что без скобок - сравнение в if происходит справа налево, а в скобках слев направо.
Поскольку между операторами сравнения стоит "или", то первой будет сравниваться "-" затем "+" и т.д.
Установив скобки, мы тем самым меняем порядок сравнения.
Т.е. сначала идёт "/", затем "*" и т.д.
В принципе, без скобок можно былобы написать операторыв обратном порядке.
По моему так, хотя не совсем уверен..
рифметический приоритет знака "/" выше, чем знака "-".
Поскольку между
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.06.2010, 10:39   #7
Юлия-студентка
Новичок
Джуниор
 
Регистрация: 22.06.2010
Сообщений: 3
По умолчанию

Спасибо всем, кто мне подсказал
Я разобралась, сдала экзамен на 5!
Юлия-студентка вне форума Ответить с цитированием
Старый 25.06.2010, 11:02   #8
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Цитата:
потому что and и or имеют одинаковый приоритет вычисления
все верно расписал, но эта фраза лично меня ввела в ступор. С каких пор and (которое, если проводить аналогию с математикой - умножение) и or (которое сложение) имеют одинаковый приоритет?
Snejnaya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно обьяснение (С++) Olya90 Помощь студентам 1 31.03.2009 15:22
не могу найти как нажать мышку из программы skeletishe Общие вопросы Delphi 5 26.03.2009 20:36
Есть код программы на с++. Нужно обьяснение Alex1991 Помощь студентам 1 16.03.2009 14:37
Не могу найти Handle Edit'а в окне чужой программы nechto Общие вопросы Delphi 32 05.03.2008 19:41
компоннеты в Дельфи, разработка и обьяснение BOBAH13 Общие вопросы Delphi 23 17.03.2007 23:00