Показать сообщение отдельно
Старый 27.12.2004, 11:45     # 16
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
bad3p
Проще переделать твою прогу, поскольку у меня нет ни времени, ни желания искать ошибку в своей. Собственно, с самого начала я и хотел написать именно так, но не мог вспомнить формулу. Как работает эта формула и кто ее вывел - ума не дам Держи свой вариант с моими добавлениями:
Код:
uses
  crt;

const
  day_weeks:  array [0..6] of string = { массив с днями недели }
    ('VOS', 'PN', 'VT', 'SRE', 'CHE', 'PIA', 'SUB');

type
  years  = 0..2100; { тип-диапазон: годы }
  months = 1..12;   { тип-диапазон: месяцы }
  days   = 1..31;   { тип-диапазон: дни }

var
  year:  years;   { год }
  month: months;  { месяц }
  day:   days;    { день }
  r,              { результат }
  p:     integer; { дополнительная переменная }

begin
  clrscr;
  repeat { вводим номер года }
    write ('year  (0-2100): '); readln(year);
  until (year >= 0) and (year < 2101);
  year := year mod 100; { вычисляем номер года в столетии }
  p    := year div 100; { вычисляем столетие }
  repeat { вводим номер месяца }
    write ('month (1-12):   '); readln(month);
  until (month > 0) or (month < 13);
  { делаем март - первым месяцем, а январь и февраль перемещаем в конец года }
  if month >= 3 then month := month - 2 else month := month + 10;
  repeat { вводим день }
    write ('day   (1-31):   '); readln(day);
  until (day > 0) and (day < 32);
  { вычисляем номер дня недели по формуле }
  r := (day + trunc(0.2 * (13 * month - 1)) + year + trunc(year / 4) +
       trunc(p / 4) - 2 * p) mod 7;
  { выводим название дня недели из массива }
  writeln('day of week:    ', day_weeks[r]);
  readkey;
end.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!

Последний раз редактировалось Ghost; 27.12.2004 в 11:50. Причина: склероZzz...
Ghost вне форума