Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2013, 19:01   #1
Cvyatoslav1997
Новичок
Джуниор
 
Регистрация: 23.01.2013
Сообщений: 1
Восклицание ребят вот не понимаю, что делать

Дано целое положительное число, соответствующее номеру года. Напишите программу, позволяющую определить является ли введенные год високосным. Год является високосным, если его номер кратен 4, но из лет кратных 100, високосными считаются кратные 400. (Например, 1700, 1800 или 1900-не високосные годы, а 2000-високосный).
Cvyatoslav1997 вне форума Ответить с цитированием
Старый 23.01.2013, 19:11   #2
Guagpro
 
Регистрация: 21.01.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Cvyatoslav1997 Посмотреть сообщение
Дано целое положительное число, соответствующее номеру года. Напишите программу, позволяющую определить является ли введенные год високосным. Год является високосным, если его номер кратен 4, но из лет кратных 100, високосными считаются кратные 400. (Например, 1700, 1800 или 1900-не високосные годы, а 2000-високосный).
Код:
var
i:integer;
begin
readln(i);
if (i mod 4 = 0) then
begin
if (i mod 100 = 0) then
begin
if (i mod 400 = 0) then 
writeln('Год високосный') 
else 
writeln('Год не високосный')
end
else
writeln('Год високосный');
end
else 
writeln('Год не високосный');
end.
Guagpro вне форума Ответить с цитированием
Старый 23.01.2013, 21:26   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Guagpro, слишком сложно. Учитесь пользоваться логическими операторами.
Кроме того, у Вас ошибка: год високосный, если он делится без остатка на 4, но не делится на 100, либо если делится без остатка на 400.

Так проще и короче:

Код:
var i:integer;
begin
  readln(i);
  if ((i mod 4 = 0) and (i mod 100<>0)) or (i mod 400=0) then
    writeln('Год високосный') 
  else 
    writeln('Год не високосный')
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не понимаю как делать задание rostik123 Общие вопросы C/C++ 4 29.10.2011 02:19
Такая тема....ХЗ чё делать.. Ну не понимаю я этого!!! Allie Помощь студентам 0 15.05.2011 14:17
Ребят такая вот проблема ... LeKaN Фриланс 11 22.05.2010 01:25
Вот как надо сайты делать Квэнди Свободное общение 15 21.04.2009 12:28
Вот же, что делать (Паскаль) Анжелика Помощь студентам 1 16.01.2009 00:09