Workshop von Zerd und XBelt geschlossen 

Status
Für weitere Antworten geschlossen.
Hi,
eine char variable ist syntaktisch so aufgebaut:
char variablenName [= wert];

Du hast in deinem code keinen Variablennamen definiert.
Was genau möchtest du mit
char '+', '-', '*', '/';
bezwecken?


Lässt du die Zeile weck und änderst
PHP:
string Rechenart;
in
PHP:
char Rechenart;
sollte es funktionieren. (Es sei denn ich hab was übersehen) ;)

P.S. du hast ein ; zu viel in deiner Endausgabe.. Ein Semikolon gehört immer ans Ende einer Anweisung, bei dem cout in der Mitte wird das zu einer fehlermeldung führen
 
hi,
bin erst seit vorgestern hier angemeldet und darum kommt mein "super! gute idee, find ih klasse :P ich hab zwar schon ein weni erfahrung mit c++ aber finds trotzdem klasse was du hier machst :)" etwas spät aber denke mal es is dir egal schließlich hört man immer gerne mal n lob :P
und zu deinen erklärungen wollte ich noch sagen das sie einfach und gut verständlich sind auch für welche die noch keine ahnung haben :P
also ich hab alles verstanden ^^ aber wie gesagt hab schon bissl erfahrung und arbeite mich auch gerade durch das buch "C++ für Spieleprogrammierer" von Heiko Kalista durch :P
 
@Zerd auch von mir ein grosses Lob für die Arbeit die Du in den Workshop investierst, es ist eine gute Wiederholung der Einführung in die Syntax, so langsam wird es dann richtig spannend wenn die ersten dynamischen Zeiger, Referenzen, benutzerdefinierte Objekte etc. kommen...

ich wünsche mir, uns Lesern und Dir ein grosses Durchhaltevermögen
 
Also erstmal... Danke für den Workshop! :)
Bin gerade fleißig am coden aber leider habe ich beim Taschenrechner ein kleines, aber nerviges Problem: mein Ergebnis ist immer eine ganze Zahl, auch wenn ich z.B. 5/2 rechne... ich habe es mit float und double versucht, aber es bleibt einfach eine ganze zahl :ööm:

Hier ist mein code:

Code:
#include 
#include 

int main() {
int eing1,eing2;
int erg = 0;
std::string zeichen;
std::cout  std::cin >> eing1;
std::cout  std::cin >> zeichen;
std::cout  std::cin >> eing2;
if(zeichen=="+") {
erg = eing1 + eing2;
} else {
if(zeichen=="-") {
erg = eing1 - eing2;
} else {
if(zeichen=="*") {
erg = eing1 * eing2;
} else {
if(zeichen=="/") {
erg = eing1 / eing2;
} else {
std::cout  }
}
}
}
std::cout }

Was muss ich da jetzt ändern dass im Ergebnis ein exakter Wert kommt?
 
Hi, schön zu hören das noch mit dem workshop gearbeitet wird ;)

Das dein Ergebnis float sein sollte hast du richtig gemacht. Dadurch das die Zahlen die du einliest aber integer zahlen sind wird beim ergebnis der Nachkommateil abgeschnitten. Das passiert immer wenn man float werte in integer werte umwandelt. (z.b. int a = (int)3.33333; // in int wird 3 gespeichert)

Wenn du also eine int zahl durch eine andere int zahl teilst wird im Ergebnis des Nachkommateils abgeschnitten.

Um das zu ändern kannst du entweder die Eingaben als float speichern, oder bei der operation die integerzahl zu float casten.

Durch die Klammern und die Angabe des datentyps wird die Variable die rechts der Klammern steht zu dem Variablentyp der in den Klammern steht umgewandelt.
PHP:
float erg = (float)eing1 / (float)eing2;

Ich hoffe das war verständlich :)
 
kleine verbesserung:
1) Anzahl der Zeichen beim Operator prüfen --> Prüfen ob nur 1 Zeichen und nicht +-*/
2) Bei der Division prüfen ob 2. Wert = 0 ist ! --> nicht 1 / 0 zulassen
 
leider gibts unter den angegebenen links nur noch die visal c++ 2008 express version und das haut leider irgendwie gar nicht mit deinem tutorial hin :(
 
ich hab mir von einer anderen seite das visual express 2005 besorgt, aber ich hab auch ein problem.
wen ich versuche zu kompiliern kommt unten eine fehlermeldung das 'cl.exe' nicht gestartet werden konnte.
und so kann ich auch das abgespeicherte programm nich öffnen.
 
leider gibts unter den angegebenen links nur noch die visal c++ 2008 express version und das haut leider irgendwie gar nicht mit deinem tutorial hin :(

schau dich da ein bissl genauer um man kann sich immer noch die alte version runterladen;)

@zerd: wenn ich das Programm auf dem Computer starte auf dem es gemacht wurde funktioniert es, wenn ich die .exe Datei aber auf einen anderen Rechner ziehe kommt folgende Fehlermeldung:

24915530jk9.jpg


und auf diesem rechner ist das c++ Programm vom Tutorial nicht vorhanden und es kommt folgende Fehlermeldung:

neubitmap2fk6.png


wie kann ich das Programm für jeden rechner kompatibel machen?

EDIT: Danke biernase! Das war das Problem! ^^
 
Hast Du das Programm als Release kompiliert ?
Menu --> Erstellen --> Konfiguration-Manager --> Konfiguration der aktuellen Projektmappe:
von Debug auf Release ändern

Dann nochmal Projektmappe neu erstellen
 
hay ich hab ein problem^^
ich wollte grade ausprobiern ob mein code richtig ist den ich eingegeben hab
und dan kommt diese fehlermeldung:

54455877ov9.jpg


ich hab das Platform SDK schon neu installiert und an dem code kanns auch nicht liegen, weil ein freund ihn ausprobiert hat.
ich hoffe ihr könnt mir helfen^^
 
@Zilart
Das sieht nach Vista aus, ich habe das Studio noch nicht unter Vista getestet, scheint ja nich so wundervoll zu klappen ;)

Versuch mal die Optimierung in den ProjektEigenschaften auszistellen:
-> Project / Properties...
--->Configuration Properties / C/C++ / Optimization, change Optimization to Disabled.

Vielleicht hilft das ja schon...
 
Hallo
ich glaube ich peil es heute nicht mehr. weiß nicht wie ich den fehler wegbekomme.
Fehlermeldung: Unerwartetes Dateiende innerhalb eines Kommentars



Code:
#include 
#include 

using namespace std;

int main () {
int eingabe1, eingabe2, ergebnis;
string rechenart;
cout  cin >> eingabe1;
cout  cin >> eingabe2;
cout ,-]:";
cin >> rechenart;

/*if (rechenart=='+') {
eingabe1 + eingabe2 = ergebnis;
}
if (rechenart=='-') {
eingabe1 - eingabe2 = ergebnis;
}
if (rechenart=='*') {
eingabe1 * eingabe2 = ergebnis;
}
if (rechenart=='/') {
eingabe1 / eingabe2 = ergebnis;
}
cout  
return 0;
}

währe dankbar über hilfe kann doch kein großer fehler mehr sein.
und wie bekomme ich das ganze in bunt hier rüber???

THX

alles klar habe es selber hinbekommen, habe alles nochmal mit else ifgemacht und gemerkt das die gleichung falsch rum geschrieben war.
Trotzdem
großes THX an den Mentoren ZERD

vieleicht kann man die Switch-Case Anweisung noch etwas besser darstellen, ich werde leider nicht schlau draus wie das ganze am ende auszusehen hat.
THX zerd
 
Zuletzt bearbeitet von einem Moderator:
Mh.. die switch-case Anweisung besser darstellen...

Naja sie sieht genauso aus wie in meinem beispiel:
PHP:
switch(variable) {
case 1:
std::cout  break;
case 2:
std::cout  break;
default:
std::cout }

Nur das du jetzt anstelle der Zahlen die Operationen eingibst...

PHP:
switch(rechenart){
case '+':
eingabe1 + eingabe2 = ergebnis;
break;
....
}

Ich wüsste grad spontan nicht was ich da noch groß zu erklären könnte ;)

Noch 2 kleine Anmerkungen...
1. Deine Fehlermeldung kam weil du den Kommentar nicht geschlossen hast du hast /* geschrieben, aber um den Kommentar dann zu schließen gehört noch ein */ dahinter.

2. Mach keine Doppelposts, wenn du noch was hinzuzufügen hast editier deinen ersten Beitrag, sonst gibts ärger mit den Mods :)
 
Noch ne kleine Anmerkung:

PHP:
ergebnis = eingabe1 + eingabe2;

Will ja jetzt keine Diskussion über Compilerbau anfangen...:read:
 
Auweia... DAS ist ma n geiler Fehler den wir da eingebaut haben, bzw. nicht direkt gesehen haben ^^

Danke für den Hinweis!!
 
danke zerd für das Tutorial ist echt gut. Mich würde nur mal intressieren für was das SDK gut sein soll und ob dieses MFC ersetzt?
 
danke zerd für das Tutorial ist echt gut. Mich würde nur mal intressieren für was das SDK gut sein soll und ob dieses MFC ersetzt?

In meinem Tutorial geht es hauptsächlich darum C++ zu lernen, um die sprach-basics die nicht Windows abhängig sind benutzen zu können müssen wir das Platform SDK installieren. MFC ist (wie der name schon sagt - Microsoft Foundation Classes) microsoft spezifisch, und dafür gedacht speziell Programme für Windows zu schreiben. Ich benutze in dem Tutorial das Visual Studio 2005, du kannst die Programme aber auch unter Linux, Mac oder einer anderen Windows IDE compilieren. Würde ich die MFC benutzen wäre das nicht möglich.

Ich hoffe des war einigermaßen verständlich ;)
Greetz
 
Ich hol das Thema hier mal wieder aus der Versenkung, hast du eigentlich noch vor an deinem Workshop weiterzumachen?
Ich bin grad noch am Anfang und würde mich freuen, wenn du ihn weiterführen würdest!

Phunny
 
Hey, ja ich denke schon das es weiter gehen wird. Leider hänge ich im Moment an meiner Diplomarbeit, deshalb fehlt im Moment die Zeit dafür. Freut mich das es noch leute gibt die damit arbeiten ;)
 
Hi,

ich fange gerade mit C++ an


Habe einen kleinen Fehler in deinem Workshop entdeckt

Du hast geschrieben:

PHP:
#include 

int main() {
std::string nachname;
std::cout  std::cin >> n;
std::cout  return 0; 
}

Richtig wäre:

PHP:
#include 
#include 

int main() {
std::string nachname;
std::cout  std::cin >> nachname;
std::cout  return 0; 
}


Aber super Workshop

Mach weiter so, es ist alles einfach verständlich und so

€dit:

Hab ein kleines Problem, und zwar immer wenn ich was mit If in den Quellcode schreib kommt beim kompilieren folgendes:

"If": Bezeichner wurde nicht gefunden
 
Danke für den Hinweis, werde ich sofort verbessern!!

Ich hoffe ich hab if nicht irgendwo groß geschrieben ;)
C und C++ ist case sensitive, also if muss klein geschrieben werden!

Greetz Zerd
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

S
Antworten
1
Aufrufe
6K
Antworten
0
Aufrufe
958
Antworten
11
Aufrufe
2K
bladerunner
B
N
Antworten
3
Aufrufe
788
Zurück
Oben Unten