Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 06:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



4. - Stunde Mathe, Schleifen und Funktionen

Discussion on 4. - Stunde Mathe, Schleifen und Funktionen within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2007
Posts: 652
Received Thanks: 132
4. - Stunde Mathe, Schleifen und Funktionen

Guten Mittag,
kommen wir zu unserer 4.Stunde. Nur Addition ist langweilig? Ändern wir es doch einfach ;D und führen die „if-schleife“ ein.
Code:
if( var == 1)
{
	//Befehle etc;
}
Ich weiß, dass die if-methode nicht die beste ist, aber ich mag das case-break zeug nicht ;D

Erstmal brauchen wir eine „Abfrage“, eine variable, und natürlich schleifen ;D

Code:
cout << „Addition (1), Subtrahieren (2) etc.“ << endl;
int auswahl;
cin >> auswahl;
if ( auswahl == 1)
{
	//addition
}
else if(auswahl == 2)
{
	//subtraktion
}
//etc. ;D
Allerdings wird unsere Source jetzt sehr unübersichtlich und lang (wobei das hier noch geht, wenn ich an die Source denk mit der ich arbeite o_O )

Doch hier kommen die Funktionen ins Spiel!
Funktionen werden ähnlich wie Variablen erzeugt aber doch anders ;D
Code:
void Funktionsname()
{
	//Befehle etc.
}
Funktionen aufrufen ist auch sehr einfach.

Code:
Funktionsname();
Also müsst ihr für jede Rechenmethode eine Funktion schreiben und diese dann aufrufen.
Eure Aufgabe könnt ihr euch wohl schon denken ;D
Hausaufgabe: Schreibt einen vollständigen Rechner! =D

Und tut euch selber den Gefallen und rückt alles ein
also:
Code:
int main()
{
	//eingerückt ;D
}
MeepMoep is offline  
Thanks
5 Users
Old 01/17/2008, 19:13   #2
 
elite*gold: 0
Join Date: Sep 2006
Posts: 7
Received Thanks: 0
Hab nen problem mit dem erstellen von Funktionen die funktion kann nicht kompiliert werden, weil anscheinend noch nen befehl davor stehen muss oder nen semikolon. zumindest meint der compieler das kanns sein das ich noch nen bibliothek einbinden muss?
Burner999 is offline  
Old 01/17/2008, 19:25   #3
 
elite*gold: 0
Join Date: Dec 2007
Posts: 652
Received Thanks: 132
Bei sowas bitte die source Posten
MeepMoep is offline  
Old 01/17/2008, 22:33   #4
 
elite*gold: 0
Join Date: Sep 2006
Posts: 7
Received Thanks: 0
Ok hier is die source ich weiß der rechner selbst funzt so noch net aber es geht mir erstma darum das void net funzt^^

Code:
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main()
{
string zeichen;
int zahl;
int ergebnis;



void Plus()
{
ergebnis=ergebnis+zahl;     
}
void Minus()
{
ergebnis=ergebnis-zahl;    
}
void Mal()
{
ergebnis=ergebnis*zahl;     
}
void Geteilt()
{
ergebnis=ergebnis/zahl;     
}
while (0<1)
{
cout << "Willkommen im Burningrechner v2" << endl
<< "Bitte erst die Zahl und nach der zahl das rechenzeichen eingeben" << endl;
cin >> ergebnis;
cin >> zeichen;
cin >> zahl;
if (zeichen=="+") Plus();
if (zeichen=="-") Minus();
if (zeichen=="*") Mal();
if (zeichen=="/") Geteilt();
cin.get();
}

}
Burner999 is offline  
Old 01/17/2008, 23:08   #5
 
elite*gold: 0
Join Date: Oct 2006
Posts: 225
Received Thanks: 207
Hab mir mal die Mühe gemacht und dein Source gefixxt:
(Das Forum änderst immer automatisch überall wo "n" oder "nn" steht, kommt noch ein "\" vor, also bei "n" kommt "\n" und bei "nn" kommt "\n\n" hin, aber das Forum lässt die "\" weg. Falls du nicht weißt was ich meine dann geb ich dir den Source nochmal ohne die Umbrüche.

PHP Code:
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

string zeichen;
int zahl1;
int zahl2;
int ergebnis;

void Plus()
{
ergebnis=zahl1+zahl2;
cout << "nErgebnis : " << ergebnis <<  "nn" << endl;     
}
void Minus()
{
ergebnis=zahl1-zahl2
cout << "nErgebnis : " << ergebnis << "nn" <<  endl;     
}
void Mal()
{
ergebnis=zahl1*zahl2
cout << "nErgebnis : " << ergebnis <<  "nn" << endl;      
}
void Geteilt()
{
ergebnis=zahl1/zahl2;  
cout << "nErgebnis : " << ergebnis << "nn" << endl;     
}


int main()
{

while (
0<1)
{
cout << "Willkommen im Burningrechner v2" << endl
<< "Bitte erst die Zahl dann das Rechenzeichen und dann die zweite Zahl eingeben:n" << endl;
cin >> zahl1;
cin >> zeichen;
cin >> zahl2;
if (
zeichen=="+"Plus();
if (
zeichen=="-"Minus();
if (
zeichen=="*"Mal();
if (
zeichen=="/"Geteilt();
cin.get();
}


Damit du auch aus deinen Fehlern lernst erklär ich dir mal was du falsch gemacht hast.

Also wegen den 'Void', mit void erstellst du eine eigene Funktion, und du kannst keine Funktion in einer anderen Funktion erstellen, dein Source sah so aus:

Code:
int main()
{
    void()
}
Richtig wäre gewesen:
Code:
 int main()
{
   //source
}

void()
{
   //source
}
Unter anderem hast du 3 Sachen eingelesen, Ergebnis, Zahl und Rechenzeichnung, was wenn man sich das genauer ansieht Schwachsinn ist. Auch deine Funktion "ergebnis=ergebnis-zahl" das wäre ein bisschen merkwürdig oder? Hab das jetzt so verbessert das 3 Sachen eingelesen werden, Zahl1, Rechenzeichen, Zahl2, dürfte jetzt einwandfrei funktionieren.

(Beispiel: 12 + 32 ; 123123 - 12393128998123 ; falsch wäre 12+ 123, weil die drei Variablen durch ein Leerzeichen voneinander getrennt werden).


Ach ja, "\n" steht übrigens für einen Zeilenumbruch, damit springt er lediglich eine Zeile weiter bevor er den nächsten String ausgibt damit es übersichtlicher wird.

Beispiel: "Hallo, ich bin ZeroTen"
Code:
Hallo ich bin ZeroTen
"Hallo\nIch bin ZeroTen"
Code:
Hallo,
Ich bin ZeroTen

Falls du noch Fragen hast, oder ich Müll rede dann sagt mir bescheid
ZeroTen is offline  
Old 01/18/2008, 11:27   #6
 
elite*gold: 0
Join Date: Dec 2007
Posts: 652
Received Thanks: 132
Quote:
Code:
int main()
{
   //source
}

void()
{
   //source
}
Ist auch falsch Zero ;D

Erst void, dann int main ;D
Grund: Der Compiler läuft von oben nach unten durch, wenn man versucht eine Funktion aufzurufen bevor diese Deklariert wurde gibts nen Error ;D
MeepMoep is offline  
Old 01/18/2008, 14:13   #7
 
elite*gold: 0
Join Date: Oct 2006
Posts: 225
Received Thanks: 207
Es gibt überhaupt keinen Erorr, es läuft alles bestens -_- vorallem weil das Programm sowieso mit int Main startet also STFU! ^^
ZeroTen is offline  
Old 01/18/2008, 14:24   #8
 
elite*gold: 0
Join Date: Dec 2007
Posts: 652
Received Thanks: 132
Quote:
#include <iostream>

using namespace std;

int main()
{
funktion();
}

void funktion()
{
cout << "bla" << endl;
cin.get();
}


Dann Compile das mal ;D
MeepMoep is offline  
Old 01/18/2008, 15:28   #9
 
elite*gold: 0
Join Date: Oct 2006
Posts: 225
Received Thanks: 207
Lol, schon klar das das nicht funktioniert, du hast mich falsch verstanden <.< , in meinem Source steht nirgends das ich eine Funktion aufrufe die nicht deklariert ist
Code:
 int main()
{
   //source
}

void blabla()
{
   //source
}
oder siehst du irgendwo das bei int main blabla() drin steht o0 ich denke nicht, wie ich meinem Post erklärt habe soll das nur ein Beispiel dafür sein, das man keine Keine Funktion in einer anderen Funktion deklarieren kann, und das geht aus meinem Beispiel klar hervor <.<
ZeroTen is offline  
Old 01/18/2008, 15:37   #10
 
elite*gold: 0
Join Date: Dec 2007
Posts: 652
Received Thanks: 132
Aso, naja ne funktion deklarieren und nicht aufrufen macht keinen sinn ;D
MeepMoep is offline  
Old 01/18/2008, 15:42   #11
 
elite*gold: 0
Join Date: Oct 2006
Posts: 225
Received Thanks: 207
Hast du dir nichtmals den Thread durchgelesen? Er hatte 2 Funktionen deklariert, und zwar Eine in der Anderen, und das ist falsch, die müssen auseinander deklariert, werden, was soll dann an meinem Beispiel bitte keinen Sinn machen? Wenn ich
Code:
int main()
{
}
schreiben würde dann würste er doch gar nicht was mit der 2. Funktion ist, und jetzt Back 2 Topic -_-
ZeroTen is offline  
Old 01/18/2008, 16:03   #12
 
elite*gold: 0
Join Date: Sep 2006
Posts: 7
Received Thanks: 0
Ok danke dir erstma hat mir geholfen^^

bzw das ich nur ergebnis und zahl brauche hatte schon seinen sinn nur war das aus dem quell code nicht ganz ersichtlich ich wollte es so haben das man unendlich viele rechenschritte machen kann und mit dem vorher gehenden ergebnis weiter rechnen.

und damit du weil das oben vielleicht komisch ausgedrückt ist hier mal die fertige source die kann man vieleicht besser verstehen^^

Code:
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

string zeichen;
int zahl;
int ergebnis;

void Plus()
{
ergebnis=ergebnis+zahl;     
}
void Minus()
{
ergebnis=ergebnis-zahl;    
}
void Mal()
{
ergebnis=ergebnis*zahl;     
}
void Geteilt()
{
ergebnis=ergebnis/zahl;     
}

int main()
{


cout << "Willkommen im Burningrechner v2" << endl
<< "Bitte erst die Zahl und nach der zahl das rechenzeichen eingeben" << endl;

cin >> ergebnis;
while (0<1)
{


cin >> zeichen;
cin >> zahl;
if (zeichen=="+") Plus();
if (zeichen=="-") Minus();
if (zeichen=="*") Mal();
if (zeichen=="/") Geteilt();
cout << "=" << endl << ergebnis << endl;
cin.get();
}

}
Burner999 is offline  
Old 01/18/2008, 16:11   #13
 
elite*gold: 0
Join Date: Oct 2006
Posts: 225
Received Thanks: 207
Naja ich verstehe trotzdem nicht wie dein Source funktionieren soll.
Code:
<< "Bitte erst die Zahl und nach der zahl das rechenzeichen eingeben" << endl;
Das wäre dann ja z.B. "123 +" oder "312 -" , da fehlt doch die zweite Zahl oder nicht o0. Du könntest höchstens in den voids, z.B. void Plus () am Ende eine weitere Abfrage machen ob du mit dem Ergebnis weiter rechnen möchtest oder nicht, das würde dann gehen
ZeroTen is offline  
Old 01/18/2008, 16:42   #14
 
elite*gold: 0
Join Date: Sep 2006
Posts: 7
Received Thanks: 0
öhm ja ich merk grad der satz is blöd xD
aber das ganze funktioniert so ich gebe einmalig ergebnis ein das ist meine erste zahl dann kommt das rechen zeichen und dann kommt zahl die subtrahiere/addiere etc. ich dann mit ergebnis nur so kann ich das ergebnis der vorigen rechnung behalten (außer über nen dummy aber das wäre noch mehr unötige arbeit^^)

Das mit der Abfrage ob ich weiter rechenen will kann ich noch machen muss halt grad noch ma überlegen wie
Burner999 is offline  
Old 01/18/2008, 16:44   #15
 
666me's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 356
Received Thanks: 142
Also ich habs so gemacht:

Code:
#include <iostream>
using namespace std;


void Plus() 
{
     
             double var1;
	 double var2;
	 double Ergebnis;
	 cout << endl <<"x1=";
	 cin >> var1;
	 cout <<"x2=";
	 cin >> var2;
	 Ergebnis = var1 + var2;
	 cout << endl << var1 << "+" << var2 << "=" << Ergebnis << endl;
	 cin.get();

}
void Minus() 
{
	 
     
             double var1;
	 double var2;
	 double Ergebnis;
	 cout << endl <<"x1=";
	 cin >> var1;
	 cout <<"x2=";
	 cin >> var2;
	 Ergebnis = var1 - var2;
	 cout << endl  << var1 << "-" << var2 << "=" << Ergebnis << endl;
	 cin.get();

}
void Geteilt() 
{
	 
    
             double var1;
	 double var2;
	 double Ergebnis;
	 cout << endl <<"x1=";
	 cin >> var1;
	 cout <<"x2=";
	 cin >> var2;
	 Ergebnis = var1 / var2;
	 cout << endl  << var1 << "/" << var2 << "=" << Ergebnis << endl;
	 cin.get();

}
void Mal() 
{
     
             double var1;
	 double var2;
	 double Ergebnis;
              cout << endl <<"x1=";
	 cin >> var1;
	 cout <<"x2=";
	 cin >> var2;
	 Ergebnis = var1 * var2;
	 cout << endl  << var1 << "*" << var2 << "=" << Ergebnis << endl;
	 cin.get();

}



int main()
{     
     cout << "Robins ultimativer c++ Rechner :)" << endl;
     while (0<1)
    {   
      int auswahl;
      cout << endl << "Addition (1), Subtrahieren (2) ,  
      Division (3) ,Multiplikation (4)"<< endl << endl;
      cin >> auswahl;
      cin.get();

      if ( auswahl == 1)
   { 
	 Plus();
	   
   }
      else if(auswahl == 2)
   {
   	 Minus();
   }
      else if(auswahl == 3)
   {
	 Geteilt();
   }
     else if(auswahl == 4)
   {
	 Mal();
   }
  }  cin.get();
}
666me is offline  
Reply


Similar Threads Similar Threads
°*NEW Funktionen*° th3man0f22 NO MENÜ Public Hack°*NEW Funktionen*° 06.09.2010
09/06/2010 - WarRock Hacks, Bots, Cheats & Exploits - 2 Replies
Funktionen: PLAYERPOINTER ¤SERVERPOINTER (Immer an)¤ ¤NOSPREAD (Numm-Pad 7)¤ ¤FULLBRIGHT (Numm-Pad 5)¤ ¤EXTRAAMMO1 (Immer an)¤ ¤EXTRAAMMO2 (Immer an)¤ ¤SCOPE (Rechte Maustaste)¤ ¤FASTAMMO (Immer an)¤
Mathe Stunde!
04/26/2009 - School & Education - 10 Replies
Damit eure Gehirne nicht ganz dahinschmelzen, hier ein paar Mathe-Aufgaben: Wenn E*pvpers 1.004.077 User hat, und die gesamte Anzahl aller Beiträge 1.963.030 beträgt, wieviele Beiträge müsste dann (In der Theorie) jeder User gemacht haben? Wenn Cefion 39 Beiträge gepostet hat, und seit dem 08.05.2007
3.Stunde- Mathe und Schleifen
02/26/2008 - Coding Tutorials - 5 Replies
edit: Da qhr4s3 anscheinend nicht in der Lage ist nen besseres Tut zu schreiben, hab ichs wieder geadded ;D Guten Mittag *Pizza mampf*, Hab lange überlegt (ca. 6Schulstunden) was Thema der 3. Stunde wird. Hab mich dann entschlossen euch mit Mathe zu quälen ;) = Zuweisung //z.B. var = 3;
Mathe HA
04/18/2007 - School & Education - 12 Replies
:D Mup, ich brauche mal Hilfe von euch bei 2 Matheaufgaben. 1. Die katheten eines rechtwinkligen Dreiecks sind zusammen 12 Längeneinheiten lang. Wie groß sind die Katheten zu wählen, damit das Quadrat über der Hypotenuse möglichst klein wird. Wie groß ist das Hypotenusen Quadrat dann? 2. Der Querschnitte eines Kanals ist ein gleichschenkligen Dreieck. Aus bautechnischen Gründen soll die Basis (des Dreiecks) und die Höhe (d.D.) zusammen 23 sein. Welche Maße sind für Basis und Höhe zu...
1 in Mathe
12/09/2006 - Quotes - 8 Replies
Punkt. Close thiesssssss plieassssseeeee !1111111



All times are GMT +1. The time now is 06:26.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.