Anfänger braucht Hilfe ! Erste Grafische Oberfläche !?
-
Sag mal, warum benutzt du nicht einfach cast's zur Abfrage?
-
way schrieb:
Sag mal, warum benutzt du nicht einfach cast's zur Abfrage?
Was meinst du mit "Casts zur Abfrage"?
@ Maddinuser:
Einige Tipps zu deinem Code, den ich aufgrund der Länge nur überflogen habe:- Wozu brauchst du
<cstdlib>
? <math.h>
sollte<cmath>
heissen (ohne Endung, wie alle C++-Standardheader).- Es ist nicht üblich, dass die Programmstruktur sich durch Leerzeilen und Kommentartiteln zwischen den einzelnen Teilen auszeichnet. Benutze wie gesagt Funktionen (die solltet ihr nach einem Jahr schon gehabt haben...) oder sogar Klassen.
- Deklariere Variablen, wenn du sie brauchst. Und du benötigst nicht für jedes kleine Zwischenresultat eine eigene Variable (ist aber deine Entscheidung).
- Anstatt mehrerer
if
-Abfragen nacheinander könntest duswitch
verwenden.
- Wozu brauchst du
-
Ok, Funktionen und Switch sind anscheinend eine bessere Wahl.Werden wir uns morgen dransetzen.
Übrigends, heute die Arbeit in Datenprogrammierung wiederbekommen: 5-
Das sollte alles sagenWas sind Casts ?
-
Maddinuser schrieb:
Was sind Casts ?
Nach einem Jahr fragst du das?
Die Bezeichnung "schlecht" für den Unterricht scheint mir stark untertrieben zu sein...Ich würde dir in diesem Falle unbedingt raten, noch nebenbei zu lernen, gerade wenn du interessiert bist.
Casts sind explizite Umwandlungen zwischen verschiedenen Datentypen. Berühmt (für den Anfang) ist
static_cast
:int a = 19; int b = 4; double c = static_cast<double>(a) / static_cast<double>(b);
Hier wäre mindestens ein Cast nötig, da sonst das 4 als Ergebnis der (Integer-)division rauskommen würde. Mehr zu Casts findest du in Büchern oder Internettutorials (wobei du bei letzteren besonders vorsichtig sein musst, nicht selten werden Dinge schlecht erklärt - gibts aber auch bei Büchern).
-
Nexus schrieb:
Maddinuser schrieb:
Was sind Casts ?
Nach einem Jahr fragst du das?
Die Bezeichnung "schlecht" für den Unterricht scheint mir stark untertrieben zu sein...Kann deine Empörung nicht verstehen. Normalerweise kommt man sehr gut ohne Casting aus. Und dann muß er es noch nicht kennen. Außerdem weißt du ja nicht, wieviel Stunden pro Woche die Schüler C++ haben.
-
Die Qualität des Unterrichts hängt auch immer sehr stark von der Schulform und dem Lehrer ab.
Wir hatten Hardcore Programmier-UNterricht ab der 7. Klasse mit Turbo Pascal
das war 1995Aber wenn wir ehrlich sind sah unser erstes Programm auch nicht besser aus.
Mir fällt zu dem Code auch nicht mehr ein, als hier schon gesagt wurde. Die Oberfläche sollte der Threadersteller vielleicht erstmal auf später verschieben.
-
Bulli schrieb:
Kann deine Empörung nicht verstehen. Normalerweise kommt man sehr gut ohne Casting aus. Und dann muß er es noch nicht kennen. Außerdem weißt du ja nicht, wieviel Stunden pro Woche die Schüler C++ haben.
Es ist mehr Erstaunen als Empörung. Und Typumwandlung gehört meiner Ansicht nach zu den Grundlagen. Auch wenn sie nur eine Stunde C++ pro Woche haben, sollte das irgendwann mal drangekommen sein (das soll nicht als Vorwurf an den Threadersteller verstanden werden).
Abgesehen davon gibt es genügend Fälle, wo man casten kann (nicht nur
static_cast
). Ich würde auch nicht behaupten, man komme gut ohne aus (am Anfang vielleicht schon noch, aber später...). Aber die Diskussion hatten wir sowieso erst gerade.
-
Also kann ich mit Casts einen Integerwert in einen Float umwandeln ?
Hatten heute den Unterricht für das Projekt. Die Lehrer (und die haben definitiv Ahnung davon) meinten, ich könnte den Code in Visual C++ einfügen und damit eine Oberfläche erstellen.Die Buttons etc. müssten dann "nur noch" mit den einzelnen Funktionen verknüpft werden. Hörte sich logisch an.
Was sagt ihr dazu ?
-
1. Brauchst du dazu eine Version von VS, die die MFC beinhaltet, die kostenlose Expressversion tut dies nicht.
2. Ein Designer ist in der Lage, dir automatisch Code zu generieren, aber das ersetzt nicht das Wissen, wie du diesen Code selbst schreibst.Es gibt verschiedene Casts. Für dein Beispiel wäre wohl ein static_cast angemessen (static_cast<float>(Integerwert))
-
Maddinuser schrieb:
Die Lehrer (und die haben definitiv Ahnung davon)...
Meine Erfahrung von Lehrern ist - zumindestens im IT-Bereich - eher eine Andere. Das soll jetzt nicht grundsätzlich IT-Lehrer schlechtreden, aber viele Lehrer kennen nur die akademische Ansicht.
Maddinuser schrieb:
...ich könnte den Code in Visual C++ einfügen und damit eine Oberfläche erstellen.
Sofern du...
a) Entweder eine Version ab Standard erwirbst (wegen MFC)
b) alles mit Händen und Füßen programmierst (Windows API)
c) eine weitere Sprache (C++/CLI in Zusammenhang mit WindowsForms und dem .Net Framework).
d) eine andere Bibliothek suchst die unter VC funktioniert (in der Regel dann aber ohne Designer)
...mag es stimmen. Voraussetzung ist, das du das nötige Grundwissen hast. Ich will nicht böse klingen: aber du solltest dich erst mit den C++ Grundlagen soweit vertraut machen, das du sie auch sicher beherrschst.Maddinuser schrieb:
Die Buttons etc. müssten dann "nur noch" mit den einzelnen Funktionen verknüpft werden. Hörte sich logisch an.
Was sagt ihr dazu ?
Auch das ist schlicht und ergreifend nur die halbe Wahrheit. Zum einen bist du dann auf einen Designer angewiesen, um die Oberfläche einfach mal eben so zu entwerfen. Dann solltest du dich zumindestens mit den Windowsressourcen etc. vertraut machen. Und zu guter letzt gibt es doch noch einige Unterschiede zwischen Consolen und Windowsprogramme, alleine was den Programmfluß betrifft.
Man wird recht schnell Betriebsblind wenn einem Sachen schon alltäglich geworden sind. Auch MFC-Grundkenntnisse erwirbt man nicht eben mal an einen Tag.
cu André