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ę?

Odysseus
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 11 lat
0

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


wiem, że nic nie wiem
Odysseus
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 11 lat
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:

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

dodajesz zmieną Nazwa i n:

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

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

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

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

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

wiem, że nic nie wiem
brodny
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 11 lat
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 :) ).


Mam nadzieję, że pomogłem :) Łukasz Brodny

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.