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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 17:24   #1
Alen4ik
 
Регистрация: 23.03.2009
Сообщений: 5
По умолчанию Напечатать числа последних четвергов каждого месяца Паскаль

Если не сложно, помогите пожалуйста.

Известно название дня недели 1-е января. Напечатать все числа, соответствующие последним четвергам каждого месяца с указанием название месяца. В году 365 дней.
Alen4ik вне форума Ответить с цитированием
Старый 26.03.2009, 00:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не уверен, что Вам поможет данный код.
ибо вычисления достаточно замороченные.
но зато код рабочий

Код:
const
  MonthName : array[1..12] of string =
('Января','Февраля','Марта','Апреля','Мая','Июня','Июля',
'Августа','Сентября','Октября','Ноября','Декабря');  

const DaysInMonth : array[1..12] of integer =
   (31,28,31,30,31,30,31,31,30,31,30,31);


var i,D1, DCur : integer;
begin
  WriteLn;
  WriteLn('Введите номер дня недели 1-го января (1=понедельник, 2=вторник,..7=воскресение)');
  ReadLn(D1);
  if (D1<1) or (D1>7) then begin
    WriteLn('Вы ввели недопустимый день недели!');
    WriteLn('нечего делать - выходим!');
    Halt(1)
  end;
  
  WriteLn('четвергами в этом году будут: ');
  for i:=1 to 12 do begin
    {вычисляем дату четверга через 5 недель с учётом поправки на то,
        что 1-е число D1 день недели}
    DCur := 1 + 35 - (D1 - 4);
    while DCur > DaysInMonth[i] do DCur := DCur - 7;
    WriteLn(DCur:1,' ', MonthName[i]);
    {теперь выясним, каким днём недели будет 1-е число следующего месяца}
    D1 := ((D1 + DaysInMonth[i] - 28 - 1) mod 7) + 1;
  end;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2009, 15:44   #3
Alen4ik
 
Регистрация: 23.03.2009
Сообщений: 5
По умолчанию

Большое спасибо. Очень даже поможет!
Alen4ik вне форума Ответить с цитированием
Старый 07.11.2013, 01:12   #4
TheLiv
Новичок
Джуниор
 
Регистрация: 07.04.2012
Сообщений: 1
По умолчанию

Помогите дорогие форумчани, а как должен выглядить алгоритм, если мы ищем не последний четверг и все четверги в месяце, в году

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не уверен, что Вам поможет данный код.
ибо вычисления достаточно замороченные.
но зато код рабочий

Код:
const
  MonthName : array[1..12] of string =
('Января','Февраля','Марта','Апреля','Мая','Июня','Июля',
'Августа','Сентября','Октября','Ноября','Декабря');  

const DaysInMonth : array[1..12] of integer =
   (31,28,31,30,31,30,31,31,30,31,30,31);


var i,D1, DCur : integer;
begin
  WriteLn;
  WriteLn('Введите номер дня недели 1-го января (1=понедельник, 2=вторник,..7=воскресение)');
  ReadLn(D1);
  if (D1<1) or (D1>7) then begin
    WriteLn('Вы ввели недопустимый день недели!');
    WriteLn('нечего делать - выходим!');
    Halt(1)
  end;
  
  WriteLn('четвергами в этом году будут: ');
  for i:=1 to 12 do begin
    {вычисляем дату четверга через 5 недель с учётом поправки на то,
        что 1-е число D1 день недели}
    DCur := 1 + 35 - (D1 - 4);
    while DCur > DaysInMonth[i] do DCur := DCur - 7;
    WriteLn(DCur:1,' ', MonthName[i]);
    {теперь выясним, каким днём недели будет 1-е число следующего месяца}
    D1 := ((D1 + DaysInMonth[i] - 28 - 1) mod 7) + 1;
  end;
end.
TheLiv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависимость чисел дней месяца от месяца valerij Microsoft Office Excel 10 14.11.2008 11:01
Напечатать все числа Пифагора меньше N Санячос Помощь студентам 5 18.01.2008 18:21
Вывод числа месяца (Pacal) [Smarik] Помощь студентам 13 18.01.2008 03:44
Консолидация в зависимости от числа месяца Smile E Microsoft Office Excel 6 11.09.2007 21:24