Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 17. virtual Rästel: Mal was praktisches :)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.02.2003, 10:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Gegeben sind zwei angaben:
1. Ein String S = "---------" (9 x "-")
2. Eine ganze Zahl P 0<=P < 4096

Zu entwickeln ist eine möglichst kruze Routine (kann auch tierisch unübersichtlich sein, damit es Spass macht), die folgendes macht:

1. Wenn in P das Bit 0 gesetzt ist, soll S[8] = 'x' sein
2. Wenn in P das Bit 1 gesetzt ist, soll S[7] = 'w' sein
3. Wenn in P das Bit 2 gesetzt ist, soll S[6] = 'r' sein
4. Wenn in P das Bit 3 gesetzt ist, soll S[5] = 'x' sein
5. Wenn in P das Bit 4 gesetzt ist, soll S[4] = 'w' sein
6. Wenn in P das Bit 5 gesetzt ist, soll S[3] = 'r' sein
7. Wenn in P das Bit 6 gesetzt ist, soll S[2] = 'x' sein
8. Wenn in P das Bit 7 gesetzt ist, soll S[1] = 'w' sein
9. Wenn in P das Bit 8 gesetzt ist, soll S[0] = 'r' sein
0. Wenn in P das Bit 9 gesetzt ist, soll S[8] = 't' sein, ist Bit 0 nicht gesetzt, sei s[8]='T'
A. Wenn in P das Bit 10 gesetzt ist, soll S[5] = 's' sein, ist Bit 3 nicht gesetzt, sei s[5]='S'
B. Wenn in P das Bit 11 gesetzt ist, soll S[2] = 's' sein, ist Bit 6 nicht gesetzt, sei s[2]='S'

Ich denke, die UNIXer unter Euch, wissen, worauf das hinausläuft: daher sei es UNIXern gestattet, ein entsprechendes Shellscript zu schreiben, was da macht .
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.02.2003, 11:57 Uhr
~unixer
Gast



C++:
[ $# -ne 1 ] && echo "error: `basename $0`: invalid command line" >&2 && echo "usage: `basename $0` <number>" >&2 && exit 1

tmp=/tmp/$$
[ -e $tmp ] && echo "error: `basename $0`: temporary file already exists" && exi
t 2

touch $tmp
chmod $1 $tmp

ls -l $tmp | cut -c2-10

rm -f $tmp

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.02.2003, 12:25 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!


C++:
void attr2str(int attr, char* str)
{
   for(int i=str[9]=0; i<9; i++) str[ i ] = (attr & 1 << 8-i) ? "rwx"[i % 3] : '-';
   for(int i=0; i<3; i++) if(attr & 1 << 9+i) str[8-3*i] = (attr & 1 << i * 3) ? "tss"[ i ] : "TSS"[ i ];
}

--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.02.2003, 13:49 Uhr
virtual
Sexiest Bit alive
(Operator)


@Leif
Da sind aber noch ein paar Bugs drin... (Wie war das doch mit der Reihenfolger Der auswertung von << und +??
Ausserdem fände ich

C++:
i["tss"]


schon fast schöner als

C++:
"tss"[ i ]



--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 13.02.2003 um 13:49 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.02.2003, 14:35 Uhr
Bruder Leif
dances with systems
(Operator)


Was?! *ungläubigguck* Bei mir funzt das einwandfrei... komisch. Mal unter Linux ausprobieren ;-)
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.02.2003, 14:52 Uhr
virtual
Sexiest Bit alive
(Operator)


Setzt man voraus, dass s immer "---------" bei der Initialisierung is, dann kann man auch - wie wohl jedem sofort einleuchtet :D - schreiben:

C++:
void perm2str(unsigned p, char* s)
{
    for(int i=0; i<12; ++i)
        s[8-(i<9?i:(i-9)*3)] += (p&1<<i?(i<9?69+(i%3?((i+1)%3?5:0):6):s[8-3*(i-9)]!='-'?(i==9?-4:-5):(i==9?39:38)):0);
}


@Leif: Schäm - ich hab mich vertan. is okay, dein code!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 13.02.2003 um 14:53 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: