Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C++ » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
johnny21
unregistriert
C++ Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
03.11.2013 22:45
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

[latex]b=\frac{N}{D}[/latex]
[latex]b_1=\frac{N}{D}+g = \frac{N+g\cdot D}{D}[/latex]
Was sind Zähler und Nenner von b1?

__________________
Syntax Highlighting fürs Board (Link)
04.11.2013 05:39 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Da müsste ich doch irgendwie mit dem Modulo Operator arbeiten oder ?
04.11.2013 08:36
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
04.11.2013 16:40 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

int main(){

	int b; int b1;

	int N = 5 , D= 7, g =2;

	b = N/D;

	int N1;

	int D1;


	N1 = (N*g);

	D1 = (D*1);

	b1 = b+g;







}
[/quote]

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 08:03
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

3 Kleinigkeiten:
  • b und b1 spielen für die Bearbeitung der Aufgabe keine Rolle. Die Ergebnisse sind dann auch immer nur Ganzzahlwerte, welche dem abgerundeten Wert des Bruchs entsprechen.
  • schau dir mal die Berechnung von N1 an. Die stimmt noch nicht.
  • D1 = (D*1) könnte man kürzer als D1 = D darstellen.


Gruß,

Karlito
05.11.2013 09:49 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ICH verstehe nicht so ganz .

Kannst du mir ein wenig genauer erklären was ich an meinem code ändern soll?
05.11.2013 10:16
Johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich glaube ich habe den Fehler :

N1 = N*D;

Würde jetzt der Code stimmen ?
05.11.2013 10:25
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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:31 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 10:47
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

int main(){

	int N = 5 , D= 7, g =2;

	int N1;
	int D1;

	N1 = N+g*D;
	D1 = D;

	cout << N << "/" << D << " + " << g << " = " << N1 << "/"  << D1 << endl;
}


VG,

Karlito
05.11.2013 13:57 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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:05
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Noch ein Hinweis, da das so wohl nicht geplant war (für die Aufgabe nicht relevant, wird dir aber noch öfter unterkommen):
code:
1:
2:
3:
int b; int b1;
int N = 5 , D= 7, g =2;
b = N/D;

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.:
code:
1:
2:
double b = N;
b = b/D;

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.:
code:
1:
2:
double b;
b = (0.0+N) / D

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)
code:
1:
2:
double b;
b = (double)N / D

(double) ist ein cast, hier wird direkt gesagt, wie umgewandelt werden soll. Bezieht sich nur auf das N, dann wieder double/int = double.


Zitat:
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.

edit: hier stand Unsinn, ich hatte den unechten Bruch mit einem Scheinbruch verwechselt.

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 05.11.2013 14:27.

05.11.2013 14:15 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 14:15 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Johnny21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Echter Bruch müsste doch ein Bruch mit Komma Zahl sein oder ?

Unechter Bruch 2/1 zum Beispiel ?
05.11.2013 15:01
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » C++