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

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

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

 
 Ответить  Открыть новую тему 
> определение высокосного года, помогите please переделать условие
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


To volvo:
Очень благодарен
А как теперь связать функцию с основным кодом программы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Program God;

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

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

WriteLn('Наш год: ', b);
ReadLn;
End.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






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

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

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

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


Новичок
*

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

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


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


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

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


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

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

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


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


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

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

 





- Текстовая версия 22.09.2020 14:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name