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.

Aufgabe vom Ausbilder : schreibe einen Konsolen TR in C++

Empfohlene Antworten

Veröffentlicht

Hallo :)

soweit sogut, rechnen tut er schonmal hier ist der Code :

#include <iostream>                         // Input Output Bibliothek

using namespace std;


void Aufforderung()                         // Funktion ohne Rückgabewert

{

cout << "Bitte geben Sie eine Zahl ein";

cout << endl;

}

void error()

{

cout << "nicht moeglich!";

cout << endl;

}

void errordivide()

{

cout << "teilen durch 0 nicht moeglich!";

cout << endl;

}

int main ()

{

int zeichen;

double zahl1, zahl2, ergebnis;

cout <<  endl;

cout << "Geben Sie die Rechenart ein:  [1] -> +  [2] -> -  [3) -> * [4] -> /  ";

cin >> zeichen;

if( zeichen < 0 || zeichen > 4 ) error();



Aufforderung();

cin >> zahl1;


Aufforderung();

cin >> zahl2;


if(zeichen == 1){

ergebnis = zahl1 + zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}



if (zeichen == 2){

ergebnis = zahl1 - zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}


if (zeichen == 3){

ergebnis = zahl1 * zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}


if (zeichen == 4){

if(zahl2 == 0) errordivide();

else if (ergebnis = zahl1 / zahl2);

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}




system("pause");

return (0);


}




Er hat noch ein paar "Kinderkrankheiten" wie teilen durch null funktioniert noch nicht so recht und was mein Hauptproblem ist, die eingabe von Buchstaben, ich möchte das er eine Fehlermeldung ausgibt und wieder in die Auswahl zurückspringt, jedoch steh ich da grade n bisis auf dem Schlauch ^^ kann mit jmd helfen ^^

Ok, was dein Problem mit dem durch "0" teilen ist, versteh ich nicht so ganz gerade.

Aber wenn du prüfen willst, ob eine Zahleingegeben ist, lautet das Stichwort "isdigit".

Das heißt, du musst die einzelnen Stellen deiner Eingabe überprüfen.

z.B.

for (i=0; i<[Die Länge der Eingabe]; i++)

{

if( isdigit([eingabe(i)]) )

//nischts

else

error();

}

C++ hab ich schon länger nicht mehr gemacht, aber ich hoffe es hilft.

die Angaben in eckigen Klammern musst du noch ersetzen.

mfG

Marco

Bearbeitet von mharms

Bei Fließkommatypen sind auch Nicht-Ziffernzeichen erlaubt, wie Minus, Punkt oder E.

Lass das doch besser den >> Operator machen.

*Hand an Stirn klatsch* da hast du natürlich Recht ;)

Naja, ist halt noch morgens ;D

Dev C++
Diese Entwicklungsumgebung ist fehlerbehaftet und wird seit Jahren nicht mehr weiterentwickelt. Kann gut sein, dass der Code deshalb nicht funktioniert.

Wenn du nicht dazu gezwungen bist, Dev-C++ zu benutzen, steig auf etwas aktuelles um, wie Code::Blocks oder Microsoft Visual C++ Express.

Diese Entwicklungsumgebung ist fehlerbehaftet und wird seit Jahren nicht mehr weiterentwickelt. Kann gut sein, dass der Code deshalb nicht funktioniert.

Wenn du nicht dazu gezwungen bist, Dev-C++ zu benutzen, steig auf etwas aktuelles um, wie Code::Blocks oder Microsoft Visual C++ Express.

Ich würde dir auch Microsoft Visual C++ Express empfehlen. Bekommst du kostenfrei und die Debuggingfunktion ist sehr gut.


if(zeichen == 1){

ergebnis = zahl1 + zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}



if (zeichen == 2){

ergebnis = zahl1 - zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}


[...]


Ich vermisse ein else ... oder noch besser/übersichtlicher wäre switch und Funktionskapselung.
system("pause");
Müffelt.
cin.get();
Er hat noch ein paar "Kinderkrankheiten" wie teilen durch null funktioniert noch nicht so recht
Mathematisch funktioniert das nie.
und was mein Hauptproblem ist, die eingabe von Buchstaben, ich möchte das er eine Fehlermeldung ausgibt und wieder in die Auswahl zurückspringt, jedoch steh ich da grade n bisis auf dem Schlauch ^^ kann mit jmd helfen ^^
Hinweis:
bool isNumeric( const std::string& s )

{

[INDENT]std::stringstream ss(s);

double d;

ss >> d;

return ss.good();[/INDENT]


}

  • Autor

Mathematisch funktioniert das nie.

ja genau, dafür ist eine Fehlermeldung vorgesehen die dann in Kraft tritt, was sie auch tut, allerdings geht das Prog dann aus ^^, aber damit beschäftige ich mich später :) erst mal den anderen Kram lösen, eins nach dem anderen.

:)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.