Brauche unbedingt Hilfe bei einfachem Programm ^^
-
Hallo!
Wir müssen für die Schule ein einfaches Programm erstellen wo man einen Wert eingibt, dieser Wert "benutzt" wird und verändert wieder ausgegeben. Ich habe mir dafür überlegt ein einfachen Benzinverbrauchsrechner zu programmieren. Da ich mir aber noch sehr unsicher auf dem Gebiet bin und selber noch kein C++ Compiler habe wollte ich fragen ob mir evtl. jemand helfen könnte und den Programm Code von unten testen oder evtl. sogar korrigieren könnte? Um jede Hilfe bin ich sehr dankbar!!!!!
Das Programm müssen wir mit "Anjuta" unter Suse Linux 9 oder 10 schreibenDie Formel zum Berechnen des Verbauchs ist: "Getankte Liter / Gefahrene Kilometer x 100"
____________________________________________[cpp] //Einfaches Programm zur Berechnung des Benzinverbrauchs //30.01.06 #include <FL/Fl.H> #include <FL/Fl_Window.H> #include <FL/Fl_Value_Input.H> #include <FL/Fl_Value_Input.H> #include <FL/Fl_Value_Output.H> #include <FL/Fl_Button.H> #include <FL/Fl_Box.H> double B; Fl_Window f1(400,300,"Benzinverbrauch"); Fl_Value_Input e1(70,50,300,30,"Getankte Liter:"); Fl_Value_Input e2(70,50,300,30,"Gefahrene Kilometer:"); Fl_Value_Output o1(70,90,300,30,"Verbrauch l/100 KM:"); void knopf(Fl_Widget *) { o1.value(B= e1.value/e2.value*100()); } int main() {f1.color(0x0000000); Fl_Box box(FL_NO_BOX,80,200,200,100,"Benzinverbrauch"); box.labelsize(36); box.labelfont(FL_BOLD); box.labelcolor (FL_BLUE); Fl_Button b1(70,150,300,25,"&Berechnen"); b1.callback(knopf); f1.end(); f1.show(); return Fl::run(); }[/cpp]
-
Hallo
Warum testest du dein Programm nicht selber. Wenn es Fehler gibt, dann kannst doch konkrete Fragen stellen.
chrische
-
Hi Badesalz,
#include <stdio.h> int main() { int i_TankLiter, i_KilometerGefahren, i_Verbrauch; //variablen initialisieren printf("Tankinhalt:"); //Daten entgegen nehmen scanf("%d", i_TankLiter); printf("Kilometer gefahren:"); scanf("%d", i_KilometerGefahren); //Berechnen i_Verbrauch = i_TankLiter / i_KilometerGefahren *100; //Ausgabe der Berechnung printf("Verbrauch ist: %d", i_Verbrauch); return 0; //Programm korrekt beenden }Das wäre der Konsolen-Code. Keine Ahnung was du spezielles vorhast;
das ist mir definitiv zu hoch. Bin ja selber noch ein n00b. Wenn diese
Version läuft, kannst du immernoch auf eine GUI wechseln.
-
Weil er noch keinen C++-Compiler hat?

Mal im Ernst: Gibts den kostenlos? Wenn ja, solltest Du Dich schon selbst mit dem Code befassen (zumindest zu compilieren versuchen, und dann hier nach speziellen Fehlern fragen)
P.S.: Anjuta ist wohl die GNOME-Entwicklungsumgebung für C/C++, dann nehme ich an wird als Framework GTK benutzt? (Oder was zum Henker ist FL/*.h ;)). Ich fürchte fast da wirst Du später sogar noch in eins der Subforen müssen

-
danke erstmal für die Hilfen.
Mittlerweile hab ich mir ein gratis Compiler (Dev-C++) gesucht und den Code von Anjuta einfach mal reinkopiert und versucht zu Compilieren...
Da war dann der erste Error bei:Fl_Window f1(400,300,"Benzinverbrauch");"Fl_Window does not name a type"
Danke für den Konsolencode nur muss es wie von mir beschrieben ausgeführt werden... wird eben ein Test...
..achja, falls das nicht klar war, momentan arbeite ich auf Windows ^^
-
Hallo,
@MC C++: Hast du den Code schon mal getestet, ich glaube so auf den ersten Blick, das der nicht das richtige Ergebnis liefert, weil du mit int-Variablen rechnest und das Ergebnis einer Berechnung mit int-Variablen ist in C++ eigentlich immer ein Integer-Wert. AUsserdem ist das was du dort gecoded hast C Code, wir sind hier aber im C++ Unterforum
@Badesalz: Ich nehme stark an, das der Compiler die Typen nicht kennt, weil er die Headerdateien nicht hat, die man dazu braucht. Sollte das GTK sein musst du eben die GTK-Header und Bibliotheken bei Dev einbinden
MfG
-
genau diese "Header" Dateien und Bibiliotheken Eintragungen fehlen mir, glaube ich... Leider habe ich keine Ahnung was ich da eintragen muss...
-
Hallo,
ich hab mit GTK (wenns GTK ist) leider nicht viel zu tun, da ich meistens FLTK für GUI Oberflächen nutze, da kannst du höchstens mal im Internet schauen, wo du die Header und Bibliotheken herbekommst. Da steht bestimmt dann auch dazu wie du sie einbindest. Oder es findet sich hier jemand, der es dir erklärt.MfG
-
ok, danke trotzdem für die Tipps!
-
ich bin selber auch "windowsianer". deshalb kann ich dir zu linux und der "anjuta"-umgebung nichts sagen. aber soweit ich das überblicke sieht dein programm ganz sinnvoll aus. zwei dinge sind mir jedoch aufgefallen:
void knopf(Fl_Widget *) { o1.value(B= e1.value/e2.value*100()); }wie jaschi schon geschrieben hat, bringt dieser term ein zumindest sehr ungenaues ergebnis. du kannst entweder nach double casten:
o1.value((double)e1.value/e2.value*100)oder die berechnung anders schreiben:
o1.value((e1.value*100.0)/e2.value)als anfänger kann man sowas aber noch nicht wissen.
außerdem ist das "()" am ende deines terms falsch. da würde der compiler einen fehler melden.
die zuweisung zur variablen B ist zwar korrekt, kannst du aber auch weglassen.in
Fl_Value_Input e1(70,50,300,30,"Getankte Liter:"); Fl_Value_Input e2(70,50,300,30,"Gefahrene Kilometer:"); Fl_Value_Output o1(70,90,300,30,"Verbrauch l/100 KM:");hast du dich mit den koordinaten etwas verhaspelt. bei den y-koordinaten hast du anstatt 50/50/90 warscheinlich 50/90/130 gemeint. und die y-koordinate des buttons b1 mußt du auch anpassen.
ansonsten sollte dein programm, soweit ich das ohne anjuta-kenntnisse überblicken kann, funktionieren.