C++ |
03.11.2013, 22:45 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
johnny21 | C++ Meine Frage: Hallo ich habe gerade probleme bei einer Aufgabe: N sei der Zähler und D der Nenner eines Bruchs b = N/D , g sei eine ganze Zahl. Ergänzen Sie den unten angegebenen C++-Code so, dass der Zähler N1 und der Nenner D1 des Bruchs b1 = b + g berechnet werden. int N=5, D=7, g=2; int N1, D1; Hat jemand tipps für mich? Meine Ideen: keine |
||||||||||||||||||||||
|
|||||||||||||||||||||||
04.11.2013, 05:39 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | Was sind Zähler und Nenner von b1? |
||||||||||||||||||||||
04.11.2013, 08:36 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
johnny21 | Da müsste ich doch irgendwie mit dem Modulo Operator arbeiten oder ? |
||||||||||||||||||||||
04.11.2013, 16:40 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | Du wirst nur nach Zähler und Nenner des Bruches gefragt, da brauchst du kein modulo. Modulo brauchst du hier: 14:5 = 2 Rest 4 |
||||||||||||||||||||||
Anzeige | |||||||||||||||||||||||
|
|||||||||||||||||||||||
05.11.2013, 08:03 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 |
Würde der code so stimmen ? Und hast du noch einen tipp für mich für diese Fragestellung? Geben Sie ein Verfahren an, mit dem überprüft werden kann, ob es sich bei einem Bruch b = N/D um einen echten oder unechten Bruch handelt. Habe da im moment keine Idee. |
||||||||||||||||||||||
05.11.2013, 09:49 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Karlito | Hallo, 3 Kleinigkeiten:
Gruß, Karlito |
||||||||||||||||||||||
05.11.2013, 10:16 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | ICH verstehe nicht so ganz . Kannst du mir ein wenig genauer erklären was ich an meinem code ändern soll? |
||||||||||||||||||||||
05.11.2013, 10:25 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Ich glaube ich habe den Fehler : N1 = N*D; Würde jetzt der Code stimmen ? |
||||||||||||||||||||||
05.11.2013, 10:31 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Karlito | Nein! Schau dir noch einmal die Formel von euler an. Da steht klar, wie man den Nenner berechnet. Das muss man nur ins Programm übernehmen. Ich sehe da nirgendwo N*D! VG, Karlito |
||||||||||||||||||||||
05.11.2013, 10:47 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Tut mir leid wenn die Frage blöd wirkt . Aber kannst du mir erklären was ich da genau an meinem Programm ändern soll? |
||||||||||||||||||||||
05.11.2013, 13:57 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Karlito |
VG, Karlito |
||||||||||||||||||||||
05.11.2013, 14:05 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Ah danke . Geben Sie ein Verfahren an, mit dem überprüft werden kann, ob es sich bei einem Bruch b = N/D um einen echten oder unechten Bruch handelt. Hast du auch noch einen tipp für mich für diese Aufgabe? |
||||||||||||||||||||||
05.11.2013, 14:15 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | Noch ein Hinweis, da das so wohl nicht geplant war (für die Aufgabe nicht relevant, wird dir aber noch öfter unterkommen):
in der letzten Zeile wird erst N/D gerechnet - und zwar als int/int, das heißt der Teil nach dem Komma wird einfach abgeschnitten: 5/7 = 0 Rest 5, wobei der Rest ignoriert wird. Außerdem solltest du b als float oder double definieren, weil du sonst nur Ganzzahlen damit speichern kannst. Wenn du wirklich eine Kommazahl haben willst, gibt es 3 Möglichkeiten: 1.:
hier wird eine sogenannte implizite Typumwandlung durchgeführt: auf der rechten Seite ist ein int, links ein double, also wird das int einfach zum double umgewandelt. (Funktiert nur in diese Richtung, int b = 3.4 klappt nicht). 2.:
es wird erst 0.0+N gerechnet, dabei wieder implizit in double umgewandelt, dann double/int, was auch ein double liefert. 3.: (die beste Variante)
(double) ist ein cast, hier wird direkt gesagt, wie umgewandelt werden soll. Bezieht sich nur auf das N, dann wieder double/int = double.
edit: hier stand Unsinn, ich hatte den unechten Bruch mit einem Scheinbruch verwechselt. |
||||||||||||||||||||||
05.11.2013, 14:15 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Karlito | Ja. Erstmal klären was ein echter und was ein unechter Bruch ist. Welche Eigenschaft hat dann die Zahl b, die in der Aufgabe durch N und D repräsentiert wird. Wie müssen sich N und D verhalten und wie findet man das im Programm heraus. VG, Karlito |
||||||||||||||||||||||
05.11.2013, 15:01 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Echter Bruch müsste doch ein Bruch mit Komma Zahl sein oder ? Unechter Bruch 2/1 zum Beispiel ? |
||||||||||||||||||||||
05.11.2013, 15:19 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | Du verwechselst den unechten Bruch auch mit dem Scheinbruch: Mathebuch echter Bruch: Zähler < Nenner unechter Bruch: Zähler >= Nenner Scheinbruch: Zähler ist Vielfaches des Nenners |
||||||||||||||||||||||
05.11.2013, 15:42 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Aha ok. Weisst du welches Verfahren da genau gefragt ist ? |
||||||||||||||||||||||
05.11.2013, 16:37 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | Eine einfach if-Abfrage:
oder, verkürzt und deutlich schlechter verständlich:
|
||||||||||||||||||||||
06.11.2013, 00:30 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Nur noch 2 letzte fragen ,dann lasse ich euch in ruhe leute . a)Erklären Sie die Funktionsweise des Modulo-Operators % anhand eines Beispiels. Wie kann man mit Hilfe dieses Operators testen, ob eine Zahl a ein ganzzahliges Vielfaches einer Zahl b ist? Ich weiss das der modulo Operator eine Rest Zahl ausgibt , aber wie kann ich das testen? b)Rufen Sie sich die mathematischen Zusammenhänge in Erinnerung: Wenn ihr Saugroboter eine Ausrichtung von 30° hat und um 1m weiterbewegt wird, wie ändern sich dann seine x- und y-Koordinaten? Wie lautet die allgemeine Formel? Hier habe ich leider keine Ahnung. |
||||||||||||||||||||||
06.11.2013, 05:26 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | zu a)
zu b) hast du dir durchgelesen, was ich dir hier am 17.10.2013, 18:21 Uhr geschrieben habe? Und noch ein Bild dazu: Link |
||||||||||||||||||||||
06.11.2013, 10:36 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | int rest = a % b; if (rest == a) //a == 1; printf("a ist Vielfaches von b"); else printf("a ist kein Vielfaches von b"); So müsste es stimmen oder euler? Danke auch für deine Geduld. Ist diese Formel gemeint : sin() /180grad *pi Ich weiss nicht ob ich die Formel so ganz verstanden hab euler? |
||||||||||||||||||||||
06.11.2013, 16:56 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
eulerscheZahl | wieso soll der Rest 1 sein?
7 ist aber kein Vielfaches von 3, da stimmt noch etwas nicht. Damit a Vielfaches von b ist, muss die Division a/b glatt aufgeben, das heißt der Rest muss 0 sein.
zu b) ich meine:
Für den Fall mit 30° musst du nur noch einsetzen: laenge = 1m, winkel = 30° x += 1m * cos(Pi * 30/180) = sqrt(3)/2 m = 0,866... m der Saugroboter bewegt sich also um 86,6cm in x-Richtung (und 50cm in y-Richtung). |
||||||||||||||||||||||
06.11.2013, 20:10 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Johnny21 | Danke Euler . Kannst du mir nur noch sagen woher du die Formel her hast? |
||||||||||||||||||||||
07.11.2013, 00:10 | Auf diesen Beitrag antworten » | ||||||||||||||||||||||
Karlito | Hallo, wenn ich mich nicht irre ist Trigonometrie im Lehrplan aller Schulformen und allen Bundesländern in der 9. oder 10. Klasse enthalten. Daher stammt dieses Wissen. Ansonsten könnte es sein, dass man Wegweiser im Tafelwerk findet. Da habe ich aber momentan keins zur Hand. VG, Karlito |
|