Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 11:57   #1
Jeffrey_4
 
Регистрация: 21.09.2011
Сообщений: 6
Восклицание Работа с массивами

есть число дней!
В недавно открытой звјздной системе k обитаемых планет. Планеты занумерованы от 1 до k,
при этом чем меньше номер планеты, тем ближе планета находится к звезде. Календарь на каждой
из планет устроен схожим образом: для планеты задано простое число pi ѕоснованиеї календаря.
Неделя на каждой планете состоит из 7 дней, называющихся так же, как и на Земле, месяц из pi
недель, год из pi месяцев.
В календаре существуют также високосные годы. Год является високосным, если его номер де-
лится на (pi)3 или же делится на pi , но не делится на (pi)2 . В високосные годы в отличие от
земных последняя неделя каждого месяца с простым номером (месяца нумеруются с единицы)
состоит из 8 дней после воскресенья снова идјт воскресенье.
Длина суток на всех планетах согласована с земной, то есть понятие ѕте же сутки, что и на
Землеї корректно определено и имеет смысл. Известно, что когда на земле было 1 января 2000
года, на всех k планетах системы был первый день первого месяца первого года, понедельник. Ваша
задача по заданной дате (число, месяц, год) на Земле вычислить, какой день недели будет на каждой
из k планет системы.
нужно найти и вывести название дня недели для каждой из планет!
***********
вот что получилось для невысокосного года:
Код:
for i:=1 to k do
begin
g:=h;repeat;
if g>7*p[i] then g:=g-7*p[i];
if g>7 then g:=g-7;
until g<=7;
writeln(n[g]);
end;

Последний раз редактировалось Stilet; 30.09.2011 в 21:48.
Jeffrey_4 вне форума Ответить с цитированием
Старый 25.09.2011, 13:43   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию по теме Jeffrey_4 задача с планетами и календарями

отет на закрытую тема: http://www.programmersforum.ru/showthread.php?t=166469
Код:
const
  k = 7;
var
 P    : array[1..k] of integer = (3,4,5,6,7,6,8);
 name : array[1..8] of string = ('пн','вт','ср','чт','пт','сб','вск','вск');

 function CalcDayName(Planet : integer; Year, month, day : integer): string;
 var _pi  : integer;
      y,d : integer;
 begin
   result:='error';
   if not (Planet in [1..k]) then exit;
   _pi:=P[Planet];
   if not (month in [1.._pi]) then exit;
   if not (day in [1.._pi*7]) then exit;
   // число лет от 2000-го года
   y:=Year-2000;
   // число дней от 2000-го года
   d := y*(7*_pi*_pi) ; // неделя на каждой планете состоит из 7 дней,
                        // месяц  из pi  недель, год из pi месяцев.
   d := d+month*_pi*7+day; // добавляем от 1.01. текущего года
  // корреткируем дни добавляя в каждый 1 лишний день в высокосном году
  y:=2000;
  while y<Year do
  begin
   d := d + byte((((y div _pi)=0) or ((y div (_pi*3))=0)) and  ((y div (_pi*2))<>0));
   inc(y);
  end;
  d:=d-1;
  //возвращаем день
  result := name[(d mod 7)+1];
 end;
Кадій новичок имеет право но помощь
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 30.09.2011, 15:41   #3
Jeffrey_4
 
Регистрация: 21.09.2011
Сообщений: 6
Злость

Прости, но это что-то не то!!!
Jeffrey_4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами HixoH Общие вопросы C/C++ 7 16.05.2011 21:51
Работа с массивами Neba Общие вопросы Delphi 7 26.11.2008 21:21
Работа с массивами rexec Microsoft Office Excel 12 21.04.2008 13:29