| 
| 
 | Вопрос # 5 600/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Почемуу меня не компилится простейший код с условием?
 Компилятор стопорится на Then
 Приложение:Переключить в обычный режим procedure TForm1.FormCreate(Sender: TObject);beginif calendar1.Day:=27 and calendar1.Month:=8 and calendar1.Year:=2011thenbegin   end;end;
|  |   Вопрос задал: 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 (статус: Посетитель), 26 августа 2011, 21:38 [#1]:там еще один end; в конце, я не скопировал |  
|   | 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™ (статус: Доктор наук), 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™ (статус: Доктор наук), 27 августа 2011, 14:00 [#6]: Цитата (Толяныч): Компилятор пропустит Попробуй.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Толяныч (статус: 4-ый класс), 27 августа 2011, 14:21 [#7]:Попробовал. Работает. Сейчас придумываю пример, как бы со скобками работало правильно, а без скобок - неправильно. Ладно, заканчиваем. Стартертопик удовлетворен - и ладушки.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |