Я не разбираюсь! Нужна помощь! Срочно!
Вот задача:
Известен номер для недели, соответствующий первому января указанного года. Составьте программу, которая запрашивает номер месяца данного года и распечатывает все дни этого месяца, определяя их дни недели.
Пример: 1994, 6 ( то есть 1 января 1994 года - суббота (6 день))
Номер запрашиваемого месяца - 9.
Результат: Сентябрь 1994 года.
ПН 5 12 19 26
ВТ 6 13 20 27
СР 7 14 21 28
ЧТ 1 8 15 22 29
ПТ 2 9 16 23 30
СБ 3 10 17 24
ВС 4 11 18 25
............................
Так вот ты задаешь вопрос как найти дни определенного месяца, определеного года.
Первый шаг - Постановка задачи
Задача у нас : Определение дней недели определеного месяца и определенного года
Второй шаг - Что нужно (какие входные данные) для выполнения задачи
Самое главное что нужно нам знать - Настоящий день недели любого дня, любого месяца и года
(в данном случае ты говоришь "номер дня недели, соответствующий первому января указанного года")
Еще что бы задачу решить конечно надо знать какой месяц и год просматривать (ну это входные параметры)
Третий шаг - Построим алгоритм решения
1. Получаем входные данные
а) год и день недели 1 января
б) необходимый месяц
2. Берем первый день, т.е 1 января
3. Если месяц совпадает с текущим переходим на (7)4. берем следущий день (и вместе с этим увеличиваем день недели на 1)
5. Если месяц кончился берем следуйщий месяц
6. Переходим на (3)
7. Запоминаем текущий день недели и число где-нибудь
8. Берем следущий день
9. Если месяц кончился переходим на (11)
10. Переходим на 7.
11. Все мы запомнили все дни недели и числа указанного месяца, Можно выводить как-нибудь!!
Суть данного сообщения:
Не учись языку программирования(т.е недумай что зная язык ты знаешь все - нет)
ГЛАВНОЕ """""""""""""АЛГОРИТМ""""""""""
И почему ты говоришь, преходим на 7, на 3, на 11? Что все эти числа значат!
Помоги мне напиать полностью решение этой задачи, пожалуйста!
Спасибо за алгоритм, но пойми я и с ним даже не знаю, как это делать!
И почему ты говоришь, преходим на 7, на 3, на 11? Что все эти числа значат!
Помоги мне напиать полностью решение этой задачи, пожалуйста!
С одногруппниками проще будет тебе договориться ;)
Это очень срочно! Я просто погорю, если не выполню этой задачи!!! Пожалуйста, ну есть же люди добрый!!! Пожалуйста...
............................
............................
Так вот ты задаешь вопрос как найти дни определенного месяца, определеного года.
Первый шаг - Постановка задачи
Задача у нас : Определение дней недели определеного месяца и определенного года
Второй шаг - Что нужно (какие входные данные) для выполнения задачи
.............
........
...........
ГЛАВНОЕ """""""""""""АЛГОРИТМ""""""""""
А как на счёт весокосных годов????
К стати я тоже над алгоритмом до-о-о-о-лго сидел!
А как на счёт весокосных годов????
К стати я тоже над алгоритмом до-о-о-о-лго сидел!
Всё просто:
Третий шаг - Построим алгоритм решения
1. Получаем входные данные
а) год и день недели 1 января
б) необходимый месяц
2. Берем первый день, т.е 1 января
3. Если месяц совпадает с текущим переходим на (7)
4. берем следущий день (и вместе с этим увеличиваем день недели на 1)
[COLOR=darkblue]4.а) Если месяц февраль, день 28 и год высокосный, то переходим на (4)[/COLOR]
5. Если месяц кончился берем следуйщий месяц
6. Переходим на (3)
7. Запоминаем текущий день недели и число где-нибудь
8. Берем следущий день
[COLOR=darkblue]8.а) Если месяц февраль, день 28 и год высокосный, то переходим на (8)[/COLOR]
9. Если месяц кончился переходим на (11)
10. Переходим на 7.
11. Все мы запомнили все дни недели и числа указанного месяца, Можно выводить как-нибудь
Да ты конечно спросишь а каже узнать высокосный год или нет. Высокосный год как известно бывает раз в четыре года. Но когда астрологи или кто-там решили что нужно ввести его я сам уж не помню. Поэтому нуно я считаю оталкиваться от 4 года нашей эры(не думаю что высокосный год ввели до н.э // хотя может быть не помню)
Так вот алгоритм для получения высокосного года:
1. Получить входные данные(т.е. номер года)
2. вычесть из номера года 4
3. если год равен или меньше 4 переходим на (5)
4. переходим на (2)
5. если год равен 4 Запоминаем что год высокосный
6. если год меньше 4 Запоминаем что год невысокосный
7. Все мы получили тип года. Конец
P.s: данный алгоритм работает только с годами н.э.
Там где рожится должна быть 8 в круглых скобках
month: array[1..12] of integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
// Ф-ия возвращает день недели для (year,nmth,day)
function dayOfWeek(
year, // Год
dof, // День недели 1го янв.
mnth, // Месяц
day: // День
Integer): integer;
var
days : Integer;
i : Integer;
begin
days := 0;
for i := 1 to mnth-1 do days := days + month;
if mnth > 2 then
if (year mod 4 = 0) and ((year mod 100 <> 0) or (year mod 400 = 0)) then
Inc(days);
days := (days + day + dof - 1) mod 7;
if days = 0 then days := 7;
result := days;
end;
Заранее спасибо!