Übungen / Aufgaben zu C

0 Lösungen
Random Walk der Liouville Serie
Fortgeschrittener - C von hollst - 16.01.2019 um 16:20 Uhr
Die Liouville Serie ist eine Zahlenfolge, die nur aus den Zahlen +1 und -1 besteht.

Sie beginnt mit {1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1 ...}. Die ersten 10.000
Glieder sind in der Datei liouville_folge.txt gespeicher und könnten meinetwegen eingelesen werden.

Wer die Glieder der Folge L(n) selber berechnen will, muss wie folgt vorgehen:

1.) Per Definition wird L(1) => +1 gesetzt.
2.) Man zerlege n in all seine Primfaktoren (z. B. 14 = 2 * 7 oder 32 = 2 * 2 * 2 * 2 * 2).
3.) L(n) => +1, falls die Anzahl der Primfaktoren eine gerade Zahl ist, ansonsten L(n) => -1
(also L(14) => +1; L(32) => -1).

Man fasse nun L(n) als eine Schrittfolge auf, die eine Weg in der x-y-Ebene beschreibt.
Ausgehend von der Koordinate (x = 0, y = 0) wird zunächt der x-Wert um Eins erhöht
(entsprechend L(1) = 1), anschließend wird der y-Wert um Eins erniedrigt (entsprechend L(2) = -1)
und immer so fort bis zu L(nmax) (nmax von mir aus 10.000 oder mehr).

Der sich so ergebene Weg (siehe Bild 1 für nmax = 100.000, die Pixelfarbe wechselt zur besseren Illustration alle 10.000 Schritte)
ist gefühlsmäßig ein Zufallsweg (Random Walk). Ob dem wirklich so ist, weiß man bis heute nicht.

Die Programmieraufgabe bestehe nun darin, den Liouville-Weg graphisch darzustellen.

Falls jemand fragt "Was soll der Unfug?": Nun, man geht davon aus, das die Liouville Serie ein Schlüssel
zur Lösung der Riemann-Hypothese (RH) sein könnte. Bekanntlich sind zum Beweis bzw. zur Widerlegung der RH
noch immer eine Million US-Dollar ausgeschrieben.

Also, dann viel Erfolg! Ich drücke die Daumen für den Einemilliongewinn.
0 Lösungen
Texte auf Unterschiede prüfen, diese dann Ausgeben
Anfänger - C von Exception - 12.01.2019 um 08:49 Uhr
Hallo zusammen,

heute sollt ihr zwei Texte miteinander vergleichen und etwaige Unterschiede herausfinden.

Die gefundenen Unterschiede sollen dann in beiden Texten markiert werden (farblich o.ä.).
Sollten beide Texte identisch sein, kann dies auch per Messagebox o.ä. ausgegeben werden.
Es ist im Endeffekt WinMerge für Arme.

Wer absolut keine Vorstellung hat, wie das später in etwa aussehen kann, der möge hier klicken.

Viel Spaß und ein schönes Wochenende :)
0 Lösungen
Geografische Daten von Städten abfragen und ausgeben bzw abspeichern
Fortgeschrittener - C von ZRX88 - 01.01.2019 um 13:43 Uhr
Die API https://www.distance24.org/api.xhtml bietet einen API Endpunkt zum Abfragen von Daten zu Städten.

Das Ziel ist, dass mehrere Städte ( beispielsweise Berlin, Hamburg und München) abgefragt werden, dann die Entfernung zwischen den Städten in der Console ausgegeben wird. Dazu soll für jede Stadt zusätzliche Infos wie Bevölkerung und die unterschiedlichen Travelguides ausgegeben werden.

Optional sollen die aufgelisteten Punkte als Datei abgespeichert werden. Wer will kann es auch als drei separate html Dateien abspeichern.
0 Lösungen
Teufelskreis einer selbstbezüglichen Aussage
Anfänger - C von hollst - 17.12.2018 um 18:46 Uhr
Die folgende Aussage sei gegeben als String:

"Dieser Satz hat vierzig Buchstaben sowie einen Punkt."


Die Aussage ist natürlich falsch, denn der Satz hat tatsächlich fünfundvierzig Buchstaben.

Ersetzen wir nun in der Aussage das Wort "vierzig" durch "fünfundvierzig" bleibt die Aussage aber trotzdem falsch,

denn der neue Satz hat zweiundfünfzig Buchstaben. Schöner Teufelskreis, oder?


Schreibe ein Programm mit dem überprüft wird, ob es überhaupt eine (ausgeschriebene) Zahl gibt, die oben zu einer wahren Aussage führt.

Viel Spaß!

0 Lösungen
Body-Mass-Index (BMI)
Anfänger - C von hollst - 20.11.2018 um 18:23 Uhr
Der BMI ist eine (umstrittene) Kenngröße zur Ermittlung des eigenen Über-/Untergewichtszustandes:

BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).

Er wird wie folgt interpretiert:

Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5

Normalgewicht 18,5 – < 25

Präadipositas 25 – < 30

Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40

Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.

Viel Spaß!

0 Lösungen
Binärzahlen ohne Doppelnull
Anfänger - C von hollst - 20.11.2018 um 09:55 Uhr
Es sein z. B. N = 10.000.

Man schreibe ein Programm, das alle natürlichen Zahlen kleiner N auflistet,
die in ihrer binären Repräsentation keine zwei aufeinander folgende Nullen besitzen.

Anmerkung: Führende Nullen werden nicht berücksichtigt, die erste natürliche Zahl, die nicht in der Liste wäre,
ist somit die 4 (4-dezimal = 100-binär).

Viel Spaß!
0 Lösungen
Array Vorkommen programmieren
Anfänger - C von Bryan - 31.10.2018 um 20:20 Uhr
Hallo Zusammen

Kann Jemand von Euch mir da weiter helfen?

Fragestellung des Vorkommen.

Gegeben ist ein Array zum Beispiel mit Zahlen als Werten:
{2, 17, 10, 9, 16, 3, 9, 16, 5, 1, 17, 14}
Schreiben Sie ein Programm, das von einem Array bestehend aus Zahlen prüft, wie viele dieser
Zahlen durch 3 teilbar sind.
Zudem sollen am Schluss die entsprechenden Zahlen ausgegeben werden. Das Programm soll für
beliebige Arrays funktionieren.

Vielen Dank für eure Lösung
0 Lösungen
Objekterkennung in einem Netz mit hexagonalen Zellen (hex-CCL)
Fortgeschrittener - C von hollst - 19.10.2018 um 14:14 Uhr
Gegeben sei ein (quasi unendlich ausgedehntes) Netz/Gitter mit hexagonalen Zellen (siehe Bild_black_white),
die entweder (zufällig) leer (Weißmarkierung) oder belegt sind (Schwarzmarkierung).

Jede Zelle hat sechs unmittelbare Nachbarzellen. Ist bei einer belegten Zelle eine oder sind mehrere Nachbarzellen gleichfalls belegt,
so werden die entsprechenden Zellen zu einem Zellcluster vereint. Auf diese Weise entstehen im Netz/Gitter
geometrisch unterschiedlich strukturierte Objekte, die vollständig von leeren Zellen umgeben sind.

Die Programmieraufgabe besteht darin, die Anzahl der so konstruierten Objekte zu zählen und unterschiedliche Objekte
mit unterschiedlichen Farben zu markieren (siehe Bild_color_labeled).

Wer sich zu der Problematik etwas belesen möchte, google bitte nach CCL oder connected-component labeling.
Dort wird allerdings in der Regel nicht mit hexagonalen sondern mit quadratischen Zellen (Pixeln) hantiert.

Viel Spaß!
0 Lösungen
Übung zu For-Schleifen
Anfänger - C von Blasius18 - 27.09.2018 um 18:41 Uhr
Die Fakultät einer Ganzzahl in den Grenzen von 0<=n<=60
als Konsolenanwendung umsetzen.


Der Anwender wird aufgefordet, eine Zahl in den Grenzen von 0 bis 60 einzugeben.
Das Programm errechnet den Wert und gibt ihn wieder aus.
Um die Entwicklung besser verfolgen zu können wird in jedem Schleifendurchgang der Aktuelle wert der Fakultät beim ,i-ten` schleifendurchgang ausgegeben.

Zusatzfeature (kann..)
gibt der Nutzer eine Zahl > 60 ein, gibt's einen Hinweis und er wird erneurt zur Eingabe einer Zahl 1 < zahl < 60 aufgefordert.
hat er 3 mal eine falsche Zahl eingegeben, bricht das Programm ab.
0 Lösungen
Rundflug über Deutschland
Fortgeschrittener - C von hollst - 11.09.2018 um 10:19 Uhr
Angenommen, ihr wollt mit eurer Einmot einen Rundflug derart
über Deutschland machen, dass ihr im Direktflug in jeder Landeshauptstadt
der 16 Bundesländer genau einmal landet, dort auftankt und dann weiterfliegt.
Start- und Endflughafen/-platz sei der eurer eigenen Landeshauptstadt.

In welcher Reihenfolge sind die Flugplätze anzufliegen, wenn die Gesamtflugstrecke
die kürzest mögliche sein soll?

Nun gut, es gibt da insgesamt 15! = 1.307.674.368.000 verschiedene Möglichkeit.
Um euren Rechner (etwas) zu entlasten, vereinfachen wir die Sache: Die zwei
Landeshauptstädte Mains und Wiesbaden bzw. Berlin und Potsdam werden auf Grund
ihrer geringen Entfernung zueinander zu jeweils einer Stadt zusammengefasst
(Mains-Wiesbaden und Berlin-Potsdam). Außerdem hat Potsdam je sowieso keinen Flughafen,
dort setzt man bekanntlich auf BER für die Zukunft. Gut, soll man in Preußen
weiter träumen und hoffen.

Für die Aufgabe braucht ihr natürlich eine Entfernungstabelle. Nehmt dafür entweder
einen Autoatlas (die Abweichungen Luftlinie/Staßenlinie seien vernachlässigt) oder
googelt nach "Entfernungstabelle", es gibt diverse Tools davon im Netz. Ihr könnt natürlich
auch die 16 geographischen Ortskoordinaten der Landshauptstädte als Basis nehmen und
damit selbst eine Entfernungstabelle konstruieren.

Viel Spaß!
1 Lösung Lösung noch nicht öffentlich
Durchnummerierung aller möglichen geordneten Ziehungsergebnisse bei 6 aus 49
Anfänger - C von hollst - 06.09.2018 um 10:28 Uhr
Beim Lotto 6 aus 49 gibt es bekanntlich 13.983.816 mögliche (geordnete) Ziehungsergebnisse (49 über 6).

Schreibe ein Programm, das jeder dieser Möglichkeiten eine natürliche Zahl zuordnet, also

1 2 3 4 5 6 -> 1
1 2 3 4 5 7 -> 2

...
...

44 45 46 47 48 49 -> 13.983.816

Viel Spaß!
0 Lösungen
Digitbegrenztes Zählen
Anfänger - C von hollst - 31.08.2018 um 11:04 Uhr
Gegeben sei ein positives Integerarray (uint) AMAX der Länge N, das mit Zufallszahlen zwischen (inclusive) 1 und einer Konstanten amax gefüllt ist.
Die Feldbelegung von AMAX stellt obere Wertgrenzen dar.

Man schreibe ein Programm, das alle möglichen Belegungen eines positives Integerarrays A (Länge N) auflistet,
wobei die Feldwerte von A entsprechend der Grenzwertbelegung von AMAX stets unterschritten werden müssen.

Beispiel (c#):
Quellcode ausblenden C#-Code
int N = 5, amax = 11; uint[] AMAX = new uint[] {3, 2, 9, 1, 4}
 
//mögliche uint[] A sind:
new uint[] {0, 0, 0, 0, 0}
new uint[] {1, 0, 0, 0, 0}
new uint[] {2, 0, 0, 0, 0}
new uint[] {0, 1, 0, 0, 0}
new uint[] {1, 1, 0, 0, 0}
new uint[] {2, 1, 0, 0, 0}
new uint[] {0, 0, 1, 0, 0}
// ...
// ...
new uint[] {2, 1, 8, 0, 3}