На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Множества
    Люди, подскажите идею. Лаба по Pascal на тему множества. Надо по порядковому номеру дня  в году определить его месяц.
      эт тебе ф раздел Дельфи нада идти:)

      а вообще по сабжу наверное так
      ExpandedWrap disabled
        <br>januar set of integer=(1,2..31);<br>februar set of integer=(32..59);<br>....<br><br>if(DayNum in januar) then println("januar")<br>else if (DayNum in februar) then print("februar)<br>else<br>....<br>


      только ИМХО за ущи притянутая задача к множествам. так эту задачу никтоне решает:)
        Задача решается в несколько строк. Не знаю только как к этому множества приделать.
          Цитата ter, 11.04.03, 10:24:04
          Задача решается в несколько строк. Не знаю только как к этому множества приделать.


          int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
          int i=0;
           while (iNumDay>a[i] && i<12)
           {
              iNumDay-=a[i];
              i++;
           }
          if (i<12) printf("месяц \%d",i+1);
          else printf("Ошибка в дне");
          ну вот и все....
            Кстати надо бы еще учеть и код какой високосный или нет???
              2 Demo_s: Тип множество имеет не более 255 значений, верхний и нижний пределы множества должны быть в диапазоне 0..255.Если делать, как ты предлагаеш то в сентябре будет переполнение множества (242..273).
                 Да, решать эту задачу через множества, все равно, что второй раз изобретать колесо :), я знаю как минимум 3 способа решить ее не через множества, но задача поставлена сделать именно через них.
                  Так что, если у кого нибудь есть идеи с удовольствием выслушаю.


              P.S. Тип года надо учитывать(високосный или нет)
                Цитата Flame, 11.04.03, 18:17:34
                верхний и нижний пределы множества должны быть в диапазоне 0..255.Если делать, как ты предлагаеш то в сентябре будет переполнение множества (242..273).


                а ты пробовал???
                у меня к сожалению паскаля счас установленного нет, но я почти на 100\% уверен, что
                a set of integer=(300,400,500)
                проканает...

                ЗЫ если год високосный, нужно или другой набор множеств, или резко проинклюить в некоторые первый элемент следующего, и из каждого мн-ва, начиная со второго убрать первый элемент.


                ЗЗЫ
                2GrAnd
                Цитата
                Лаба по паскалю
                :):)
                Сообщение отредактировано: Demo_S -
                  Проверял. Как я и говорил-ошибка, выход за пределы допустимого диапазона. Не так все просто, как кажеться на первый взгляд :)
                    Цитата Flame, 11.04.03, 18:17:34
                    2 Demo_s: Тип множество имеет не более 255 значений, верхний и нижний пределы множества должны быть в диапазоне 0..255.Если делать, как ты предлагаеш то в сентябре будет переполнение множества (242..273).
                       Да, решать эту задачу через множества, все равно, что второй раз изобретать колесо :), я знаю как минимум 3 способа решить ее не через множества, но задача поставлена сделать именно через них.
                        Так что, если у кого нибудь есть идеи с удовольствием выслушаю.


                    P.S. Тип года надо учитывать(високосный или нет)

                    Раздели по полугодиям:
                    Что то типа этого
                    januar set of integer=(1,2..31);
                    februar set of integer=(32..59);
                    ....
                    julie set of integer = (182..213); //или сколько  там ???

                    august set of integer = (1..31);
                    ...

                    if (DayNum<213) then
                    begin //проверка на первого полугодие
                       if(DayNum in januar) then println("januar")
                         else if (DayNum in februar) then print("februar)
                            else
                             ....
                     end;
                    else
                     begin
                        DayNum = DayNum-213;
                        if(DayNum in aygust) then println("august")
                          else if (DayNum in sepember) then print("september)
                            else
                             ....
                      end;
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0262 ]   [ 15 queries used ]   [ Generated: 19.04.24, 20:19 GMT ]