Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo, ich bin noch ganz am Anfang mit C++;

ich soll folgende Aufgabe lösen, mir fehlen allerdings

jegliche Kenntnisse diesbezüglich das gekonnt umzusetzen.

Es wäre nett wenn Ihr mir behilflich sein könntet

Aufgabe:

Es sollen zwei eingelesene Zahlen dividiert werden (in einer eigenen Funktion). Der erhaltene Rest soll an das Hauptprogramm übergeben werden.

Dieser Vorgang soll mit neu eingelesen Zahlen wiederholt werden.

Beide Rückgabewerte sollen nun durcheinander dividiert werden (a/b und b/a) und das jeweilige Ergebnis ausgegeben werden.

Worauf ist bei dieser Aufgabe zu achten?

Wie kann man das programmtechnisch geschickt lösen?

tschüssi ;)

BüDi

Hallo BüDi, und Willkommen auf dem Board. :)

Originally posted by BüDi

ich soll folgende Aufgabe lösen, mir fehlen allerdings

jegliche Kenntnisse diesbezüglich das gekonnt umzusetzen.

Wenn dir wirklich "jegliche Kenntnisse" fehlen, solltest du dir zuerst einmal die Grundlagen von C bzw. C++ aneignen. Ich frage mich allerdings, warum dir jemand so eine Aufgabe stellt, wenn dir jegliche Kenntnisse zur Bewältigung fehlen.

Dieses Forum ist kein Hausaufgabenservice. Es ist dir auch nicht damit geholfen, wenn jemand deine Fragen beantwortet, und du die Antwort nicht verstehst. Wenn du selbst versuchst, die Aufgabe zu lösen, und dabei nicht weiterkommst, wird dir hier gern weitergeholfen, aber dann musst du auch konkrete Fragen stellen.

Ich weiß ned ob ich dich richtig verstanden hab aber ich glaub das du mit Rest MODULO meinst. Hier mal ein kleines Testprogramm ist zwar nur grob aber vielleicht hilft es dir ja

//autor: Huber Werner

#include <stdio.h>

#include <conio.h>

int eingabe();

void main()

{

int erg1,erg2; //die 2 ergebnisse

double erg; //das endergebniss

erg1 = eingabe(); //aufruf der funktion eingabe (der RÂckgabewert wird in erg1 geschoben)

erg2 = eingabe();

erg=(double)erg1/erg2; //erg ist vom typ double darum muss mindestens 1 ganzzahl variable als double gecastet werden

printf("%lf",erg); //ausgabe des ergebnisses

getch();

return;

}

int eingabe()

{

clrscr(); //Bildschirm lâ€schen

int zahl1,zahl2; //die zwei einzugebenen Zahlen (hier integer)

printf("Geben Sie bitte die 1. Zahl ein: ");

fflush(stdin); //leeren des Tastaturpuffers

scanf("%d",&zahl1); //einlesen der 1 Zahl

printf("Geben Sie bitte die 2.Zahl ein: ");

fflush(stdin);

scanf("%d",&zahl2);

return(zahl1%zahl2); //das ergebniss wir hier zurÂckgegeben

}

hallo, mmhh mit rest ist sicherlich modulo gemeint, der code hier gibt lediglich das ergebnis der division aus :-/ naja muss ich noch ein bissel modifizieren ;-) aber ich danke dir für deine Hilfe! @ Klotzkopp: es ist mir klar das es kein hausaufgabenservice ist, es sollte auch garnicht so rüberkommen als hätte ich sie gerne von jemanden anderem gelöst bekommen, sondern ich bin nur über jeden tip dankbar!!

//Author: BüDi

# include <iostream>

using namespace std;

int division1 (int a, int B)

{

int ergdivision1=(a/b);

return ergdivision1;

}

int division2 (int c, int d)

{

int ergdivision2=(c/d);

return ergdivision2;

}

void main ()

{

int zahl1, zahl2, zahl3, zahl4;

int ergebnis1, ergebnis2, ergebnis3, ergebnis4;

cout << "Bitte geben Sie die erste Zahl ein, welche" << endl;

cout << "zum dividieren verwendet werden soll:" << endl;

cin >> zahl1;

cout << "Bitte geben Sie die zweite Zahl ein, welche" << endl;

cout << "zum dividieren verwendet werden soll:" << endl;

cin >> zahl2;

ergebnis1=division1(zahl1,zahl2);

cout << "Bitte geben Sie die dritte Zahl ein, welche" << endl;

cout << "zum dividieren verwendet werden soll:" << endl;

cin >> zahl3;

cout << "Bitte geben Sie die vierte Zahl ein, welche" << endl;

cout << "zum dividieren verwendet werden soll:" << endl;

cin >> zahl4;

ergebnis2=division2(zahl3,zahl4);

ergebnis3=ergebnis1 / ergebnis2;

ergebnis4=ergebnis2 / ergebnis1;

cout << "Das Ergebnis lautet:" << hex << ergebnis3 << "und:" << hex << ergebnis4 << endl;

}

Bzw.

............

int ergdivision1=(a/b);

............

............

int ergdivision2=(c/d);

............

in

............

int ergdivision1=(a%B);

............

............

int ergdivision2=(c%d);

............

abändern!

Das Problem das allerdings noch besteht, ist, wenn wenn bspw. eine größere zahl durch eine kleinere dividiert wird, schmiert die anwendung ab!wie kann ich dies umgehen?

Originally posted by BüDi

Das Problem das allerdings noch besteht, ist, wenn wenn bspw. eine größere zahl durch eine kleinere dividiert wird, schmiert die anwendung ab!wie kann ich dies umgehen?

Was meinst du mit abschmieren? Bekommst du eine Fehlermeldung? Kannst du den minimalen Code posten, mit dem man den Fehler reproduzieren kann?

@root_of_hell:

Die Anwendung von fflush auf Eingabeströme kann zu undefiniertem Verhalten führen.

Originally posted by BüDi

int division1 (int a, int B)

{

}

int division2 (int c, int d)

{

}

void main ()

{

int zahl1, zahl2, zahl3, zahl4;

int ergebnis1, ergebnis2, ergebnis3, ergebnis4;

ergebnis1=division1(zahl1,zahl2);

ergebnis2=division2(zahl3,zahl4);

ergebnis3=ergebnis1 / ergebnis2;

ergebnis4=ergebnis2 / ergebnis1;

cout << "Das Ergebnis lautet:" << hex << ergebnis3 << "und:" << hex << ergebnis4 << endl;

}

Das Problem das allerdings noch besteht, ist, wenn wenn bspw. eine größere zahl durch eine kleinere dividiert wird, schmiert die anwendung ab!wie kann ich dies umgehen?

Du meinst also wenn du z.B. folgende werte hast:

ergebnis1 = division1(2,5)

-> in diesen fall wäre ergebnis1 = 0, da int kein gleitkommawert ist...

->dies führt dazu, das du dann bei der Zeile

ergebnis4 = ergebnis2/ ergebnis1

durch 0 teilst, was nicht zulässig ist ->absturz(oder?)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.