записи с вариантами и вложенные записи, нужна помощь.

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

ronayt
Сообщения: 25
Зарегистрирован: 26 май 2009, 22:05

Naeel Maqsudov писал(а):Потому, что "множеству" тут не место. Тут может быть только диапазон или значение или список из значений и диапазонов.
а как диапазон вставить? ) я пока не прошареный )))хоть пока и не нужно но интересно))на будущее пригодится )
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

ronayt писал(а):а как диапазон вставить? ) я пока не прошареный )))хоть пока и не нужно но интересно))на будущее пригодится )
А прочитать написанное выше? Могём или не могём? (c)
ronayt
Сообщения: 25
Зарегистрирован: 26 май 2009, 22:05

BBB писал(а):А прочитать написанное выше? Могём или не могём? (c)
та я уже пробывал как увидел...выдаёт сразу 3 ошибки: (буду выделять место курсора)
2..19,20|: ATracks: array[1..19] of Track;
end;
[Error] Project2.dpr(9): ':' expected but '..' found

2..19,20: ATracks:| array[1..19] of Track;
end;
[Error] Project2.dpr(9): '=' expected but ':' found

2..19,20: ATracks: array[1..19] of Track;
end;|
[Error] Project2.dpr(10): '.' expected but ';' found
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Дайте пожалуйста из секции Type полное описание этого типа и связанных с ним типов. А также укажите какой используется компилятор.
ronayt
Сообщения: 25
Зарегистрирован: 26 май 2009, 22:05

Код: Выделить всё

type
  Track = record
    Name: string[50];
    Hours: 0..3;
    Minutes: 0..59;
    Seconds: 0..59;
end;
  CD = record
    Author: string[20];
    Title: string[50];
    Year: integer;
    Kind: string[10];
    case Tracks: byte of
      1: (Trackl: Track);
      [2..20]: (ATracks: array[1..20] of Track);
end;
Borland Delphi 7
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Придется написать так

Код: Выделить всё

  Track = record
    Name: string[50];
    Hours: 0..3;
    Minutes: 0..59;
    Seconds: 0..59;
  end;
  CD = record
    Author: string[20];
    Title: string[50];
    Year: integer;
    Kind: string[10];
    case Tracks: byte of
      1: (Trackl: Track);
      2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,
      18,19,20: (ATracks: array[1..20] of Track);
  end;
ronayt
Сообщения: 25
Зарегистрирован: 26 май 2009, 22:05

да уж, если надо 100 чисел то придеться всех их писать...
ну спасибо, не буду больше себе морочить голову и пытаться что от сделать )))
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
о, сор за вопрос не по теме, но какого есть отличия в компиляторе между турбо паксалем и делфи? )
книжка то по турбо... но мне облом было пользоваться той средой, удобнее в делфи ))) но в турбо множество почему то работает )
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

В турбо-паскале? Вот именно в этом самом месте? Множества? Такого никогда не было и не будет. В крайнем случае диапазоны, да и то они тут не особо актуальны.

У множеств совсем другое назначение. Да и на низком уровне они представлены обычно как битовые маски, чтобы облегчить выполнение таких операций как объединение или пересечение.
ronayt
Сообщения: 25
Зарегистрирован: 26 май 2009, 22:05

Naeel Maqsudov писал(а):В турбо-паскале? Вот именно в этом самом месте? Множества? Такого никогда не было и не будет. В крайнем случае диапазоны, да и то они тут не особо актуальны.

У множеств совсем другое назначение. Да и на низком уровне они представлены обычно как битовые маски, чтобы облегчить выполнение таких операций как объединение или пересечение.
да! сначала написал просто обьявления записи никаких ошибок не выдало, почему и написал что можно...потом когда Вы написали что этого не возможно написал там весь код и всё заработало! )
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Но то, что нельзя этого делать в дельфи меня это огорчает ((
придеться на паскале книжку всетаки проходить )
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

А почему вот так не написать? (Собственно, Naeel Maqsudov так давно уже предлагал)

Код: Выделить всё

Track = record
    Name: string[50];
    Hours: 0..3;
    Minutes: 0..59;
    Seconds: 0..59;
  end;
  CD = record
    Author: string[20];
    Title: string[50];
    Year: integer;
    Kind: string[10];
    case byte of
      1: (Trackl: Track);
      2: (ATracks: array[1..20] of Track);
  end;
Какой смысл перечислять все 20 штук значений?
Ответить