C++; Nur einen bestimmten Zahlenberreich zulassen als eingabe

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;
float temp[7];

void eingabe()
{
    for (int i = 0; i < 7; i++)
    {
        cout << "Geben Sie die Tagestemperatur (in Grad Celsius) fuer Tag " << i + 1 << " ein: ";
        cin >> temp[i];

    }
}

void kontrolle()
{
    for (int i = 0; i < 7; i++)
    {

        cout << "Tag " << i <<": " << temp[i] << "\n";
        if (temp[i] < -99 || temp[i] > 99)
        {
            cout << "Diese Eingabe war Falsch! Bitte einen Wert zwischen -99 und 99 eingeben.\n";
        }

    }
}

int main()
{
    eingabe();
    kontrolle();

    system("Pause");
    return 0;
}

Hoffe habs richtig verstanden...

MFG

DeepThought

BravoByte 
Fragesteller
 27.02.2014, 11:15

genau so, perfekt, danke :)

0
BravoByte 
Fragesteller
 27.02.2014, 11:44
@BravoByte

Noch eine andere Frage vllt. weist dus ja grad :)

Wenn ich jetzt eine string Variable in eine andere Funktion übernehmen will in der selben Datei, wie mach ich das? :D

Also ich dacht jetzt so:

string Name_Funktion () { string a = "..."; return a; }

void NameFunktion2() { cout << a; }

dann sagt er mir aber dass er das a nicht erkannt hat :(

0
deepthought  27.02.2014, 11:47
@BravoByte

was genau willst du machen? du willst in Name_Funktion() einen string definieren, den du dann in NameFuntion2() nutzen kannst?

0
BravoByte 
Fragesteller
 27.02.2014, 11:49
@deepthought

also ja, ich will das in dem Fall jetzt, dass die Konsole das Wort ausgibt was ich in a definiert hab..

0
tooob93  27.02.2014, 11:52
@BravoByte

wenn du das a in der funktion deklarierst, dann kennt es nur die funktion entweder du übergibst vorher eine variable wos reingeschrieben wird, oder du deklarierst die variable global (besser eine variable an die funktion zurückgeben)

0
BravoByte 
Fragesteller
 27.02.2014, 11:55
@tooob93

string a ist dann doch sozusagen eine variable oder nicht? oder wie soll ich das an eine variable übergeben? Beispiel Quellcode? :)

0
deepthought  27.02.2014, 11:57
@BravoByte

Also ich würde dir empfehlen mal etwas über Parameterweitergabe in C++ nachzulesen.

Ich denke, dass was du machen willst, ist dass hier:

#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

void darstellen(string a)
{
  cout << a << endl;
}

int main()
{
  string b;
  cin >> b;
  cout << endl;
  darstellen(b);
  system("Pause");
  return 0;
}
0
deepthought  27.02.2014, 12:04
@BravoByte

oder dass hier, aber an beispiel einer rechnung. Sehe hier nicht viel Sinn im Umgang mit Wörtern.:

#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;


int quadrat(int a)
{
    int ergebniss;
    ergebniss = a*a;
    return ergebniss;
}

int main()
{

    int b, c;
    cout << "\nZahl: ";
    cin >> b;
    c = quadrat(b);
    cout << "\nErgebniss: " << c << endl;
    system("Pause");
    return 0;
}
0
tooob93  27.02.2014, 12:04
@BravoByte

Name_Funktion(string a){

string a="...";

return a;}

Name_Funktion2{string a){

cout a;}

int main (){

string a; Name_Funktion(string a);

Name_Funktion2(string a);

}

0
BravoByte 
Fragesteller
 27.02.2014, 12:08
@deepthought

also ich will in einem Unterprogramm sagen drücke 1: string a ="Tage" drücke 2:string a="Wochen" und dann will ich in einem weiteren Unterprogramm sagen "Es dauerte so und so viel "a"s

Nur das a erkennt er nicht im nächsten Unterprogramm wie schaff ich das? Also ich hab jetzt 1.:

cout << "Moechten sie mit\n(1)Stunden,\n(2)Tagen,\n(3)Monaten,\n(4)Jahren oder\n(5)Wochen arbeiten?";
    char antstmj;
    string a = "";
    do
    {

        antstmj = _getch();
        if (antstmj == '1')
            a = "StundeN";
        else if (antstmj == '2')
            a = "TagEn";
        else if (antstmj == '3')
            a = "MonatEn";
        else if (antstmj == '4')
            a = "JahrEn";
        else if (antstmj == '5')
            a = "WocheN";
    } while (antstmj != '1' && antstmj != '2' && antstmj != '3' && antstmj != '4' && antstmj != '5');   

da hab ich festgelegt was 'a' ist und jetzt möcht ich in einem anderen Teil sagen: cout << "\nMit wie vielen " << a << " moechten sie arbeiten?\n"; int x; cin >> x;
Und da erkennt er das a nicht und wie schaff ich das jetzt? :)

0
BravoByte 
Fragesteller
 27.02.2014, 12:15
@tooob93

Da wo bei Name_Funktion2 string a in den Klammern steht brauch ich die Klammern schon für ein Array..

Das heisst da steht schon double Name_Funktion2(double Array[]) und nu?

0
deepthought  27.02.2014, 12:28
@BravoByte
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;



string auswahl()
{
    string wahl;
    int a;
    cout << "Bitte Waehlen:\n(1)Stunden\n(2)Tagen\n(3)Wochen\n(4)Monaten\n(5)Jahren\n";
    cin >> a;
    switch (a)
    {
    case 1:
        wahl = "Stunden";
        break;
    case 2:
        wahl = "Tagen";
        break;
    case 3:
        wahl = "Wochen";
        break;
    case 4:
        wahl = "Monaten";
        break;
    case 5:
        wahl = "Jahren";
        break;
    default:
        cout << "\nUngülitg";
        break;
    }
    return wahl;
}

int main()
{

    cout << "\n" << auswahl() << "\n";
    system("Pause");
    return 0;
}
0
tooob93  27.02.2014, 12:43
@BravoByte

du kannst mehrere variablen übergeben

Name_Funktion2(double Aray[]; String a){}

0

schön, dass du C++ lernen möchtest. Deine Frage zeigt jedoch, dass du nicht sehr systematisch heran gehst. Auch die Antworten werden dir wahrscheinlich beim Lernen von "echtem" C++ nicht viel weiter helfen. Ich empfehle Dir, dass du dir einen C++-Kurs wie z.B. cpp-mta-rwthaa.pdf auf http://www.walddobler.de/Skripte/cpp/. Dort findest du auch alle Antworten auf deine aktuellen Probleme. Das systematische Lernen ist zwar anfangs recht anstrengend und vielleicht auch etwas langweilig, führt aber letzten Endes zum Ziel. Um C++ autodidaktisch einigermaßen (Klassen, Vererbung, Überladen von Funktionen und Operatoren, Templates, Standard Template Library) zu lernen, muss man schon mit 2 Jahren rechnen.