Richtiges Ausführen
-
Hi...
leider kann man den Quellcode nicht einfach als .exe speichern und dann ausführen.
Der Quellcode muss bevor du in Ausführen kannst zuerst compiliert und gelinkt werden.
Das geht am einfachsten wenn du mit einer Entwicklungs-Umgebung arbeitest.Empfehlen kann ich dir die "Microsoft Visual C++ Express Edition", falls du
mit Windows arbeitest.Gibts hier kostenlos zu downloaden:
http://go.microsoft.com/fwlink/?LinkID=51410&clcid=0x407Zum kompilieren musst du unter Visual C++ einfach auf den Button mit dem
Play-Symbol drücken oder unter Debuggen auf Debuggen starten oder einfach auf F5 drücken.Achso hast auch noch ein paar kleine Fehler in deinem Programm.
1. iostream.h ist veraltet, heißt jetzt nur noch iostream ohne das .h
2. du benutzt keinen namespace std, deshalb müsstes du vor cout, cin und endl noch ein std:: schreiben
3. Den Datentyp flout gibt es nicht, heißt float
4. die <math.h> brauchst du für dein Programm nichtAußerdem solltest du das Progamm vor dem return noch pausieren, sonst wirst du nur kurz die Konsole
aufploppen sehen und das wars.Entweder mit
system("pause");was nicht so schön ist oder mit
cout<<"zum fortfahren, beliebige Taste druecken"; cin.ignore(INT_MAX, '\n'); cin.get();#include <iostream> using namespace std; int main() { const float pi=3.14159; double r,V; cout<<"Radius der Kugel="; cin>>r; V=4.0/3*pi*r*r*r; cout<<"Das Volumen betraegt"<<V<<endl; cout<<"zum fortfahren, beliebige Taste druecken"; cin.ignore(INT_MAX, '\n'); cin.get(); return 0; }
-
Andy_KA87 schrieb:
Na da hab ichs kurz nach dir editiert, hehe.
Wie gesagt: Visual C++ wird auch als Compiler angegeben.
Das habe ich ja sowieso...
Bloß finde ich dort nichts..
Also es gibt unter "Debuggen" und paar Verlinken auch "Ausgabe", jedoch passiert da nichts..Also Punkt 1: Ich nehme mal einfach an das du den kostenlosen Visual C++ 2005 Compiler hast (wenn nicht einfach mal nach Visual Studio 2005 C++ Express suchen).
Schritt 1: Neues Projekt anlegen (Datei/Neu/Projekt) und dort Win32 Konsolenanwendung auswählen. Unten noch ein Verzeichnisnahmen angeben und OK drücken. Auf der ersten Seite die dann folgt auf weiter klicken, Harken aus den vorkompilierten Headern entfernen, damit wir alles was dich verwirren könnte entfernen, und auf Fertigstellen klicken.
Schritt 2: In der Projektmappe (sofern die nicht angezeigt wird, kannst du diese über Ansicht/Projektmappen-Explorer öffnen) entfernst du beide mit stdafx beginnende Dateien. Die letzte (die wie dein Projekt benannt ist) öffnest du mit doppelklick, entfernst daraus allen Code, und ersetzt diesen mit dem von dir geschriebenen.
Falls du noch sauberer Vorgehen willst machst du anschließend mit einer Rechten Maustaste in der Projektansicht (unter "Projektmappe "...") auf den Projektnamen das Eigenschaftenfenster (Eigenschaft) auf und wählst folgendes aus:
a) Oben unter "Konfiguration" änderst du "Aktiv(Debug)" auf "Alle Konfigurationen"
b) Klick im Baum auf C/C++ (und aufklappen)
c) dort unter "Allgemein" die Warnstufe auf Level 4 erhöhenSchritt 3: Jetzt kannst du an mehreren stellen Erstellen auswählen (z.B. Erstellen/Projektmappe erstellen, oder RMT auf Projektname in der Projektmappe "Erstellen"... und Oh Wunder, es wird eine Compilierung gestartet...
cu André
P.S: Woraus lernst du, mein Vorredner (war ein Tick schneller) hat ja schon auf den Fehler mit dem <iostream.h> ==> <iostream> hingewiesen. C++ ändert sich und die erste Variante ist veraltet [Seit 98]. Besser auf eine aktuelle Beschreibung umsteigen!
-
Hi Andy,
hier noch 2 kleine Fehler, die du übersehen hast
const flout pi=3,14159;Es heißt float und anstelle des Kommas benutzt du einen Punkt, wie du es weiter unten in deinem Quelltext ja bereits schon richtig angewandt hast.
also:
const float pi=3.14159;smilingman schrieb:
Achso hast auch noch ein paar kleine Fehler in deinem Programm.
1. iostream.h gibt es nicht, heißt nur iostream ohne das .h
2. du benutzt keinen namespace std, deshalb müsstes du vor cout, cin und endl noch ein std:: schreibenDoch. Die Headerfile iostream.h gibt es. Hierbei brauchst du auch keinen Namespace std angeben. Soviel ich weiß, entspricht die iostream.h lediglich nicht dem Standart.
(wieso wird S t a n d a r t zensiert?)

-
nki schrieb:
...
Doch. Die Headerfile iostream.h gibt es. Hierbei brauchst du auch keinen Namespace std angeben. Soviel ich weiß, entspricht die iostream.h lediglich nicht dem stan****.(wieso wird S t a n d a r t zensiert?)

1. <iostream.h> mag es in deiner Implementierung NOCH geben. Dies kann sich aber mit einer späteren Version ändern.
2. <iostream.h> entspricht vom Inhalt NICHT zwingend dem Header <iostream>
3. Auch wenn du dir den std-Namensraum sparst: Dein Programm ist dafür nicht mehr portabel und auch nicht mehr unbedingt auf anderen Compilern/Versionen compilierbar.Grundsätzlich: Header der Standardbibliothek immer ohne ".h"!
4. Weil es Standard mit "d" am Ende heißt.
cu André
-
smilingman schrieb:
Hi...
Vielen Dank erstmal an die vielen Antworten.
Hab es mal so gemacht, wie du geschrieben hast.
Deinen angegeben Quelltext hat er genauso schnell wieder geschlossen, wie den vorigen. Trotz der "Pause"
Habe Visual C++ Express Edition)Sprich: Fenster ging auf, Fenster ging zu
Kam aber auch folgende Meldung (also ich habe vorher deinen Code 1zu1 reinkopiert)
"Test.exe": "C:\Dokumente und Einstellungen\Andy\Eigene Dateien\Visual Studio 2005\Projects\Test\debug\Test.exe" geladen, Symbole wurden geladen.
"Test.exe": "C:\WINDOWS\system32\ntdll.dll" geladen, Keine Symbole geladen.
"Test.exe": "C:\WINDOWS\system32\kernel32.dll" geladen, Keine Symbole geladen.
"Test.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll" geladen, Keine Symbole geladen.
"Test.exe": "C:\WINDOWS\system32\msvcrt.dll" geladen, Keine Symbole geladen.
"Test.exe": "C:\WINDOWS\system32\shimeng.dll" geladen, Keine Symbole geladen.
"Test.exe": "C:\WINDOWS\system32\shimeng.dll" entladen.
Das Programm "[3708] Test.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.Naja...
In der Uni arbeite ich ja mit Linux..
Dort klappt das auch mit dem auspucken in der Konsole..Noch ne Frage:
Aufgabe1 zum Nachlesen:
#include <iostream> #include <math.h> using namespace std; int main() { int x,y,z,n; double t; cout<<"Anzahl der Loewen"<<endl; cin>>x; cout<<"Anzahl der Leoparden"<<endl; cin>>y; cout<<"Anzahl der Hyaenen"<<endl; cin>>z; cout<<"Anzahl der Antilopen"<<endl; cin>>n; t=(60*n)/(x+(y/2)+(z/6)) cout<<"Die Mahlzeit dauerte "<<t<<" Minuten"<<endl; return 0; }Eigentl müsste für x=y=z=n=1 für t=36 herauskommen.
Bei mir kam aber immer 60 heraus.
Ist die Formel falsch abgeschrieben?Noch eine andere Frage:
Wie ist hier so die Einstellung von den Usern?
Z.B falls man eine Aufgabe ausgearbeitet hat, jedoch Probleme hat...
Bekommt man hier Hilfe oder wird sowas eher ungern gesehen?
Da es in Zukunft etwas öfters vorkommen könnte, dass ich nicht auf den richtigen Code komme.Grüße
Andy
-
Bezogen auf die Formel:
Du rechnest nur mit ganzen Zahlen, daher kommst du dabei auf den Wert 60 (z.B. 1/2 = 0!!!).
Damit du in der Formel mit 'double'-Werten arbeitest, mußt du ihm das explizit sagen, z.B.t=(60.0*n)/(x+(y/2.0)+(z/6.0))Nun kommt bei x=y=z=n=1 auch 36 heraus.
Bzgl. der Konsole sollten eigenttlich beide genannten Varianten (am Ende der main-Funktion, aber vor "return 0", funktionieren.
Ansonsten kannst du ja die DOS-Eingabeaufforderung verwenden und (wie unter Unix/Linux) das Programm von Hand starten.
Oder aber du setzt einen Breakpoint in die letzte Zeile der main-Funktion...Du kannst natürlich gerne weitere Fragen stellen, solange du nicht erwartest, daß man dir einfach so einen vollständigen Code liefert (da du dann nämlich nichts dabei lernen würdest).
Programmieren ist eine Sache von Verständnis, Geduld und Ausdauer...
-
Andy_KA87 schrieb:
...angegeben Quelltext hat er genauso schnell wieder geschlossen, wie den vorigen. Trotz der "Pause"
Schau mal in die Konsolen-FAQ (Um diesen Artikel geht es konkret: http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html).
Andy_KA87 schrieb:
Noch eine andere Frage:
Wie ist hier so die Einstellung von den Usern?
Z.B falls man eine Aufgabe ausgearbeitet hat, jedoch Probleme hat...
Bekommt man hier Hilfe oder wird sowas eher ungern gesehen?
Da es in Zukunft etwas öfters vorkommen könnte, dass ich nicht auf den richtigen Code komme.Hier gibt es im wesentlichen 2 Fälle.
Fall 1: Du stellst du Aufgabe und erwartest das du eine Lösung dafür bekommst.
==> Sehr schlecht, und ungern gesehen. Wenn jemand eine Lösung haben will ohne selbst nachzudenken, so soll er dies im Projekte-Bereich posten und für Geld machen lassen.Fall 2: Du zeigst dein selbst erarbeitetes, und stellst konkrete Fragen zu deinen Problemen. (Code, Fehlermeldungen dazu, wo konkret stehst du auf dem Schlauch, was verstehst du nicht...)
==> Sofern man sieht das du zum einen selbst über das Problem nachgedacht hast und deine Probleme so weit wie möglich eingrenzt, kannst du auch davon ausgehen das dir jemand weiter hilft. Nicht unbedingt mit einer Lösung, aber einer Beschreibung was du falsch gemacht hast, was du verbessern kannst...Stell dir einfach vor das Forum ist wie ein Dozent der sich für dich Zeit nimmt. Kein Dozent wird dir eine Lösung präsentieren, aber wenn er gut ist (und du deine Fragen/Probleme konkretisieren kannst) wird er dir weiterhelfen. Bedenke nur: Antworten kommen manchmal promt, manchmal vergeht aber auch Zeit und nach einen halben Tag bereits etwas wie "kann mir wirklich keiner helfen" zu schreiben wird auch nicht immer positiv gesehen.
cu André
-
Ja das ich mit Variante1 hier sowie an der Uni nicht weitkomme, ist mir auch bewusst ;o)
Ich dachte da schon eher an Variante2
Ich kümmer mich um die Konsole später daheim..
Muss nun ins C++ Prakt.Stimmt.
Ich dachte das "double t" heißt auch automatisch, dass in der Rechnung mit Gleitkommazahlen gerechnet wird, aber ich muss einfach .0 schreiben... *grr*
Danke.Grüße
Andy
-
Wie die Berechnung ausgeführt wird, hängt nicht vom möglichen Ziel der Zuweisung ab, sondern von den beteiligten Operanten - da müsstest du schon n, x, y und z als double definieren.
-
Jop, weiß ich nun auch

In der Uni arbeiten wir mit Kate-Editor unter Linux..
Ost wirklich viel besser (Farbkennzeichen usw) als Visual C++, was ich hier zu hause habe..Nunja.. Hilft alles Weinen nicht

Aber mit dem Programmieren hats wunderbar geklappt.. Habe beide Übungsblätter gemacht und nun bis zum 20. erstmal keine Übungsaufgaben (Zwang
) in Sachen C++.