Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 19. Virtualrästel (bitte keine Profis!)

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
17.04.2003, 16:42 Uhr
virtual
Sexiest Bit alive
(Operator)


Hi,
das folgende Rästel richtet sind an die, die noch nicht so ganz viel Erfahrung mit C haben. Die Aufgabe lautet:

Nach der (leider sehr unbekannten) Zahlentheorie von mir haben Zahlen eine Farbe, eine Musterung und einen bestimmten Geruch:
Eine grade Zahl ist weiss, eine ungrade ist blau. Ist eine blaue Zahl durch 5 teilbar, hat sie gelbe Püntchen als Muster, durch 7 teilbare Zahlen haben immer feine rote Striche. Hat eine Zahl rote Striche und gelbe Pünktchen, hat sie zusätzlich grüne Sternchen. Alle übrigen Zahlen haben kein Muster. Zahlen mit Strichen aber keinen Sternchen als Muster riechen immer nach Erdbeeren. Zahlen, die blau sind aber kein Muster haben, riechen nach alten Socken, es sei denn sie sind durch 11 oder 3 teilbar, dann riechen sie nach Lagerfeuer. Alle übrigen Zahlen riechen wie ein frisch gezapftes Hefeweizen.
Ausgenommen ist - natürlich - die Zahl 37: sie riecht prinzipiell immer nach Imbissbude!

Damit dürfte klar sein, daß gilt:

1 ist blau, hat kein Muster und riecht nach alten Socken.
...
100 ist weiss, hat gelbe Pünktchen und riecht nach einem frisch gezapften Hefeweizen.

Zu schreiben ist ein Programm, welche die Frabe, die Musterung und den Gruch für alle zahlen zwischen 1 und 100 ausgibt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 17.04.2003 um 16:46 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.04.2003, 17:04 Uhr
~Heiko
Gast


Mein *lol* für diese Aufgabe hast du?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.04.2003, 19:31 Uhr
Christian
C/C++ Master
(Operator)


Haha!

Das ist echt klasse!!!!
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.04.2003, 21:53 Uhr
Bruder Leif
dances with systems
(Operator)


...bin immer noch am überlegen, welche Rolle das Hefeweizen bei der Entstehung der Aufgabe gespielt hat Gefällt mir!
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.

Dieser Post wurde am 17.04.2003 um 21:53 Uhr von Bruder Leif editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.04.2003, 22:14 Uhr
Bruder Leif
dances with systems
(Operator)



Zitat:
100 ist weiss, hat gelbe Pünktchen und riecht nach einem frisch gezapften Hefeweizen.


Einspruch! 100 ist weiss, aber nur blaue Zahlen können gelbe Pünktchen haben!
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.

Dieser Post wurde am 17.04.2003 um 22:14 Uhr von Bruder Leif editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.04.2003, 23:25 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
Bruder Leif postete

Einspruch! 100 ist weiss, aber nur blaue Zahlen können gelbe Pünktchen haben!



Stimmt. Scheint eine neue Zahlentheorie zu werden, weil da hat sich ein Fehler eigeschlichen: eigentlich sollte jede Zahl, die durch fünf teilbar ist, gelbe Pünktchen haben. Ich habe zwar keine Ahnung, wie sich das auf das Universum als solches auswirkt, aber lassen wir es mal so stehen, wie in der Originalaufgabe.
--
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
006
18.04.2003, 14:48 Uhr
~0xdeadbeef
Gast


Behold!

C++:
#include <iostream>

using namespace std;

template <bool mod2> struct farbe { static const char *text; };
const char *farbe<true >::text = " ist weiß,";
const char *farbe<false>::text = " ist blau,";

template <bool mod5, bool mod7> struct muster { static const char *text; };
const char *muster<true, true>::text = " hat gelbe Punkte, feine rote Striche und grüne Sternchen";
const char *muster<true, false>::text = " hat gelbe Punkte";
const char *muster<false, true>::text = " hat feine rote Striche";
const char *muster<false, false>::text = " hat kein Muster";

template <bool mod2, bool mod5, bool mod7, bool mod3o11> struct geruch { static const char *text; };
const char *geruch<false, false, false, false>::text = "alten Socken.";
const char *geruch<false, false, false, true>::text = "Lagerfeuer.";
const char *geruch<true, false, true, true>::text = "Erdbeeren.";
const char *geruch<true, false, true, false>::text = "Erdbeeren.";
const char *geruch<false, false, true, true>::text = "Erdbeeren.";
const char *geruch<false, false, true, false>::text = "Erdbeeren.";
template <bool mod2, bool mod5, bool mod7, bool mod3o11> const char *geruch<mod2, mod5, mod7, mod3o11>::text = "einem frisch gezapften Hefeweizen.";

template <int i> struct zahl {
  static const char *farbe_text;
  static const char *muster_text;
  static const char *geruch_text;
};
template<int i> const char *zahl<i>::farbe_text = farbe<i%2==0>::text;
template<int i> const char *zahl<i>::muster_text = muster<i%5==0, i%7==0>::text;
template<int i> const char *zahl<i>::geruch_text = geruch<i%2==0, i%5==0, i%7==0, i%3==0 || i%11==0>::text;
const char *zahl<37>::geruch_text = "Imbißbude.";

template <int i> struct my_loop {
  static void body() {
    my_loop<i-1>::body();
    cout << i << zahl<i>::farbe_text << zahl<i>::muster_text << " und riecht nach " << zahl<i>::geruch_text << endl;
  }
};

struct my_loop<0> {
  static void body() {}
};

int main(int argc, char *argv[]) {
  my_loop<100>::body();
  return 0;
}


Hehe. Übrigens, gibt es einen Weg wie ich z.B nur zwei von 4 template-Parametern spezialiseren kann? Ich hätte die "Erdbeeren.";-Viecher gerne in einer Zeile zuasmmengefasst, aber der Compiler hat

C++:
template <bool mod2, bool mod3o11> const char *geruch<mod2, false, true, mod3o11>::text = "Erdbeeren";


nicht gefressen, meinte ISO-C++ würde das nicht erlauben.
 
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: