Задать вопрос
29 декабря, 23:55

Разработать проект, запрашивающий дату рождения пользователя и рассчитывающий, в какой день им было прожито 5000 дней.

+4
Ответы (1)
  1. 30 декабря, 02:43
    0
    Type

    Dat = record

    d: integer;

    m: integer;

    y: integer

    end;

    function jday (pd: Dat) : longint;

    / / Алгоритм 199 б

    / / "Переход от календарной даты к порядковому номеру дня и обратно"

    / / взят из сборника / / "Библиотека алгоритмов 151 б-200 б", М. И. Агеев и др.,

    / / М.: Радио и связь, 1981

    //

    / / Алгоритм возвращает порядковый номер дня по Юлианскому календарю.

    / / Работает для дат, начиная с 01.01.4713 до н. э.

    var

    c, ya: longint;

    begin

    with pd do

    begin

    if m > 2 then m : = m - 3

    else

    begin

    m : = m + 9;

    y : = y - 1

    end;

    c : = y div 100;

    ya : = y mod 100;

    Result : = ((146097 * c) div 4) + ((1461 * ya) div 4) +

    ((153 * m + 2) div 5) + d + 1721119

    end;

    end;

    function jdate (j: longint) : Dat;

    / / Алгоритм 199 б

    / / "Переход от календарной даты к порядковому номеру дня и обратно"

    / / взят из сборника / / "Библиотека алгоритмов 151 б-200 б", М. И. Агеев и др.,

    / / М.: Радио и связь, 1981

    //

    / / Алгоритм возвращает дату григорианского календаря по

    / / порядковому номеру дня Юлианского календаря.

    / / Работает для дат, начиная с 01.01.4713 до н. э.

    var

    dd, mm, yy: integer;

    begin

    j : = j - 1721119;

    yy : = (4 * j - 1) div 146097;

    dd : = (4 * j - 1 - 146097 * yy) div 4;

    j : = (4 * dd + 3) div 1461;

    dd : = (4 * dd + 7 - 1461 * j) div 4;

    mm : = (5 * dd - 3) div 153;

    dd : = (5 * dd + 2 - 153 * mm) div 5;

    yy : = 100 * yy + j;

    if mm < 10 then mm : = mm + 3

    else begin mm : = mm - 9; yy : = yy + 1 end;

    Result. d : = dd;

    Result. m : = mm;

    Result. y : = yy

    end;

    var

    d1, d2: Dat;

    begin

    Writeln ('Введите дату рождения в формате : ') ;

    Read (d1. d, d1. m, d1. y) ;

    d2:=jdate (jday (d1) + 5000) ;

    Writeln ('5000 дней прожито ', d2. d,'.', d2. m,'.', d2. y)

    end.

    Тестовое решение:

    Введите дату рождения в формате:

    9 10 1997

    5000 дней прожито 18.6.2011
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Разработать проект, запрашивающий дату рождения пользователя и рассчитывающий, в какой день им было прожито 5000 дней. ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы