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

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

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

 
 Ответить  Открыть новую тему 
> определение высокосного года, помогите please переделать условие
Slim
сообщение 10.06.2007 18:31
Сообщение #1


Новичок
*

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

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


Если год высокосный, то он должен делиться на 400, на 100 и на 4
Написал код, но написал - не верно!
В чём у меня ошибка?

Код
If (year mod 4=0) Then
Begin
If (year mod 100=0) Tnen
Begin
If (year mod 400=0) Tnen
b:='Да, год высокосный'
End
end
Else
b:='Нет, год не высокосный'


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.06.2007 18:35
Сообщение #2


Гость






Цитата
Если год высокосный, то он должен делиться на 400, на 100 и на 4
Не совсем...

Вот так будет точнее:
"Номер високосного года делится на 4, кроме тех, которые делятся на 100, но не делятся на 400."

Соответственно,
function LeapYear(n: Word): Boolean;
begin
LeapYear := ((n mod 4) = 0) and
not (((n mod 100) = 0) and ((n mod 400) <> 0))
end;


Сообщение отредактировано: volvo - 10.06.2007 18:36
 К началу страницы 
+ Ответить 
Slim
сообщение 10.06.2007 18:50
Сообщение #3


Новичок
*

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

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


To volvo:
Очень благодарен
А как теперь связать функцию с основным кодом программы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 11.06.2007 12:15
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


// Твой код
function LeapYear(n: Word): Boolean;
begin
LeapYear := ((n mod 4) = 0) and
not (((n mod 100) = 0) and ((n mod 400) <> 0))
end;
// Твой код
Begin
// Твой код
if LeapYear() then // Твой код
// Твой код
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Slim
сообщение 11.06.2007 18:07
Сообщение #5


Новичок
*

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

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


Допустим исходный код программы такой:

Код
Program God;
Var
Year:Integer;
If (year mod 4=0) Then
Begin
If (year mod 100=0) Tnen
Begin
If (year mod 400=0) Tnen
b:='Да, год высокосный'
End
end
Else
b:='Нет, год не высокосный'
WriteLn('Наш год: ',b);
ReadLn;
End.


Как теперь подставить функцию, чтоб она проверяла на высокостность года переменную Year?

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.06.2007 18:23
Сообщение #6


Гость






Program God;

{ Здесь - функция LeapYear }

Var
Year: Integer;
b: string;
begin
... { Ввод значения year }
If LeapYear(year) Then b:='Да, год високосный'
Else b:='Нет, год не високосный';

WriteLn('Наш год: ', b);
ReadLn;
End.
 К началу страницы 
+ Ответить 
Slim
сообщение 13.06.2007 16:55
Сообщение #7


Новичок
*

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

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


Код
function LeapYear(n: Word): Boolean;
begin
   LeapYear := ((n mod 4) = 0) and
     not (((n mod 100) = 0) and ((n mod 400) <> 0))
end;

Условие не корректно!
Получаеться что если год делиться на 4,и не делиться на 100 и на 400, то....
А нужно:
Если год делиться на 4, не делиться на 100, и делиться на 400, то...

Преподователь сказал, что в одно условие это записать сложно!
Если воожу 2000год - то пишет что год не высокосный!Когда должен показать - высокосный!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.06.2007 19:18
Сообщение #8


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата
Преподователь сказал, что в одно условие это записать сложно!

обманул...
if (year mod 400 = 0) or ((year mod 4 = 0) and not(year mod 100 = 0)) then


Добавлено через 3 мин.
проверила вариант Ozzи.
Отработал нормально на 2000 - выдал, что високосный.
Ищи ошибки у себя.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.06.2007 19:31
Сообщение #9


Гость






Цитата
Условие не корректно!

Slim, учи матчасть, а? Приведи хотя бы один пример некорректной работы, потом будешь утверждать что-нибудь...

Много развелось критиков dry.gif

Сообщение отредактировано: volvo - 13.06.2007 19:32
 К началу страницы 
+ Ответить 
Slim
сообщение 13.06.2007 19:52
Сообщение #10


Новичок
*

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

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


Код
потом будешь утверждать что-нибудь...
Много развелось критиков


Прошу прощение, если кого то обидел!
Просто в своей задачи, на 2000-ном году, выводила программа - что год не высокосный!
Начал сдавать преподователю эту работу, он сказал - что условие не верно!
Вот и всё!

Значит сейчас буду разбираться со своей задачей!
Очень благодарен Вам за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.06.2007 20:24
Сообщение #11


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


и откуда мы можем знать, КАК ты исковеркал то условие, которое тебе дали?..
если ТВОЁ условие некорректно - это не значит, что некорректно то, что ты процитировал!


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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