Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

smirnvlad

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. ошибка в обработке месяцев
в условии написано что

Цитата:
(март имеет номер 1, апрель – номер 2,..., декабрь – номер 10, январь и февраль считаются месяцами с номерами 11 и 12 предыдущего года)

теперь ваш код на примере декабря (12)

Код:
 
{ОБРАБОТКА ПОЛУЧЕННОГО НОМЕРА МЕСЯЦА}
if (month=1) then month:=11 else
if (month=2) then month:=12 else
if ((month > 2) AND (month < 11)) then month:=month-2;
 

все условия не выполняются, следовательно месяц останется 12
 

Код:
 
month:=month-2;
if month<1 then begin
  month:=month+12;
  year:=year-1; {январь и февраль с номерами 11 и 12 предыдущего года}
end;
 

 
2. в паскале есть функция остаток от деления mod, можно заменить

Код:
_tmp:=year div 100;
y:=year-(_tmp*100);
 

на

Код:
y:=year mod 100;
 

 
3. в условии формула
Цитата:
[2,6770*m – 0,2] + d + y + [y/4] + [c/4] – 2*c

в коде же

Код:
_res:=(2677*m-0.2)+d+y+(y/4)+(c/4)-(2*c);  

выделенное больше в 1000 раз
затем

Цитата:
[x] означает целую часть числа х

целая часть это округление в сторону 0, в паскале Trunc
получаем

Код:
_res:=Trunc(2.677*m-0.2)+d+y+Trunc(y/4)+Trunc(c/4)-(2*c);

 
проверяем на сегодняшнем числе 2010 9 7 - вторник
 
 формула считает не для всех месяце правильно например 2010 1 1 получается суббота хотя была пятница
январь - нет
фев,март,...,июнь - правильно
июль - нет
август, сентябрь - правильно
октябрь - нет
ноябрь - правильно
декабрь - нет

Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 18:41 07-09-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru