Cplusplus - neue und gute Antworten

  • 0
    Speichergröße eines Typs ( C++ Programmierung )
    Antwort von wolfgang1956 wolfgang1956
    • Datentypen legen fest, wieviel Bytes der Speicher einer Variable belegt und dafür anfordern muß.
    • Es gibt verschiedene Datentypen: Char = 1 Byte, Int = 1 … 8 Bytes, Float = 4 oder 8 Bytes, Pointer = 4 oder 8 Bytes, Arrays, Strings und die „Structs“, die über die Summe ihrer einzelnen Datentypen definiert sind.
    • Da heutzutage die Computer in Normalfall mit genügend Speicher ausgestattet sind, muß man beim Programmieren nicht mehr so sehr auf den Speicher achten. Allerdings werden Programme durchaus schneller, wenn man den Speicher „clever“ verwendet und z.B. nicht unnötig viele Variablen definiert, die ggf. gar nicht gebraucht werden, weil das Programm sie nicht verwendet … :-)
    • Compiler sind inzwischen sehr „clever“ geworden und durchaus in der Lage, unnötige Variablen wegzuoptimieren, brauchbarere Fehlermeldungen zu liefern und hochoptimierten Code zu erstellen.
    • Der C++-Compiler muß jedoch immer wissen, mit welchem Datentyp er rechnet. Eine fehlende Angabe des Datentyps führt i.a. zum Abbruch des Compilerlaufs. (undefined variable)
    • In Sprachen wie beispielsweise Objective-C kann man auch einen Datentyp namens „id“ übergeben. Das Programm muß dann während der Laufzeit herausfinden, welches Objekt gemeint ist. Das kann und muß man nicht immer wissen, weswegen diese Sprache deutlich dynamischer ist.
  • 0
    c++ Programm ideen
    Antwort von wolfgang1956 wolfgang1956

    Lass' dir was einfallen … Einen von 500.000.000 Taschenrechner Wirst du wohl schon schaffen … :-)

  • 0
    Speichergröße eines Typs ( C++ Programmierung )
    Antwort von bambam2174 bambam2174

    Der ganze Speicher ist ja mit einer Folge von 0 und 1 belegt. Die Datentypen braucht man, um bestimmen zu können, wo ein Wert beginnt und wieviel Zeichen/Stellen er braucht. Ohne diese Größen könnte man gar nicht bestimmen welche Werte nun im Speicher stehen.

    Hier mal ein visuelles Beispiel:

    4346776444788765434567899645664575685858574576

    Hier kann man gar nicht sagen, ob das jetzt lauter Ziffern (ein Zeichen groß) sind oder eine einzige riesengroße Zahl. Wenn man nun in dieser Folge Beginn und Länge jedes Wertes festlegt, ist alles klar

    43|4677|64|44|78876543|4567|8996|45664575|6858|58|57|4576

    Also braucht der Compiler und der Prozessor den Datentyp, damit er weiß, wieviel Stellen er mitzählen muss, um den richtigen Wert zu lesen!

  • 0
    c++ Programm ideen
    Antwort von kaano111 kaano111

    C++ ist eine sehr Schwierige Programmiersprache. Andernfalls habe ich schon damit einen 3D First Person Spiel Programmiert.

    Du kannst 2D wie Mario Games erstellen.

  • 0
    c++ Programm ideen
    Antwort von UbuntuUser117 UbuntuUser117

    Hier aus unserem Kurs:

    Folgendes kleine Spiel soll programmiert werden: Als Parameter soll der Methode check eine Zahl übergeben werden, die angibt, wieviele verschiedene Zahlen zur Auswahl stehen. Der Computer wählt dann zufällig aus diesen Zahlen eine aus (z.B. bei Eingabe 100 liegen die Zahlen zw. 1 und 100). Der Spieler muss dann diese Zahl erraten. Dazu wird er solange aufgefordert, eine Zahl in die Konsole einzugeben, bis die eingegeben Zahl genau der gewählten Zahl entspricht. Wenn die Zahl nicht genau getroffen wurde, wird ausgegeben, ob die gesuchte Zahl kleiner oder größer der gesuchten ist. Am Ende wird die Anzahl der benötigten Versuche ausgegeben.

    Bsp: Aufruf mit Parameter 100. Es wurde eine von 100 Zahlen ausgewählt. Zahl eingeben: 60 Die gesuchte Zahl ist größer als 60. Zahl eingeben: 70 Die gesuchte Zahl ist kleiner als 70. Zahl eingeben: 65 Die gesuchte Zahl ist kleiner als 65. Zahl eingeben: 62 Gratuliere - Du hast die Zahl beim 4. Versuch erraten.

    MFG

  • 0
    c++ Programm ideen
    Antwort von HerrKlug HerrKlug

    Text Editor oder Mini Media Player?

  • 1
    Speichergröße eines Typs ( C++ Programmierung )
    Antwort von apachy apachy

    Zwar hat man meist genug Speicherreserven, trotzdem sollte man nicht unnötig viel nutzen. Eine IP besteht z.B. aus 4 Oktetts. Natürlich kannst du für die Zahlen 4 Integer nutzen aber genauso kannst du auch 4 Chars nutzen und reservierst dir damit 4 mal weniger Speicher.

    Die Datentypen haben zwar meist bestimmte Zwecke, denoch kann man sie auch anders verwenden. Abgesehen davon wird es beim Schreiben und Lesen dieser Dateien wieder wichtig, sofern man diese Binär beschreibt, da man sie mit der selben Größe beim Lesen angeben muss, wie beim Schreiben. Sofern du C++ lernst wirste dies dann bei den ifstream bzw. ofstream sehen.

  • 1
    Speichergröße eines Typs ( C++ Programmierung )
    Antwort von supernicky supernicky

    Hallo,

    dein Compiler braucht diese Angaben, damit er damit rechnen kann. Du musst ihm schon sagen ob es eine Zahl oder ein Buchstabe ist und wenn du dann damit rechnen willst, kann er dich warten wenn du A * C rechnen möchtest (was ja nicht sehr sinnvoll ist).

    Datentypen und ihre Größen gibts es schon ewig... Der Sinn dahinter war auch mal den "kostbaren" Speicherplatz nicht zu verschwenden... Ein Buchstabe passt immer in ein Byte rein.. Ihn in einer Integervariablen zu speichern verschwendet also ganze 3 Byte Speicher...

    Heutzutage ist das nicht mehr so wichtig, da unter 32bit Windows eingentlich alles Doppelwörter sind (4Byte = 32bit), außer Buchstaben natürlich, die sind immernoch ein Byte groß :)

    Ich kann jedem nur empfehlen sich mal mit Assembler zu beschäftigen.. da kannst du mal sehen wie ein Prozessor rechnet. Er unterscheidet dabei immer Byte, Word und Doppelwort oder Quadword (64bit)... nur das muss ihm auch gesagt werden :)

    Und das machst du wenn du Variablen deklarierst, dann kann der Compiler die richtigen Anweisungen an den Prozessor erstellen (Opcodes).

    Gruß, Nicky

  • 1
    Speichergröße eines Typs ( C++ Programmierung )
    Antwort von gkyFFM gkyFFM

    Da gibts einige Fälle, wo man das braucht. Zum Beispiel:

    • Einlesen eines Dateiheaders z. B. bei der Videobearbeitung. Da mußt Du die Daten exakt abgreifen, sonst liest Du nur Schrott aus. Hier kannst Du dir mal einige Headerbeschreibungen ansehen: http://www.topfield.cc/files/Firebird/TF_Internal_Info.pdf
    • bei Records allgemein
    • Wenn Du eine Zeichenkette bestehend aus WideChars zum Beispiel umwandeln willst, mußt Du in der Einleseschleife die Schleifenvariable um die Größe des WideChars erhöhen.

    Bei Zahlen ist nicht nur die Größe in Bytes wichtig, sondern ob die Zahl auch negative Werte darstellen kann.

  • 2
    C++ Lernen... Problem: Programm beendet sich. Wieso?
    Antwort von spike42 spike42

    Ich kann zwar kein C++, würde es aber mal mit for ( int a = 0; a < Rundenanzahl; a++) versuchen.

    Das Stück kannst du übrigens löschen: if ( a < 0) { cin.get(); break; }

    a wird nie kleiner als Null.

    Kommentar von lukas1177 lukas1177

    Ok vielen Dank :) Hat geklappt :)

  • 0
    Programierlernprogramm
    Antwort von wolfgang1956 wolfgang1956

    Lehr- oder Lernprogramme in „deinem“ Sinne gibt es eigentlich für keine Programmiersprache.

    Wer das Programmieren lernen will, muß sich in sein Studierzimmer setzen und

    • „Seine“ Programmiersprache lernen
    • Learning by Doing angesagt ist
    • es viel verlangt wäre, vom Compilerhersteller ein „Lehrprogramm“ zu erstellen. Die Fehler bekommt man ja häufig als „Syntax-Error“ angezeigt. Aus diesen Fehlern muß man dann lernen … :-)
    Kommentar von wolfgang1956 wolfgang1956wolfgang1956

    Sehr gut sind hier Podcasts und Aufzeichnungen von Lehr-Veranstaltungen in iTunes-U … :-)

    Leider gibt es das Hauptsächlich zu Objective-C und Java … :-)

  • 1
    Programier-lernprogramm
    Antwort von wolfgang1956 wolfgang1956

    Lehr- oder Lernprogramme in „deinem“ Sinne gibt es eigentlich für keine Programmiersprache.

    Wer das Programmieren lernen will, muß sich in sein Studierzimmer setzen und

    • „Seine“ Programmiersprache lernen
    • Learning by Doing angesagt ist
    • es viel verlangt wäre, vom Compilerhersteller ein „Lehrprogramm“ zu erstellen. Die Fehler bekommt man ja häufig als „Syntax-Error“ angezeigt. Aus diesen Fehlern muß man dann lernen … :-)
  • 1
    Programierlernprogramm
    RatgeberHelden Antwort von tobistenzel tobistenzel

    Habe noch nichts davon gehört, dass es sowas für C++ gibt. Für Anfänger ist die Sprache sowieso keine besonders gute Idee. Von Programmierlernprogrammen halte ich allgemein eher wenig; am besten eine leicht verständliche Sprache (also nicht C++ ;)) nehmen und einfach anfangen. Gute Bücher gibts ja für verschiedenste Sprachen. Außerdem ist es sinnvoll, sich jemanden zu suchen, der einem weiterhelfen kann oder einem die Sprache sogar beibringt.

    Für was brauchst du denn C++?

    Kommentar von MopMopMan MopMopMan

    ich mag halt programmieren. ich habe eine lange zeit minecraft mods erstellt. diese waren in java. jetzt möchte ich halt mal c++ lernen. kannst du c++?. vllt. kann ich etwas von dir lernen

    Kommentar von tobistenzel tobistenzeltobistenzel

    Ich kann C++ einigermaßen, programmiere aber nur sehr ungern damit, weil ich noch einige andere Sprachen kenne, die mir viel mehr bringen und besser gefallen. Mit C++ mache ich bloß was gegen Bezahlung ;)

    Wenn du mal was anderes machen willst, würde ich dir Scala empfehlen. Das läuft auch auf der Java VM, ist aber eine bessere und interessantere Sprache als Java... Da könnte ich dir auch was beibringen.

  • 1
    Warum Doppelstern beim Zeiger in C++?
    Antwort von notizhelge notizhelge

    Schreib den ersten Parameter mal so (also, nur in Gedanken!):

    char* cEing[256]
    

    Das ist äquivalent zu dem, was du geschrieben hast, aber klarer. Der Typ ist hier "char*", also "Zeiger auf char". Und davon ein Array namens "cEing" mit 256 Feldern. Jedes Feld ist ein Zeiger, vulgo: eine Adresse. Ich nehme mal nicht an, dass du das willst.

    Dadurch erklärt sich der Rest. Deine Schleife findet nicht das Null-Byte (was du wahrscheinlich wolltest), sondern einen NULL-Zeiger, und der kann dann wer-weiß-wo sein. Und mit *cEing='/' weißt du irgendeiner Speicherstelle, die dem Typ nach ein Zeiger wäre, den Wert '/' zu. Eigentlich zwei Fehler in einem.

    Und **cEing='/' geht dann schief, weil das Array (vermutlich) nicht initialisiert ist (jedenfalls nicht mit gültigen char-Zeigern), zudem der Zeiger jetzt wer-weiß-wohin zeigt.

    Schreib statt dessen:

     void FuegeHinzu(char cEing[256], char Datei[256])
    

    ohne das Sternchen.

    Kommentar von Doenergammler DoenergammlerDoenergammler

    Danke, jetzt weiß ich wieder, dass ein Array quasi ein Zeiger ist. So hat es zwar dann noch nicht geklappt, ich hab es dann aber so gelöst und es geht einwandfrei!

    void FuegeHinzu(char cEing[256], char Datei[256])
    {
    char *charZeiger = cEing;
    while(*charZeiger)
        charZeiger++;
    *charZeiger = '/';
    charZeiger++;
    for(int i=0; Datei[i]; i++)
        charZeiger[i] = Datei[i];
    }
    

    Ich werde diese Antwort auch dann als Hilfreichste auszeichnen ;)

    Kommentar von notizhelge notizhelgenotizhelge

    Freut mich geholfen zu haben & und vielen Dank!

  • 0
    Warum Doppelstern beim Zeiger in C++?
    Antwort von afgermany afgermany

    Wieso wendest du denn überhaupt dass Sternchen an? In dem Fall würde ich sagen brauchst du es garnicht, also ohne übergeben und ohne anwenden.

  • 0
    Letzte Änderung c++
    Antwort von wolfgang1956 wolfgang1956

    Einfach mal genauer in der Dokumentation nachlesen, wie man das Datum formatieren könnte. Da finden sich bestimmt Infos … :-)

  • 0
    Spiel erstellen, eins wie 'call of mini'?
    Hilfreichste Antwort von SK199613 SK199613

    Also erstmal ohne Programmier Kenntnise? Directx oder Opengl? Das sind fortgeschrittene Themen, mit 2,3 Jahren Programmiererfahrung, bekommst du da vl. was zusammen. (glaub mir ich weiß wovon ich spreche, sitze grade selber an einer eigenen Game Engine) und ein 3D Game in Visual Basic? nie im Leben, VB ist viel zu langsam... Aber es gibt Alternativen. Am besten solltest du dich nach einer Game Engine umsehen, Die Cry Engien 3 zbs. http://mycryengine.com/ oder das UDK (Unreal Engie 3)... achja und mit UDK kannst du nicht nur "ein paar Level zusammenklicken".... ich sag nur: "Mass Effect 1/2/3, Bulletstorm, Gears of War 1/2/3, Medal of Honor: Airborne,BioShock 1/2 ..." soll ich weiter Aufzählen? :D Das selbe Gildet für Die Cry Engie ... Far Cry,Crysis 1/2/3 .... Setzt dich mal ein Bisschen mit der Materie auseinander! Spiele Entwinkeln ist nicht so einfach wie du glaubst und um's Skripten wirst du nicht darumkommen!

    LG und trotzdem viel Spaß SK ;)

    Kommentar von funjunky funjunkyfunjunky

    danke für die antwort, aber ich wusste, dass es mit vb eigentlich unmöglich ist aber ich wollt nur mal erwähnen, dass ich programmierkentnisse habe ;D

    aber danke nochmal für den link ;D

    MfG

  • 0
    AJAX Timer
    Antwort von thedafelix thedafelix

    Du willst was wie wann ausgeben? Diese statische MySQL query 5 sekunde nachdem die seite geladen hat?

    Kommentar von thedafelix thedafelixthedafelix

    Ach, verstanden. Naja, google einfach mal nach jquery ajax. Is ziemlich simple

  • 0
    Spiel erstellen, eins wie 'call of mini'?
    Antwort von AlphaGamer AlphaGamer

    C++ wird dir in dem Fall nichts nutzen weil Call of Mini in einer ganz anderen Sprache geschrieben ist! (ist ja ne iphone App) Ich denke dafür muss man sowas schon studieren um sowas hinzu bekommen..

    Kommentar von funjunky funjunkyfunjunky

    ich mein es ja auch nur für pc und es kann auch nur eine kugel oder ien klotz sein, der in einem haus rumläuft ;D

    Kommentar von iWonder iWonderiWonder

    Da hast du wohl keine Ahnung: iPhone-Apps sind nämlich in Objective-C geschrieben, was im Grunde nur ein Ableger von C und C++ (für die Objektorientierte Komponente) ist. Außerdem kannst du beim iPhone-Programmieren auch in einer Datei zwischen Obj.C, C und C++ Code mischen, und daher auch nur in C bzw. C++ programmieren.

    Kommentar von funjunky funjunkyfunjunky

    aber ich will keine iphone app programmikeren ;D

  • 0
    Spiel erstellen, eins wie 'call of mini'?
    Antwort von BoltokTheRaper BoltokTheRaper

    Verwende UDK.

    Kommentar von AlphaGamer AlphaGamerAlphaGamer

    und was hat das mit Call Of Mini zu tun? ;) bei UDK kann man sich nur einpaar maps ertellen.. mehr nicht..

    Kommentar von BoltokTheRaper BoltokTheRaperBoltokTheRaper

    Ähm nein? Damit kannst Du komplette Spiele erstellen, es ist ja eine ENGINE...

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.