3 Fragen zum C++ Programmieren(Einsteiger)
-
Hallo liebes Forum,
Ich lernen nun seit 1 Woche C++(ohne jedwede Vorkenntnisse in Programmierung) und habe alles gut bis jetzt verstanden. Nur habe ich noch 3 Fragen die mich irritieren...-
Überall steht das die void-Funktion keine Werte zurückgibt doch wenn ich eine schreibe(Beispiel unten) gibt sie mir dich Werte wie strings, ints usw aus? Was wird genau als Wert bezeichnet?
-
Ich habe mit meinen jetzigen Wissen einen Rechner gebastelt. Dieser läuft auch ganz gut ohne große Probleme nur möchte ich gerne die Rechnungen vom User irgendwo abspeichern und auf befehl des Users wieder ausgeben, wäre das möglich?
-
Weshalb schreibt man Funktionen, und nicht einfach alles in die Main() hinein? Um das Programm kleiner zu halten?
Hier mein Rechner (bitte nicht lachen.. wie gesagt 1 Woche Wissensstand.. ^^)
#include <iostream>
#include <cmath>
#include <vector>using namespace std;
double z1, z2;
void Wurzelrechnung()
{
//funktion zur errechnung von Wurzeln.
cout << "Bitte Wert zur berechnung der Wurzel eingeben: " << endl;
cin >> z1;
cout << "Die Wurzel von " << z1 << " wird berechnet..." << endl;
cout << "Die Wurzel von " << z1 << " beträgt: " << sqrt(z1) << endl;}
void Hochzahlen()
{
//Funktion zur errechnung von Hochzahlen.
cout << "Bitte den ersten Wert eingeben: " << endl;
cin >> z1;
cout << "Bitte den zweiten Wert eingeben: " << endl;
cin >> z2;pow(z1, z2); cout << z1 << "^" << z2 << " Ergibt : " << pow(z1, z2) << endl;
}
void GrundRechnung()
{
//Funktion für die Grundrechenarten.
char OP;
double summ;cout << "Bitte geben sie den ersten Wert ein: " << endl; cin >> z1; cout << "Bitte den Operator eingeben: ( + | - | * | / )" << endl; cin >> OP; cout << "Bitte den letzten Wert eingeben: " << endl; cin >> z2; switch(OP) { case '+': summ = z1 + z2; break; case '-': summ = z1 - z2; break; case '*': summ = z1 * z2; break; case '/': summ = z1 / z2; break; } cout << z1 << OP << z2 << " Ergibt: " << summ << endl;
}
int main()
{
//Auswahlsmenü zur jeweiligen Rechenart.
int auswahl;cout << "Bitte wähle eine Rechenart: " << endl; cout << "1 für Grundrechenarten \n2 für Hochzahlen \n3 für Wurzelberechnung " << endl; cin >> auswahl; if(auswahl == 1) { GrundRechnung(); } else if(auswahl == 2) { Hochzahlen(); } else if(auswahl == 3) { Wurzelrechnung(); } cout << endl; return main();
}
-
-
- zurückgeben ist
return ...
nichtcout << ...
- ja, geht. Nein, ist nicht in zwei Sätzen erklärt
- stell dir 1000000 Zeilen in der main vor. Wartbarkeit, Modularisierung, Wiederverwendung ...
- zurückgeben ist
-
@Balgeroth sagte in 3 Fragen zum C++ Programmieren(Einsteiger):
Weshalb schreibt man Funktionen, und nicht einfach alles in die Main() hinein? Um das Programm kleiner zu halten?
du kannst auch dein ganzes programm in eine zeile schreiben. dann wird es noch kleiner.
-
zu 2: ja du kannst es z.b. in eine datei schreiben. in gängigen lehrbüchern wird das thema "dateiein- und -ausgabe" umfassend behandelt. (2 sätze! )
-
@Balgeroth sagte in 3 Fragen zum C++ Programmieren(Einsteiger):
Weshalb schreibt man Funktionen, und nicht einfach alles in die Main() hinein?
pow
ist auch eine Funktion (mit einem Rückgabetyp ungleich void)
cout
auch.Möchtest du diese Funktionen nachprogrammieren, bzw. jedesmal wenn du diese brauchst den Code hinschreiben?
-
@DirkB sagte in 3 Fragen zum C++ Programmieren(Einsteiger):
pow ist auch eine Funktion (mit einem Rückgabetyp ungleich void)
cout auch.std::cout
ist keine Funktion, sodern eine Variable vom Typstd::ostream
. Die Funktion zur Ausgabe, auf die @DirkB anspricht, istoperator<<
. Man schaue nach zum Beispiel hier: https://en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgt und https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt
-
Dieser Beitrag wurde gelöscht!
-
@titan99_ sagte in 3 Fragen zum C++ Programmieren(Einsteiger):
@wob sagte in 3 Fragen zum C++ Programmieren(Einsteiger):
sodern eine Variable vom Typ std::ostream
Dann ist ein Objekt auch eine Variable. Und eine Klasse ein Typ.
Würde ich so sehen. Ist das nicht gängig? (immerhin heißt es im template<typename T>... ja auch "Typename" - und das kann eine Klasse sein oder ein primitiver Typ)
-
@wob sagte in 3 Fragen zum C++ Programmieren(Einsteiger):
Würde ich so sehen. Ist das nicht gängig?
Doch. Das war ein völlig überflüssiger Einwurf von @titan99_
-
Dieser Beitrag wurde gelöscht!