Re: Informatik Hausaufgabe
Hallo Conni,
wie man eine Funktion deklariert, sollte doch klar sein (hängt ab von der Sprache, die du verwendest, und die hast Du ja nicht genannt).
Was muß die Funktion machen:
"prüfen, ob eine bestimmte Ziffer (...) in einer beliebigen Dezimalzahl enthalten ist."
Das läßt sich am einfachsten lösen, wenn dur die zu findende Ziffer als Zeichen (char, character, string, ...) nimmst und auch die Dezimalzahl als Zeichenkette (string, array of char, ...). Um Zahlen in Zeichenketten umzuwandeln, bieten Programmiersprachen üblicherweise Funktionen an (zB. FloatToStr oder so ähnlich). Auch für das Suchen einer Zeichenkette (also der Ziffer) in einer anderen (also der Zahl) gibt es Funktionen (zB. Pos). Das sollte als Lösungsweg reichen.
Alternativ kannst du ach die Mathematik bemühen, das ist aber komplizierter: In einer Schleife zählst Du einen Zähler runter, und zwar für jede Stelle der Dezimalzahl (bei 5234.239 also von +3 bis -3, weil 10³ für die Tausender, 10² für die Hunderter usw. bis 10-³ für die Tausenstel). In dieser Schleife berechnest du die entsprechende Potenz von 10. Diese Potenz soll der "Teiler" sein. Die Zahl teilst du durch diesen Teiler. Speichere den Bruch als Zwischenergebnis. Ermittele den Vorkomma-Anteil (dafür gibt es Funktionen, zB. Int). Teste, ob diese Ganzzahl gleich der Ziffer ist. Wenn ja, brich die Schleibe ab und gib "gefunden!" zurück. Wenn nein, dann subtrahiere von der Zahl das Produkt aus dem "Teiler" und der Ganzzahl. Damit verschindet die erste Ziffer der Zahl. Jetzt beginnt die Schleife von vorne für die nächste Dezimalstelle. Wenn am Ende die Schleife durchgelaufen ist, ohne abgebrochen worden zu sein, dann wurde die Ziffer nicht gefunden.
LG
Jochen