Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите новичку

Автор: Arti 12.09.2007 20:39

 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [ code=pas ] ... [ /code ].



Всем привет.

Вот взялся за обучение Паскаля, решил написать маленькую програмку вычисления Юлианской даты. Но что то не получается у меня unsure.gif Вот алгоритм.

Условимся обозначать:

YYYY - год
ММ - номер месяца
ДД - число месяца(дата)

Если ММ>2, то Y=YYYY и m=ММ
Если ММ=1 или ММ=2, то Y=YYYY-1 и m=MM+12

Находим:
А=INT(Y/100) B=2-A+INT(A/4)

Находим юлианскую дату:
JD=INT(365.25*Y)+INT(30.6001*(m+1))+ДД+1720994.5+B (2)

Вот что я намудрил, не до конца но где начинается оператор else if выдаёт ошибку....

Program JDay;
Var
YYYY,MM,DD, y,m: real;
Begin
Write('Year'); Readln(YYYY);
Write('Month'); Readln(MM);
Write('Day'); Readln(DD);
If MM>2 then
begin
y:=YYYY;
m:=Month;
end
else if MM:=1 or MM:=2 then
begin
y:=YYYY-1;
m:=MM+!12;
End

Помогите Please разобраться почему там ошибка.

Автор: volvo 12.09.2007 21:05

...
else if (MM=1) or (MM=2) then
...
, приоритет операции OR выше чем приоритет операций сравнения, у тебя получалось:

else if MM:=(1 or MM):=2 then
, что является ошибкой...