IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> case of + DayOfTheWeek, неработает
сообщение
Сообщение #1


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


есть урывок <<прблемного>> кода...
case DayOfTheWeek(Now) of
'1' : begin lgr:= 0; pgr:=7; end
'2' : lgr:=-1; pgr:=6;
'3' : lgr:=-3; pgr:=5;
'4' : lgr:=-4; pgr:=4;
'5' : lgr:=-5; pgr:=3;
'6' : lgr:=-6; pgr:=2;
'7' : lgr:=-7; pgr:=1;
end;

наверное надо раставить блоки... но все равно не работает...
заранее благодарен.

P.S. может case ищё эти типы не обрабатывает...

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






DayOfTheWeek возвращает Integer, а не Char ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 3.03.2007 18:16) *

DayOfTheWeek возвращает Integer, а не Char ...

а где выход?
может надо както приабразовывать(неявное преобразование), а как?


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Цитата
наверное надо раставить блоки... но все равно не работает...

Конечно же повсюду поставить begin и end

case DayOfTheWeek(Now) of
'1' : begin lgr:= 0; pgr:=7; end;
'2' : begin lgr:=-1; pgr:=6; end;
'3' : begin lgr:=-3; pgr:=5; end;
'4' : begin lgr:=-4; pgr:=4; end;
'5' : begin lgr:=-5; pgr:=3; end;
'6' : begin lgr:=-6; pgr:=2; end;
'7' : begin lgr:=-7; pgr:=1; end;
end;





--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Bokul @ 3.03.2007 18:18) *

Конечно же повсюду поставить begin и end

а как с типами?


Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
а где выход?


case DayOfTheWeek(Now) of
1 : begin lgr:= 0; pgr:=7; end;
2 : begin lgr:=-1; pgr:=6; end;
3 : begin lgr:=-3; pgr:=5; end;
4 : begin lgr:=-4; pgr:=4; end;
5 : begin lgr:=-5; pgr:=3; end;
6 : begin lgr:=-6; pgr:=2; end;
7 : begin lgr:=-7; pgr:=1; end;
end;

?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 3.03.2007 18:20) *

...?

благодарю. это мне и надо было...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Мне не совсем понятно, зачем здесь кейс. В данном конкретном случае можно обойтись

DOTW := DayOfTheWeek(Now)
if (DOTW >= 1) and (DOTW <= 7) then begin
Lgr := 1 - DOTW - byte(DOTW > 2);
Pgr := 8 - DOTW;
end;

.

Сообщение отредактировано: TarasBer -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






if (DOTW >= 1) and (DOTW <= 7) then begin
то есть, возможны и другие варианты? blink.gif Тогда пример в студию, КОГДА DOTW не будет попадать в интервал 1 .. 7 ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Это я перестраховался... Если убрать иф, бегин и енд, то код только выиграет, сократившись ещё на 2 строчки.

Сообщение отредактировано: TarasBer -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(TarasBer @ 3.03.2007 18:44) *

Мне не совсем понятно, зачем здесь кейс. В данном конкретном случае можно обойтись

у меня были подобные строчки...
lgr := 1 - DayOfTheWeek(Now);
pgr := lgr + 7;

но позже возникла необходимость вставлять в действия еще операторы(в примере они не приведины, для краткости...) + читабельность, сейчас необходимость пропала (или еще нет:) ),вобщем в разработке оба варианта...

P.S. что делает строчка
- byte(DOTW > 2)



--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


DOTW > 2 - это выражение булевского типа. Оно занимает один байт. Причём этот байт равен 1, если выражение верно и 0 если нет. Это обычная ретипизация, ничего особенного.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(TarasBer @ 3.03.2007 19:32) *

ничего особенного

а зачем оно...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(compiler @ 3.03.2007 20:46) *

а зачем оно...

А затем, чтобы вместо вычитания из числа булевской переменной (что запрещено синтаксисом), вычитать из числа число, полученное из булевской переменной.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(TarasBer @ 3.03.2007 20:01) *

А затем, чтобы вместо вычитания из числа булевской переменной (что запрещено синтаксисом), вычитать из числа число, полученное из булевской переменной.

благодарю...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 12:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name