На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
  
> Запись с вариантами
    вы знаете, что есть такая конструкция в языке, как запись с вариантами. что-то типа этого:
    ExpandedWrap disabled
      type struct = record
           kind = (bla1,bla2);
           case kind of
             bla1 : ({переменные});
             bla2 : ({переменные});
           end;

    я в ней толком ещё не разобрался.. вот дано задание: составьте программу, которая использует массив записей жильцов дома. у них есть имена, номера квартиры и т.д.. и потом дано условие: для лиц старше 18 лет в зависимости от рода деятельности (студент, пенсионер, работающий) - записать ещё кое-какие переменные.
    Всё бы ничего, но для лиц старше 18 лет. как записать, чтобы он вначале смотрел сколько лет, а потом уже шёл оператор case kind of ...
    Или никак? может придётся проверять это уже из самой программы?
    Сообщение отредактировано: Potroshitell -
      Почитай:
      http://pascalforall.ru/2010/02/zapisi-s-variantami/
        эмм.. ну вроде у меня почти то же, что и в примере сайта:
        ExpandedWrap disabled
          type kind = (student,worker,pensioner); { род деятельности}
               tenant=record
                  flat :integer;    { № квартиры}
                  surname :string;  { фамилия}
                  hisname :string;     { имя}
                  age  :integer;    { возраст}
                 // kindp :kind;
                  case sort : kind  of
                     student  : (placeS : string;);
                     worker   : (placeW : string;   exp:string;);
                     pensioner: (year  : integer);
               end;

        чего тут не так?)

        Добавлено
        ммда.. оказывается PascalABC не поддерживает записи с вариантами. какой-то странный компилятор(
        Сообщение отредактировано: Potroshitell -
          Цитата Potroshitell @
          чего тут не так?)
          Если у тебя 32-битный компилятор, то нельзя использовать String без указания длины в вариантной записи... Или укажи в квадратных скобках длину, или используй ShortString.

          А PascalABC вообще пора бы на свалку вынести... <_<
            Цитата volvo877 @
            А PascalABC вообще пора бы на свалку вынести... <_<

            =))) я бы не против, просто там хотя бы интерфейс современный) а в freepascal старинный синий экран) почему-бы не изобрести компилятор паскаля с внешним видом ABC, а возможностями freepascal=))

            P.S а так, запись с вариантами то без ошибок сделана?)
              Цитата Potroshitell @
              бы не против, просто там хотя бы интерфейс современный)

              Такой устроит?
              http://www.bloodshed.net/devpascal.html

              Как его приклеить к новой версии FPC, есть тема здесь же на форуме.

              Похоже, сайт умер

              http://www.softportal.com/get-184-bloodshed-dev-pascal.html

              Отсюда качается норм.
              Сообщение отредактировано: Оззя -
                Цитата Potroshitell @
                P.S а так, запись с вариантами то без ошибок сделана?)

                volvo877 уже сказал, что в вариантной части (после case) нельзя использовать типы, требующие специальной инициализации\финализации, т.е. длинные строки (string), дин.массивы, варианты и интерфейсы
                  Цитата Оззя @
                  Как его приклеить к новой версии FPC, есть тема здесь же на форуме.

                  Не могу найти :blink: Помню, что Jenia создавал, а volvo877 ответил. Кажется, просто в настройках путь прописать надо к новому компилятору
                    Цитата Оззя @
                    Не могу найти
                    Как подключить к Dev-Pascal новый FPC :)
                      http://www.bloodshed.net/devpascal.html
                      оО, ну вроде норм=) спс)
                        тут в консоли опять проблема русских букв. выводятся иероглифы. как исправить?)

                        Добавлено
                        причём FPC я подключил)
                          Цитата Potroshitell @
                          проблема русских букв

                          UTF8ToConsole - только это скорее больше для Lazarus'a,
                          а вот CharToOEM можно попробовать

                          вот это почитайте
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0305 ]   [ 15 queries used ]   [ Generated: 14.05.24, 17:34 GMT ]