IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача с датами
Людмила
сообщение 12.02.2005 13:21
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Женский

Репутация: -  1  +


Необходимо решить задачу:
Определить k - порядковый номер дня года по дате d, m, y (день, месяц, год).
Пыталась решить сама, считает правильно до 8 месяца, потом выдает ерунду.
вот код программы, может кто подскажет в чем дело...
Код

program god;
uses CRT;
var k: 1..366;
   d: 1..31;
   m: 1..12;
   y: 0..5000;
   yy: 1..100;
   tmp:integer;
begin
   ClrScr;
   TextColor(LightBlue);
   writeln('wwedite god');
   TextColor(LightGray);
   readln(y);
   TextColor(LightBlue);
   writeln('wwedite mesyac');
   TextColor(LightGray);
   readln(m);
   TextColor(LightBlue);
   writeln('wwedite den');
   TextColor(LightGray);
   readln(d);
   yy:=y mod 100;
   tmp:=(m+10) div 13;
   k:=3055*(m+2) div 100-tmp*2-91+
   (1-(yy-yy div 4*4+3) div 4+
   (yy-yy div 100*100+99) div 100-
   (yy-yy div 400*400+399) div 400)*tmp+d;

      TextColor(LightRed);
     writeln('poryadkovyi nomer dnya goda ', k);
     ReadKey;
end.


Сообщение отредактировано: Людмила - 12.02.2005 13:23


--------------------
хороших людей мало... полезных ещё меньше....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.02.2005 13:31
Сообщение #2


Гость






В следующий раз пользуйтесь поиском, пожалуйста... Я думаю, вот это Вам поможет: http://forum.pascalnet.ru/index.php?showt...indpost&p=34965
 К началу страницы 
+ Ответить 
Людмила
сообщение 13.02.2005 11:08
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Женский

Репутация: -  1  +


Цитата(volvo @ 12.02.05 16:31)
В следующий раз пользуйтесь поиском, пожалуйста... Я думаю, вот это Вам поможет: http://forum.pascalnet.ru/index.php?showt...indpost&p=34965

Я смотрела эти задачи, у них совсем другой алгоритм, хотелось бы узнать что не правильно в моём, по идеи должен идти, да и до 8 месяца считает без отказно. Помогите если не трудно. unsure.gif


--------------------
хороших людей мало... полезных ещё меньше....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.02.2005 11:22
Сообщение #4


Гость






Ну если Вам хочется изобретать велосипед - пожалуйста, только вот в вышеприведенной программе я не увидел никакого алгоритма. Ведь в году все-таки 12 месяцев, следовательно это какой-то цикл, покажите мне у Вас в программе хоть один оператор, связанный с циклом... А выписать все операторы в одну строчку, это - извините, не алгоритм, а подгонка под ответ... Да и преподаватель (или пользователь), наверняка не станет разбираться с такой программой...

Мне, например, расхотелось вникать в логику работы программы, как только я увидел число "k:=3055*(m+2) div ..." А почему, собственно, 3055? А не 5424? или 6405? Так что, делайте выводы...
 К началу страницы 
+ Ответить 
Людмила
сообщение 13.02.2005 11:44
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Женский

Репутация: -  1  +


Цитата(volvo @ 13.02.05 14:22)
Ну если Вам хочется изобретать велосипед - пожалуйста, только вот в вышеприведенной программе я не увидел никакого алгоритма. Ведь в году все-таки 12 месяцев, следовательно это какой-то цикл, покажите мне у Вас в программе хоть один оператор, связанный с циклом... А выписать все операторы в одны строчку, это - извините, не алгоритм, а подгонка под ответ... Да и преподаватель (или пользователь), наверняка не станет разбиралься с такой программой...

Мне, например, расхотелось вникать в логику работы программы, как только я увидел число "k:=3055*(m+2) div ..." А почему, собственно, 3055? А не 5424? или 6405? Так что, делайте выводы...


Спасибо. Попробую пересмотреть полностью. Извиняюсь, я только начала учиться ещё и заочно, очень трудно мне даётся Паскаль с нулевым опытом программирования. sad.gif


--------------------
хороших людей мало... полезных ещё меньше....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Людмила
сообщение 13.02.2005 12:20
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Женский

Репутация: -  1  +


Огромное спасибо у меня получилось с Вашей помощью. :rose:
Я ВАМ очень благодарна.

Сообщение отредактировано: Людмила - 13.02.2005 12:20


--------------------
хороших людей мало... полезных ещё меньше....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"