|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2010, 21:32 | #1 | |
Новичок
Джуниор
Регистрация: 22.06.2010
Сообщений: 3
|
у меня проблема с задачей в vb, дана следующая строчка программы, нужно обьяснить для чего нужны скобки
If (KeyASCii=ASC("/")) or (KeyASCii=ASC("*")) подскажите пожалуйста, в каких случиях скобки ставятся, для чего, и когда их ставить не обязательно?????? Жду ответа, завтра экзамен!!!! Цитата:
важен любой ответ! Последний раз редактировалось Stilet; 25.06.2010 в 12:11. |
|
22.06.2010, 22:18 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Можно и так написать:
Код:
Скобки были бы нужны, если оператор OR имел бы больший приоритет, чем оператор сравнения = А это не так, поэтому сначала выполняются 2 сравнения KeyASCii=ASC("/") и KeyASCii=ASC("*"), и лишь потом вычисляется результат выражение1 or выражение2 |
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 |
Пользователь
Регистрация: 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) уже не равно. Понятно? |
23.06.2010, 10:56 | #5 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Про VB не скажу, но в Делфи скобки бывают необходимы когда есть несколько условий - а то Делфи может не правильно понять к чему именно применяются And, Or и подобное...
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|
23.06.2010, 12:08 | #6 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Но помню, примерно такую фишку. Дело в том, что без скобок - сравнение в if происходит справа налево, а в скобках слев направо. Поскольку между операторами сравнения стоит "или", то первой будет сравниваться "-" затем "+" и т.д. Установив скобки, мы тем самым меняем порядок сравнения. Т.е. сначала идёт "/", затем "*" и т.д. В принципе, без скобок можно былобы написать операторыв обратном порядке. По моему так, хотя не совсем уверен.. рифметический приоритет знака "/" выше, чем знака "-". Поскольку между
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
25.06.2010, 10:39 | #7 |
Новичок
Джуниор
Регистрация: 22.06.2010
Сообщений: 3
|
Спасибо всем, кто мне подсказал
Я разобралась, сдала экзамен на 5! |
25.06.2010, 11:02 | #8 | |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 219
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно обьяснение (С++) | 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 |