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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2008, 02:04   #1
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию Вывод числа месяца (Pacal)

Здравствуйте помогите составить алгоритм работы над программой
"Составить программу которая по номеру дня в году выводит число месяца в общепринятой форме"
Как я понял нужно ввести например 117 день 2005 года программа должна выдить номер месяца этого дня.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 16.01.2008, 02:47   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Наипростейшая программа.. а у Вас какие мысли?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 16.01.2008, 08:47   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нужно ввести например 117 день 2005 года программа должна выдить номер месяца этого дня
Организуй массив элементы которого будут содержать число дней в месяцах. В цикле проходи по этому массиву отнимая от числа дней значение очередного элемента массива пока оставшееся число не меньше текущего элемента массива. Ну и заведи счетчик на каком элементе остановишся тот и будет "текущим месяцем" для этого числа.
Ну и не забудь о высокосном году.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.01.2008, 12:52   #4
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Я вообще представлял ето с помощью оператора выбора так вроде бы легче, но затруднялся как раз на счет высакосного года, попробую с помощью массивов.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 16.01.2008, 13:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
представлял ето с помощью оператора выбора
Тоже вариант, только не очень мобильный
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.01.2008, 16:18   #6
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Задача действительно очень простая...только вопрос как лучше просчитать высокосный год и как его высчитывать вообще?
Код:
program kalendar;
uses crt;
var chislo,god,vysok:integer;
begin
clrscr;
writeln('vvedite chislo:');
readln(chislo);
writeln('vvedite god');
readln(god);
if chislo - 31<=0 then writeln('January')
else
begin
if chislo - 59<=0 then writeln('February')
else
begin
if chislo - 90<=0 then writeln('March')
else
begin
if chislo - 120<=0 then writeln('April')
else
begin
if chislo - 151<=0 then writeln('May')
else
begin
if chislo - 181<=0 then writeln('June')
else
begin
if chislo - 212<=0 then writeln('August')
else
begin
if chislo - 243<=0 then writeln('Avgust')
else
begin
if chislo - 273<=0 then writeln('September')
else
begin
if chislo - 304<=0 then writeln('October')
else
begin
if chislo - 334<=0 then writeln('November')
else
begin
if chislo - 365<=0 then writeln('December')
else  writeln('Net takogo mesyaca');
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
readln;
end.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 16.01.2008, 16:40   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И это работает!!??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.01.2008, 16:42   #8
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Естественно =)
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 16.01.2008, 23:19   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот код для определения високосный ли год:
Код:
{*                    OPDATE.PAS 1.21                    *}
{*     Copyright (c) TurboPower Software 1988, 1992.     *}

  function IsLeapYear(Year : Integer) : Boolean;
    {-Return True if Year is a leap year}
  begin
    IsLeapYear := (Year mod 4 = 0) 
          and (Year mod 4000 <> 0) and
            ((Year mod 100 <> 0) or (Year mod 400 = 0));
  end;

вот только:
Цитата:
"Составить программу которая по номеру дня в году выводит число месяца в общепринятой форме"
вопрос - а откуда Вы получите ГОД??

а вот, оттуда же функция, которая возращает число дней в месяце:
Код:
  function DaysInMonth(Month, Year : Integer) : Integer;
    {-Return the number of days in the specified month of a given year}
  begin
    case Month of
      1, 3, 5, 7, 8, 10, 12 :
        DaysInMonth := 31;
      4, 6, 9, 11 :
        DaysInMonth := 30;
      2 :
        DaysInMonth := 28+Ord(IsLeapYear(Year));
    else
      DaysInMonth := 0;
    end;
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.01.2008, 12:37   #10
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вот код для определения високосный ли год:
Код:
{*                    OPDATE.PAS 1.21                    *}
{*     Copyright (c) TurboPower Software 1988, 1992.     *}

  function IsLeapYear(Year : Integer) : Boolean;
    {-Return True if Year is a leap year}
  begin
    IsLeapYear := (Year mod 4 = 0) 
          and (Year mod 4000 <> 0) and
            ((Year mod 100 <> 0) or (Year mod 400 = 0));
  end;

вот только:
вопрос - а откуда Вы получите ГОД??

а вот, оттуда же функция, которая возращает число дней в месяце:
Код:
  function DaysInMonth(Month, Year : Integer) : Integer;
    {-Return the number of days in the specified month of a given year}
  begin
    case Month of
      1, 3, 5, 7, 8, 10, 12 :
        DaysInMonth := 31;
      4, 6, 9, 11 :
        DaysInMonth := 30;
      2 :
        DaysInMonth := 28+Ord(IsLeapYear(Year));
    else
      DaysInMonth := 0;
    end;
  end;
Высокосный год найти ето одно...как его прнименить в моем коде ведь после февраля все месяцы сдвигаются на 1 день...а для вычисления года ничего придумывать не стоит он вводится с клавиатуры
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод числа sergei64_89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 25.05.2008 21:35
Вывод данных в зависимости от числа sklins Помощь студентам 4 11.03.2008 21:56
Вывод числа lenivec Общие вопросы Delphi 3 10.02.2008 22:45
Консолидация в зависимости от числа месяца Smile E Microsoft Office Excel 6 11.09.2007 21:24