Никак не могу решить эту задачу скоро сдавать а нечего((((

Ответить
Dashinia
Сообщения: 1
Зарегистрирован: 03 ноя 2009, 23:34

по введенной дате вычислить день, заданный по варианту у меня( 15 дней назад), соблюдая все правила датисчесления, и вывести на экран.
вот что я сделала только что-то не то

{Условие 1}
gotoxy (10,5);
write('По введенной дате вычислить дату 15 дней назад, ');
gotoxy (10,7);
write('соблюдая все правила датоисчисления, и вывести на экран.');
gotoxy (10,22);
write('Нажмите любую клавишу');
readln;
clrscr;
{Решение 1}
WRITE('введите через пробел дату ');
READ(D,N,G);
CASE N OF
1:M:=JAN;
2:M:=FEB;
3:M:=MAR;
4:M:=APR;
5:M:=MAY;
6:M:=JUN;
7:M:=JUL;
8:M:=AUG;
9:M:=SEP;
10:M:=OCT;
11:M:=NOV;
12:M:=DEC
END;

CASE M OF
FEB, MAY,JUL, AUG,OCT,DEC: IF D<15 THEN BEGIN D:=16+D;
IF M=JAN THEN M:=DEC;
IF M=FEB THEN M:=FEB;
IF M=MAY THEN M:=APR;
IF M=JUL THEN M:=JUN;
IF M=AUG THEN M:=JUL;
IF M=OCT THEN M:=SEP;
IF M=DEC THEN M:=NOV end ELSE D:=D-15;
APR, JUN, SEP, NOV: IF D<15 THEN BEGIN D:=15+D;
IF M=APR THEN M:=MAR;
IF M=JUN THEN M:=MAY;
IF M=SEP THEN M:=AUG;
IF M=NOV THEN M:=OCT END ELSE D:=D-15;
JAN: IF D<15 THEN BEGIN D:=16+D; M:=DEC; G:=G-1 END ELSE D:=D-15;
MAR: IF(D<15)AND (G MOD 4<>0) THEN BEGIN D:=13+D; M:=FEB END
ELse if (D<15) AND (G MOD 4=0) then begin D:=14+D; M:=FEB END
ELSE D:=D-15;
END;
WRITE (D:2,' ');
CASE M OF
JAN: WRITE('ЯНВАРЯ');
FEB: WRITE('ФEBPAЛЯ');
MAR: WRITE(' МАРТА');
APR: WRITE('AПPEЛЯ');
MAY: WRITE('MAЯ');
JUN: WRITE('ИЮHЯ');
JUL: WRITE('ИЮЛЯ');
AUG: WRITE('ABГУCTA');
SEP: WRITE('CEHTЯБРЯ');
OCT: WRITE('ОКТЯБРЯ');
NOV: WRITE('НОЯБРЯ');
DEC: WRITE('ДЕКАБРЯ');
END;
WRITELN (G: 5,' ГОДА');
gotoxy (10,22);
write('Нажмите любую клавишу');
readln;
clrscr;
Ответить