Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 600

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Почемуу меня не компилится простейший код с условием?
Компилятор стопорится на Then

Приложение:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3. if calendar1.Day:=27 and calendar1.Month:=8 and calendar1.Year:=2011
  4. then
  5. begin
  6.  
  7.  
  8.  
  9. end;
  10. end;


Paroonalitik Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Paroonalitik (статус: Посетитель)
Вопрос отправлен: 26 августа 2011, 21:36
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Толяныч

Здравствуйте, Paroonalitik!
И кто так учил операцию сравения делать ?!
:= - оператор присваивания
= - оператор сравнения

if A=B and C=D ....
а не A:=B

Ответ отправил: Толяныч (статус: 4-ый класс)
Время отправки: 26 августа 2011, 21:52
Оценка за ответ: 5

Комментарий к оценке: от черт, блин... это же первый курс....в рот мне ноги. прям самому стыдно.
а веть я действительно не понимал в чем проблема)))) спасибо

Ответ #2. Отвечает эксперт: ANBsoft

Здравствуйте, Paroonalitik!
а если так
if (calendar1.Day=27) and (calendar1.Month=8) and (calendar1.Year=2011) then begin
label2.caption:=\'День российского кино\';
label3.Caption:=\'Опять праздник\';
label3.caption:=\'Ну и тут дата отмечается\';
end;

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 26 августа 2011, 21:54
Оценка за ответ: 4

Комментарий к оценке: до этого я уже сам додумал, когда перебирал в голове основы. но спасибо

Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 27 августа 2011, 14:21; участников в обсуждении: 3.
Paroonalitik

Paroonalitik (статус: Посетитель), 26 августа 2011, 21:38 [#1]:

там еще один end; в конце, я не скопировал
min@y™

min@y™ (статус: Доктор наук), 26 августа 2011, 22:34 [#2]:

Цитата (Толяныч):

if A=B and C=D .... а не A:=B

Эх, чувак... Не ожидал я от тебя такой лажи! Скобки-то где? А 5 баллов получил.
А мне, почему-то, за правильные ответы -1 ставят. Ну что за несправедливость, а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 27 августа 2011, 11:30 [#3]:

Да, умыл....
Ну, мой ответ не то, чтобы неправильный, а не совсем полный :-) Просто давно не пис`ал программ ( у меня творческий отпуск ). В реале я их, конечно, ставлю, хотя на заднем плане маячит мысль : "скобки в if - это Сишный стиль". Но эта мысль неправильная : в Си в скобках все вычисляемое выражение, а здесь только по необходимости расстановки нужного порядка выполнения.
Итак, резьминиируем :
как правильно заметил min@y, выражение должно быть :
if (A=B) and (C=D) ....

Ну а за твою -1 я этому ..... тоже по ж... надавал.


"Кто вчера сказал, что вода кипит при 100гр.? Ты, Вовочка? Правильно. А 90гр., дети, - это прямой угол." (С)
min@y™

min@y™ (статус: Доктор наук), 27 августа 2011, 11:40 [#4]:

Цитата (Толяныч):

а здесь только по необходимости расстановки нужного порядка выполнения.

Ты опять не прав, дружище. Без скобок компилятор такое выражение не пропустит, так как между if и then должно быть логическое выражение. Будет сообщение типа "Operator not applicable with this operand type" или что-то вроде этого, точно не помню.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 27 августа 2011, 13:52 [#5]:

Это детали. Не придирайся к словам. Важно, что выражение будет работать. В конце концов, у меня могло быть

A,B,C,D : boolean ;
A := ......
B := ......
С := ......
.......

if A = B and C ....

Компилятор пропустит, но из-за неправильного порядка выполнения результат будет кривой.
А вообще я никогда не спорю.
min@y™

min@y™ (статус: Доктор наук), 27 августа 2011, 14:00 [#6]:

Цитата (Толяныч):

Компилятор пропустит

Попробуй.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 27 августа 2011, 14:21 [#7]:

Попробовал. Работает. Сейчас придумываю пример, как бы со скобками работало правильно, а без скобок - неправильно.
Ладно, заканчиваем. Стартертопик удовлетворен - и ладушки.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:31
Выполнено за 0.02 сек.