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

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

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2012, 16:20   #1
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
Смущение Ошибка синтаксиса

Всем здравствуйте

На вот такую строчку в макросе:
(в скобках сравниваются числа в массиве Х, но не суть...)
...

if (x(0,8)<0.8*x(0,9)) Or (x(0,10)<0.8*x(0,9)) Or (x(0,12)<0.8*x(0,9)) Or (x(0,14)<0.8*x(0,9)) then

exit sub
end if
...

при попытке запуска, возникает ошибка в этой самой строке:

Type mismatch: `[string: "TrueTrueTrueTrue"]

Вопрос: в чом проблема?
Он мне сказал: «Держись, браток!» - И я держался.
Соффи вне форума Ответить с цитированием
Старый 27.03.2012, 16:36   #2
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
По умолчанию

одно из ИЛИ обязательно не должно выполнятся?
или же должно выполнятся хоть одно?..

(если что, то у меня они все тут НЕвыполняются, то есть (x(0,8) БОЛЬШЕ ЧЕМ 0.8*x(0,9)), и так во всех перебираемых неравенствах )
Он мне сказал: «Держись, браток!» - И я держался.
Соффи вне форума Ответить с цитированием
Старый 27.03.2012, 16:44   #3
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

В Вашем случае хоть один должен быть не верным. Учите мат. логику.
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2012, 17:09   #4
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
По умолчанию

дело в том, что я заранее не знаю какими они будут...
что Вы посоветуете мне сделать? что использовать вместо Or?
(& - И тоже не подходит, так как 4 раза пишет Фальш...)
Он мне сказал: «Держись, браток!» - И я держался.
Соффи вне форума Ответить с цитированием
Старый 27.03.2012, 17:34   #5
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

PHP код:
if (((x(0,8)<0.8*x(0,9)) Or (x(0,10)<0.8*x(0,9)) Or (x(0,12)<0.8*x(0,9)) Or (x(0,14)<0.8*x(0,9))) || ((x(0,8)<0.8*x(0,9)) && (x(0,10)<0.8*x(0,9)) && (x(0,12)<0.8*x(0,9)) && (x(0,14)<0.8*x(0,9)))) then 
Из мат.логики. При хотя-бы одном правильном условии.
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2012, 18:30   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от spein Посмотреть сообщение
PHP код:
if (((x(0,8)<0.8*x(0,9)) Or (x(0,10)<0.8*x(0,9)) Or (x(0,12)<0.8*x(0,9)) Or (x(0,14)<0.8*x(0,9))) || ((x(0,8)<0.8*x(0,9)) && (x(0,10)<0.8*x(0,9)) && (x(0,12)<0.8*x(0,9)) && (x(0,14)<0.8*x(0,9)))) then 
Из мат.логики. При хотя-бы одном правильном условии.
Код:
2*b||!2*b
гениально. Не проще было написать тогда уж
Код:
if (true) then ...
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 27.03.2012, 19:16   #7
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

И что это означает?)) ничего не понял) в чем я не прав?
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2012, 19:49   #8
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Ребята, это vbscript

Соффи, попробуй так. Хотя на первый взгляд твоя строка в порядке. Уверена, что ошибка именно там? В массиве точно числа?)
Код:
If x(0,8) < (0.8 * x(0,9)) Or x(0,10) < (0.8 * x(0,9)) Or x(0,12) < (0.8 * x(0,9)) Or x(0,14) < (0.8 * x(0,9)) Then
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 27.03.2012, 20:09   #9
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от nerv Посмотреть сообщение
Ребята, это vbscript
чуть не спутал с ассемблером // енд оф сарказм

Цитата:
Сообщение от spein Посмотреть сообщение
И что это означает?)) ничего не понял) в чем я не прав?
вокруг твоего "или" стоят два взаимоисключающих условия, все равно что:
true||false
2*b||!2*b
to be or not to be
быть или не быть
с точки зрения философии тяжкое умственное рассуждение.
с точки зрения бинарной логики — всегда положительный ответ: еще одно доказательство бесполезности философии как науки, ровно как и этого условия.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 27.03.2012, 22:12   #10
Соффи
Пользователь
 
Аватар для Соффи
 
Регистрация: 20.12.2011
Сообщений: 33
По умолчанию

NERV, рада ответу ) спасибо, я завтра попробую!!

почему я думаю что в этой строке? - а сама программа моя для которой макрос при его запуске указывает в какой строке ошибка - в 58-ой, я перенеся макрос в Нотепад увидела что это вот эта самая строчка (там же сбоку они все пронумерованы, очень удобно); ну и увидев четыре слова подряд "TrueTrueTrueTrue" сомнений не осталось, так как я в ней 4 числа перебираю
Он мне сказал: «Держись, браток!» - И я держался.
Соффи вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка синтаксиса в Acceess Droid БД в Delphi 3 06.06.2012 10:32
ошибка синтаксиса MetR Общие вопросы Delphi 11 13.01.2012 12:40
Ошибка синтаксиса sql roxy1807 Помощь студентам 2 07.04.2011 20:57
Ошибка синтаксиса Santosh Microsoft Office Access 2 18.08.2010 00:15
Ошибка синтаксиса в предложении FROM general_krasnov БД в Delphi 7 04.06.2010 17:39