Как найти високосный год в паскале

Перейти к содержанию

Определить високосный год или нет

Просмотров 33к. Обновлено 29 октября 2021

Високосные года делятся нацело на 4. Однако из этого правила есть исключение: столетия, которые не делятся нацело на 400, високосными не являются.

В високосном годе 366 дней, в обычном 365.

  1. Если год не делится на 4, значит он обычный.
  2. Иначе надо проверить не делится ли год на 100.
  3. Если не делится, значит это не столетие и можно сделать вывод, что год високосный.
  4. Если делится на 100, значит это столетие и его следует проверить его делимость на 400.
  5. Если год делится на 400, то он високосный.
  6. Иначе год обычный.

Проверки можно проводить последовательно, а можно группировать через логические операторы «И» и «ИЛИ». Поэтому способов решения задачи может быть несколько.

Pascal

високосный год паскаль


// 1-й вариант:

var y: word;
begin
readln(y);
if y mod 4 <> 0 then writeln('Обычный')
else
if y mod 100 = 0 then
if y mod 400 = 0 then writeln('Високосный')
else writeln('Обычный')
else writeln('Високосный');
end.

// 2-й вариант:

var y: word;
begin
readln(y);
if (y mod 4 <> 0) or (y mod 100 = 0) and (y mod 400 <> 0) then
writeln('Обычный')
else
writeln('Високосный');
end.



1980
Високосный

1978
Обычный

Язык Си


// 1-й вариант:

#include

main() {
int y;
scanf("%d",&y);
if (y%4 != 0) printf("Обычный");
else
if (y%100 == 0 && y%400 != 0) printf("Обычный");
else printf("Високосный");
printf("n");
}

// 2-й вариант:

#include

main() {
int y;
scanf("%d",&y);
if (y%4 != 0 || y%100 == 0 && y%400 != 0) printf("Обычный");
else printf("Високосный");
printf("n");
}

Python

високосный год python(питон)


# 1-й вариант:

y = int(input())
if y % 4 != 0:
print("Обычный")
elif y % 100 == 0:
if y % 400 == 0:
print("Високосный")
else:
print("Обычный")
else:
print("Високосный")

# 2-й вариант:

if y % 4 != 0 or (y % 100 == 0 and y % 400 != 0):
print("Обычный")
else:
print("Високосный")

КуМир


| 1-й вариант:

алг високосный год
нач
цел n
ввод n
если mod(n,4) <> 0 то
вывод "Обычный год"
иначе
если mod(n,100) = 0 то
если mod(n,400) = 0 то
вывод "Високосный год"
иначе
вывод "Обычный год"
все
иначе
вывод "Високосный год"
все
все
кон

| 2-й вариант:

алг високосный год
нач
цел n
ввод n
если mod(n,4) <> 0 или mod(n,100) = 0 и mod(n,400) <> 0 то
вывод "Обычный год"
иначе
вывод "Високосный год"
все
кон



1100
Обычный год

1992
Високосный год

Basic-256


input y
if y%4 = 0 then
if y%100=0 and y%400 <> 0 then
print "365"
else
print "366"
endif
else
print "365"
endif

Input – Year

Output – Leap year or not

I have tried

Program LeapYear;

var  
    Year:Integer

begin

    writeln('Insert year');
    readln(Year)

    if Year MOD 4 = 0 and Year MOD 100 = 0 and not Year MOD 400 = 0 then
        begin
            writeln(Year,'is leap year')
        end
    else
        begin
            writeln(Year,'is not leap year')
        end

end.

But this is not working

Don Roby's user avatar

Don Roby

40.5k6 gold badges91 silver badges112 bronze badges

asked Nov 24, 2012 at 20:47

Peeter Palu's user avatar

1

Your algorithm is wrong. It should be:

if (year mod 400 = 0) or ((year mod 4 = 0) and not (year mod 100 = 0))

answered Nov 24, 2012 at 20:54

melpomene's user avatar

melpomenemelpomene

83.7k8 gold badges84 silver badges147 bronze badges

2

The IsLeapYear function is already defined in the datih.inc file, so you don’t need write your own version, only you must add the sysutils unit.

answered Nov 26, 2012 at 14:51

RRUZ's user avatar

RRUZRRUZ

135k19 gold badges356 silver badges483 bronze badges

3

Hope it helps:

if((a MOD 4) = 0) and ((a MOD 100) = 0) and ((a MOD 400) = 0) then y:=true 
else y:=false;

Lab Lab's user avatar

Lab Lab

7719 silver badges34 bronze badges

answered May 20, 2018 at 17:35

firas chahed's user avatar

1

Program LeapYear;

Uses crt;

var

Year:Integer;

 begin

clrscr;
  writeln('Insert year');
readln(Year);

if (Year MOD 4 = 0)then 
  writeln(Year,'is leap year');
If (Year Mod 4 >=1 ) Then 
  writeln(Year,'is not leap year')

end.

answered Jun 18, 2018 at 11:47

sunnyside's user avatar

1

https://uchitel.pro/%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80/

Задача № 1. Пользователь вводит год. Вывести на экран ответ, является ли год високосным.

Указание. Обычно каждый год, который делится на 4, — это високосный год, кроме лет столетий (делящихся на 100). Но среди последних год, делящийся на 400, также считается високосным.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 2. Пользователь вводит целое число. Если оно является четным и при этом не находится между 10 и 20, то вывести на экран его квадрат. В противном случае напечатать исходное число.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 3. Пользователь вводит целое число. Программа должна ответить, четным или нечетным является это число.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 4. Пользователь вводит целое число. Программа должна ответить, четным или нечетным является это число, делится ли оно на 3 и делится ли оно на 6.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 5. Пользователь вводит коэффициенты а, b и с квадратного уравнения ах2 + bх + с = 0. Вывести на экран все корни этого уравнения или сообщение о том, что их нет. Отдельно рассмотреть случай, когда корни совпадают.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 6. Пользователь вводит два числа. Если первое число меньше второго, то вычислить их сумму, иначе — разность первого и второго.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 7. В компьютер вводится число (например, дальность выстрела). Если оно находится в интервале от 28 до 30, то напечатать текст ПОПАЛ, иначе — НЕ ПОПАЛ.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Задача № 8. В компьютер вводится число (дальность выстрела). Если оно находится в интервале от 28 до 30, то напечатать текст ПОПАЛ; если оно больше или равно 30, то напечатать ПЕРЕЛЕТ; если оно больше 0, но меньше или равно 28, то НЕДОЛЕТ; если меньше или равно 0 — НЕ БЕЙ ПО СВОИМ.

Посмотреть ОТВЕТ и РЕШЕНИЕ

Добавить комментарий