Variablen



  • hi leute,
    ich bin neu hier und das auch aus einem grund. ich habe vor ein paar tagen intensiv angefangen c++ zu lernen (anhand eines buches: jetzt lern ich c++ von markt und technik) ^^
    habe das buch schon etwas länger, da ich schoneinmal c++ lernen wollte, jedoch mit zu wenig motivation(die ich jetzt aber habe)!

    es ist schwer anhand eines buches eine programmiersprache zu lernen, da man das buch net bei problemen fragen kann! 🙂

    naja ich hoffe dafür seid ihr da! 😞

    also es geht um folgendes problem:

    ich bin gerade bei den variablen und konstanten... (net weit ich weiß..)
    meine frage ist einfach nur, warum man net, wie zb. bei php, einfach eine variable schreibt (zb. $variable="inhalt";)
    es gibt bei php int,short,double etc (wißt ihr ja besser als ich) dann noch das signed und unsigned...
    warum das alles und wann nimmt man welchen typ????

    es wäre super ihr könntet mir bei fragen ein wenig weiterhelfen!

    falls ich dafür aber im falschen forum gelandet bin, sagt bescheid!

    danke trotzdem schonmal!

    cout << "mfg dapartiou"; 😉



  • Die Typensicherheit ( die meiner Meinung nach in php "kaum" vorhanden ) ist in C++ IMHO eine der wichtigesten Ideen der Sprache.
    Eine kleine übersicht kannst du hier oder aber in jedem buch oder tutorial zum thema (variablen)typen erhalten...
    es gibts quasi für die Funktion einer Variablen je einen eigenen typ. ob man nun ganzzahlen, wörter(strings), buchstaben(char) oder kommazahlen(floats) braucht,
    (also im Aufgabenkontext),man hat quasi immer einen typ dafür.
    Wenn du zB das alter eines menschen hast kannst du zB eine unsigned variable nehmen, ( da negatives alter höchstens als fehlermeldung sinnvoll wäre ).
    ausserdem haben die verschiedenen typen unterschiedliche Zahlenbereiche, somit auch grösse. wenn du nur zahlen von 1 bis 100 erwartest ( es nicht mehr werden kann) ist es unsinn einen riesigen typ double oder so zu nehmen.
    wenn eine variable nur 1 und 0 sein kann, ist es käse eine fliesskommazahl zu nehmen, sondern eine die nur diese zustände kennt ( bool in diesem fall ) usw...



  • ja, aber das verschaft doch etwas unübersichtlichkeit oder!?was hat das fürn einen sinn genau?ich habe gelesen, es habe mit dem speicher zu tun, jedoch kann ich mir net vorstellen, dass das sich bemerkbar macht (bei den heutigen rechnern)!?

    welchen variablentyp kann man denn für alles nehmen? gibt es in c++ so etwas (wie bsw. in php)?

    oder mache ich wie du schon sagst eine riesen fehler, wenn ich dies tun würde??



  • Das kommt darauf an, was du in der Variablen unterbringen willst - Zahlen je nach Wertebereich in char/short/int/long (ganze Zahlen) oder float/double/long double (Gleitkomma), einzelne Zeichen in char, Zeichenketten in std::string, komplexere Konstruktionen in Arrays (oder STL-Container) bzw. struct/class.

    Und irgendwer hat sicher auch einen VARIANT-Typ, der je nach Bedarf verschiedenartige Werte speichern kann.



  • Kompilierfehler sind deine Freunde, während Laufzeitfehler deine Feinde sind!



  • php, javascript und co sind langsamer.

    ein gutes beispiel ist auch unser taschenrechner in der schule (ti voyage 200)
    wenn du da ein programm mit asm läufen lässt, kann es richtig schnell viele sachen rechnen. Aber die eingebaute Schrottsprache kann fast nix, in ordentlicher geschwindigkeit. Das liegt wahrscheinlich auch daran, dass sie immer mit fließkomma zahlen rechnet die ziemlich groß sind, da sie ja nicht weiß, was vielleicht kommt, und man kann dort nicht sagen was fürn datentyp du haben willst. und 80 bit im speicher zu bewegen sind 10 mal so aufwändig wie 8 bit. bei heutigen computern kein problem, aber wenn diese rechnung 1000 mal pro sekunde ausgeführt wird...

    ist jetzt aber nur ne therorie mit taschenrechner, wenn ich falsch liege korrigiert mich.

    mfg.



  • DaPartioU schrieb:

    ?ich habe gelesen, es habe mit dem speicher zu tun, jedoch kann ich mir net vorstellen, dass das sich bemerkbar macht (bei den heutigen rechnern)!?

    C++ ist ja auch nichtnur für desktop pcs . ein bsp wäre hier microcontroller oder allgein low level programmierung.
    Aussserdem ist die Typsicherheit nicht nur im Speicherverbrauch begründet.



  • hi,
    also ist das alles mit der schnelligkeeit verbunden! *hoffe verstanden zu habe*

    wusste noch net, dass man microcontroler auch mit c++ programmieren kann, war für mich nur mit basic stamp bekannt... aber man lernt dazu! ^^

    aso, vielleicht noch ne kleine frage am rande (auch wenn es eine sehr anfängerhafte frage ist, werde ich sie trotzdem stellen):

    mein "traum" ist es später mal ein programm mit c++ zu schreiben, welches auf windowsebene funktioniert und so funktioniert wie alle anderen programme (also net auf "dos-ebene".)mit was ist sowas möglich und ist das eine extravariante oder ist das was man in so einem buch lern wie bzw. Hello World nur eine kleine vorstufe von dem?

    wie nennt man diese art von c++-programmieren und inwiefern unterscheidet sie sich von dem was ich gerade lerne (mit den vefehlen cout, cin, int ....)????

    mfg dapartiou und vielen dank schonmal an euch!!



  • DaPartioU schrieb:

    hi,
    also ist das alles mit der schnelligkeeit verbunden! *hoffe verstanden zu habe*

    wusste noch net, dass man microcontroler auch mit c++ programmieren kann, war für mich nur mit basic stamp bekannt... aber man lernt dazu! ^^

    aso, vielleicht noch ne kleine frage am rande (auch wenn es eine sehr anfängerhafte frage ist, werde ich sie trotzdem stellen):

    mein "traum" ist es später mal ein programm mit c++ zu schreiben, welches auf windowsebene funktioniert und so funktioniert wie alle anderen programme (also net auf "dos-ebene".)mit was ist sowas möglich und ist das eine extravariante oder ist das was man in so einem buch lern wie bzw. Hello World nur eine kleine vorstufe von dem?

    wie nennt man diese art von c++-programmieren und inwiefern unterscheidet sie sich von dem was ich gerade lerne (mit den vefehlen cout, cin, int ....)????

    mfg dapartiou und vielen dank schonmal an euch!!

    Informier dich über WinAPI, directx oder opengl. mit denen kannst du "grafik" auf dem bildschirm anzeigen. (und mir ogl und dx sogar 3d spiele)

    falls du nur anwendungen machen willst, ist die winapi bestimmt das beste.

    mfg.



  • joomoo schrieb:

    falls du nur anwendungen machen willst, ist die winapi bestimmt das beste.
    mfg.

    und wenn du aber auch noch Spaß dabei haben willst, dann solltest du dich nach einer guten Oberflächen Api umschauen 🙂



  • Und natürlich einen Compiler mit IDE oder wie das heißt. Oder GUI oder so^^
    Also das, womit man Buttons und sowas ganz schnell erstellen kann



  • haben denn die befehle die ich jetzt lerne also (wie schon gesagt) cout, cin etc mit der späteren programmierung zu tun oder ist das völlig der falsche weg....

    was genau ist winapi? eine erweiterung für c++ oder doch eine komplett andere p-sprache?was empfehlt ihr genau dafür können zu müssen?

    ist dieses auch mit dem devc++ editor (+compiler) möglich oder was für ein editor schlagt ihr vor!?

    sry wenn euch meine fragen dumm vorkommen aber für mich ist das alles total neu! 😕

    danke & gruß dapartiou



  • cin und cout sind für die Ein- und Ausgabe auf der Konsole. Später wirst du die wohl nur noch selten benutzen. Zum lernen, allerdings wichtig, es sei denn du willst keine Ausgaben oder Eingaben ermöglichen. 😉

    Win(dows)API ist das Application Programming Interface (API) für Windows für die Systemprogrammierung (wozu u.a. auch GUI gehört). Diese ist aber mittlerweile in vielen Bibliotheken/Frameworks gekapselt. Sich mit Bibliotheken und so auseinanderzusetzen ist sicher sehr wichtig, aber für intensives arbeiten mit sowas (zumindest bei Plattformabhängigen sachen), sollte man das eher bei einem konkreten Projekt machen, als sich jetzt eine Bibliothek nach der anderen reinzuziehen. Wenn du damit Programmieren willst, lern erstmal die Grundladen, die sind immer wichtig. Eigentlich sollte man GUI und Logik sowieso voneinander trennen und da wirst du bei der Logik meist wohl eher Wissen über die Sprache selbst benötigen, als über eine Bibliothek.

    Der DevC++ ist eine sehr gute kostenlose Entwicklungsumgebung. Inwiefern diese in der Praxis genutzt wird weiß ich nicht, aber wenn man sich sonst keine Leisten kann wie z.B. Visual Studio, sollte man auf diese zurückgreifen in Windows.



  • xindon schrieb:

    und wenn du aber auch noch Spaß dabei haben willst, dann solltest du dich nach einer guten Oberflächen Api umschauen 🙂

    Erstmal ist WinAPI mehr als nur eine GUI API. Und zweitens kannst du damit durchaus Spass haben, kommt halt nur darauf an, wie du veranlagt bist. 🙂

    DaPartioU schrieb:

    haben denn die befehle die ich jetzt lerne also (wie schon gesagt) cout, cin etc mit der späteren programmierung zu tun oder ist das völlig der falsche weg....

    In C++ gibt es keine Befehle und cin und cout sind auch keine. Es sind einfach Objekte, mit denen du Ein- und Ausgaben über die Konsole steuern kannst. Und es ist definitiv der richtige Weg. Warum? Nun, wie du evtl. weisst, gibt es einen Standard für C++. Falls nicht, dann weisst du es jetzt. In diesem Standard ist die Sprache bis ins Detail spezifiziert. GUIs gehören allerdings nicht dazu. Und wie soll man eine Sprache lernen, wenn man nicht mal einen Text in der Konsole ausgeben oder eine Eingabe über die Tastatur einlesen kann? Die meisten C++ Programmierer haben mit Konsolenprogrammen die Sprache gelernt. Letztendlich ist das aber auch nicht so wichtig. Wichtig ist, dass du lernst, mit der Sprache umzugehen. Und ob ein Objekt wie zB cout einen Text in der Konsole oder in einer Dialogtextbox ausgibt, ist letztendlich nur eine Frage der Implementierung. Am eigentlichen sprachlichen Lernprozess ändert das jedenfalls nichts.

    DaPartioU schrieb:

    was genau ist winapi? eine erweiterung für c++ oder doch eine komplett andere p-sprache?was empfehlt ihr genau dafür können zu müssen?

    ist dieses auch mit dem devc++ editor (+compiler) möglich oder was für ein editor schlagt ihr vor!?

    Dev-C++ würde ich persönlich nicht mehr empfehlen, da es imo bessere frei verfügbare IDEs gibt, zB Code::Blocks oder VC++ 2005 Express. Das musst du letztendlich aber selbst entscheiden, womit du am besten zurechtkommst. Der Compiler, der Dev-C++ beiliegt, ist hingegen absolut empfehlenswert. Dies ist ein Windows Port vom GCC namens MinGW und kann auch problemlos in anderen IDEs eingesetzt werden, zB Code::Blocks. Und ja, es gibt für MinGW Bibliotheken und Headerdateien, mit denen du letztendlich auch die WinAPI nutzen kannst. Falls diese nicht dem Installationspaket der entsprechenden IDE beiliegen, kannst du dir diese jederzeit über http://www.mingw.org besorgen.



  • hi, habe soweit alles verstanden.danke für die große mühe die ihr euch für mich gemacht habt! (komischer satz)

    also wenn ich es jetzt richtig verstanden habe, ist es nicht nur sinnvoll sondern auch nötig c++ zu lernen umd die grundlagen für das spätere programmieren zu können!

    zu den IDEs (damit ist, wie ich es verstanden habe, ein editor für programmiersprachen gemint!?). ist visual studio nicht für visual c++ und das wiederum eine von microsoft entwickelte programmiersprache oder ist das letztlich das gleiche wie c++?

    mfg dapartiou



  • DaPartioU schrieb:

    also wenn ich es jetzt richtig verstanden habe, ist es nicht nur sinnvoll sondern auch nötig c++ zu lernen umd die grundlagen für das spätere programmieren zu können!

    Exakt! Du könntest zwar auch sofort loslegen und dir mit entsprechenden IDEs irgendwelche GUI Anwendungen zusammenklicken. Empfehlenswert ist das aber nicht. Du fängst dann zu schnell an rumzurudern, weil du an bestimmten Stellen einfach nicht weisst was passiert. Oder du programmierst zu umständlich, weil du nie gelernt, dass es auch einfacher geht. Du musst C++ ja nicht bis zum bitteren Ende durchexerzieren, aber die wichtigen Grundlagen solltest du auf jeden Fall beherrschen.

    DaPartioU schrieb:

    zu den IDEs (damit ist, wie ich es verstanden habe, ein editor für programmiersprachen gemint!?).

    ➡ Wikipedia ist gut

    DaPartioU schrieb:

    ist visual studio nicht für visual c++ und das wiederum eine von microsoft entwickelte programmiersprache oder ist das letztlich das gleiche wie c++?

    Visual Studio ist das komplette Entwicklerpaket von Microsoft. Damit kannst du nicht nur C++ programmieren, sondern auch andere Sprachen, wie VB oder C#. Visual C++ ist hingegen die reine C++ IDE. Und nein, es ist keine Microsoft eigene Sprache, sondern eifach nur ein Werkzeug, um C++ Programme zu entwickeln.


Anmelden zum Antworten