elementy zbioru

0

Mam zbiór zdefiniowany następująco:
Type
Zbior= set of char;
i zmienną: var Litery: Zbior;

{i podstawiamy wartości do zmiennej}
begin
Litery:= [d,f,g,r,e,y,r,t];

I teraz załóżmy że nie znam zawartości zmiennej "Litery", a chciałbym się dowiedzieć jaka litera jest na n-tym miejscu , to jak uzyskać tę informację?

0

Chyba coś zmieniło się matrix'ie bo mam deja vu. :-|

0

No tak... zmieniła się nazwa autora postu http://4programmers.net/Forum/viewtopic.php?id=100670

Jeżeli piszesz to w Delphi i nie potrzebujesz polskich znaków to można zrobić to tak:
do sekcji uses dodajesz moduł TypInfo i deklarujesz typ wyliczeniowy:

type
  {$M+}  //dołącz informację RTTI dla dla typu TTypWylicz
  TTypWylicz=(d,f,g,r,e,y,t);
  {$M-}

dodajesz zmieną Nazwa i n:

var
  Nazwa:String[1];  
  n:Integer;

używasz funkcji GetEnumName(), znajdującej się w dodanym module TypInfo:

Nazwa:=GetEnumName(TypeInfo(TTypWylicz),ord(n));

Inna funkcja, która może się przydać w tym przypadku to GetEnumValue().

n:=GetEnumValue(TypeInfo(TTypWylicz),Nazwa);
0

O ile dobrze zrozumiałem, to jemu chodziło o kolejność elementów zbioru ale w zmiennej typu zbiorowego. Jak ktoś słusznie wcześniej napisał, jest to bez sensu, bo albo wartość do zbioru należy, albo nie, bez roztrząsania kwestii jej "miejsca" w przypisaniu wartości do zmiennej bądź kolejności dodawania elementów do zbioru. Natomiast kod Odyseusza poda wszystkie możliwe elementy zbioru (o ile dobrze pamiętam :) ).

1 użytkowników online, w tym zalogowanych: 0, gości: 1