Zum Inhalt springen

Panke

Mitglieder
  • Gesamte Inhalte

    56
  • Benutzer seit

  • Letzter Besuch

Beiträge von Panke

  1. Generell kommt es nicht auf die Sprache an, die man lernt, sondern das Verständnis zur Problemlösung

    Da muss ich widersprechen. Genauso wie unsere natürliche Sprache die Art und Weise unseres Denkens beeinflusst, beeinflusst die Wahl der Programmiersprache ganz entschieden die Herangehensweise an eine Aufgabe. Wer das nicht glaubt, möge bitte eine Lösung in Prolog, Haskell und C miteinander vergleichen.

    für den Einstieg kann man auch Java und PHP empfehlen. Natürlich kannst Du auch C++, C#, Objectiv-C o.ä. verwenden. Auch FreePascal wäre eine sehr einfache Alternative.

    Von Java rate ich ab. Die Sprache ist umständlich und zwängt dich in ein Korsett, dass du später nur schlecht wieder los wirst, wenn du dann eine Sprache benutzt, die dir nicht ständig Knüppel zwischen die Beine wirft.

    Da gewöhnt man sich nur einen schlechten Programmierstil an.

    Gegen PHP habe ich eine persönliche Abneigung, dazu sage ich nichts.

    C++ ist für einen vollständigen Programmieranfänger vielleicht etwas zu viel auf einmal. Aber machbar.

    C# und O-C habe ich persönlich nie benutzt. Pascal ist ein gangbarer Weg, aber ich glaube nicht, dass sich das Erlernen von Pascal heute noch lohnt.

    Ich kann dir nur zu Python raten, da du Zugriff auf einen Haufen guter Bibliotheken hast, die Sprache prozedurale, objektorientierte und funktionale Programmierung unterstützt, sie interpretiert und dynamisch aber stark typisiert ist. Alles Dinge, die ich nicht mehr missen wollte. Nebenbei ist sie auch noch spotteinfach zu lernen und hat die wahrscheinlich einfachste Syntax der Welt.

  2. Naja aber das mit "==" ist doch wirklich einfach zu verstehen, das müsste doch in C-Varianten ähnlich sein. "==" vergleicht die Referenz von Objekten aber nicht den Inhalt. Um den Inhalt zu vergleichen verfügt jedes Objekt über eine equals(Object)-Methode.

    Dafür gibt's (nicht nur) in C++ Operatorüberladung. In C selber gibt's ja Zeichenketten nicht wirklich. Da hat man ja nur [const] char*, klar dass da kein Inhalt verglichen wird.

  3. Um den OOP Richtlinien zu folgen, würde ich für jedes Attribut eine Setter-(falls gebraucht auch noch eine Getter-) Methode schreiben.

    Welche OOP Richtlinien? Hat da einer 15 Richtlinien in Stein gemeißelt? Also ich finde ja, elegant programmieren / schönes OOP geht in Java nicht.

    cloud2302 mir fällt dazu als Möglichkeit noch ein, ein assoziatives Feld zu nutzen, in denen du Referenzen auf Objekte gleicher Schnittstelle vorhälst. Diese Objekte haben dann eine Methode, der du den neuen Wert übergibst, eventuelle Prüfungen durchführt und den Wert setzt. Als Indizes nimmst du dann die Methodennamen.

    Das spart dir aber keine Tipparbeit und ist meiner Meinung nach auch nur ein Krampf, um den offensichtlichen Mangel an Funktionszeigern wie in C zu umgehen.

  4. Da ich aber gerade nicht weiß, wie man den Modus von offenen Streams ändert, könnte dir evtl. folgendes helfen:

    Formatted output

    These member functions interpret and format the data to be written as sequences of characters. These type of operation is performed using member and global functions that overload the insertion operator (operator<<).

    Unformatted output

    Most of the other member functions of the ostream class are used to perform unformatted output operations, i.e. output operations that write the data as it is, with no formatting adaptations. These member functions can write a determined number of characters to the output character sequence (put, write) and manipulate the put pointer (seekp, tellp).

    von hier ostream - C++ Reference

  5. Das ganze auch mit Beispiel gibt es hier

    Eigentlich läuft es auf folgendes hinaus. Du hast drei unabhängige Teile in deinem Programm.

    Ein Model, mindestens ein View und mindestens ein Controller.

    Das Model hält die Daten. Es stehen zwar auch im View Daten, da der View sie ja anzeigen muss, aber eben auch nur die, die er anzeigen muss. Und für die Konsistenz ist das Model zuständig.

    Ein View ist eine graphische Darstellung der Daten und des Zustandes des Programmes.

    Ein Controller ist alles, was Ereignisse ausserhalb des Programmes verarbeitet und entsprechende Nachrichten an Model und View weiterleitet.

  6. Hallo,

    die <komplexes Thema> in 21 Tagen Serie hat ganz offensichtlich zu Recht keinen guten Ruf.

    Also:

    Die Dinger, die mit # anfangen, sind keine Anweisungen, sondern Direktiven. Die kriegt der C++ Compiler aber sowieso nicht zu sehen, also ist das hier erstmal uninteressant.

    Ein Ausdruck besteht aus min. einem Operanden und eine auf diesen angewendete Operation.

    Eine Anweisung ist die kleinste unabhängige Einheit eines C++ Programms. Diese werden *in der Regel* mit einem Semikolon abgeschlossen. Die einfachste Anweisung ist die Nullanweisung, diese besteht nur aus einem Semikolon.

    Ein Ausdruck wird zur Anweisung, wenn er mit einem Semikolon abgeschlossen wird. Die Zusammenfassung von mehreren Anweisungen mit geschweiften Klammern ist wieder eine Anweisung.

    
    if(bedingung)
    
        anweisung; // hier dein semikolon
    
    

    if(functionXy())

    ;

    Das ist legaler C++ Code. functionXy() ist ein Ausdruck. Dieser muss einen Wert zurückliefern, der implizit nach bool gecastet werden kann.

    (functionXy ist hier der Operand und () der Operator).

    Zur letzten Frage: C++ gestattet einem die in die Sprache eingebauten Datentypen, um eigene zu erweitern. Das Verhalten dieser eigenen Datentypen wird in einer Klasse beschrieben. Damit sagst du deinem Compiler wie der Datentyp heißt, wie er dafür Speicher reservieren soll etc. Eine Art Bauplan. Ein Objekt ist eine Instanz dieser Klasse. Das konkrete Haus zum Bauplan quasi.

  7. Hallo,

    wenn du selber angefangen und bei konkreten Problemen hier gefragt hättest, wärst du schon lange fertig. Wenn du nicht weißt, wie du anfängst, einfach mal die Aufgabe gründlich lesen und in Teilprobleme zerlegen. Diese dann lösen.

    Ein Programm Schreiben zur Verwaltung von Klausurobjekten.

    Der Aufbau des Programms bestehe aus

    - der Deklaration einer Klasse Klausur in einer Header-Datei, Klausur.h

    - der Definition der unten angegebenen Klassen- und Objektelementen in einer

    Implementierungsdatei Klausur.cpp sowie

    - einem Verwaltungsprogramm in der Datei, KlausurAdmin.cpp, das Klausur.h inkludiert und Klausur.cpp benutzt.

    Du brauchst also drei Dateien: Klausur.h, Klausur.cpp, KlausurAdmin.cpp. Wenn du nicht weißt, was eine Headerdatei ist, dann schnapp dir ein Buch und komm nicht wieder bis du das gelernt hast. Außerdem steht da, du sollst eine Klasse schreiben. Was die können muss, steht schön aufgelistet in der Aufgabe.

    Erstmal die Daten:

    Die Attribute eines jeden Klausurobjekts seien: Vorname, Nachname, Matrikelnummer sowie erzielbare

    und erzielte Punkte. Eingegebene Klausurdaten können auf dem Bildschirm ausgegeben werden.

    Dann das Verhalten:

    Die Klasse Klausur kapselt ein Klassenattribut int klausurZ in dem zu jedem Zeitpunkt die Anzahl

    der bis dahin eingegebenen Klausuren verwaltet wird.

    Zum inkrementieren dieses Klassenattributs sei eine

    private Funktion void increKlausuren() bereitgestellt.

    Zum Auslesen des Werts des Attributs sein eine public-Funktion int getKlausurZ()

    bereitgestellt.

    Zur Ermittlung der Note stellen Klausurobjekte eine public-Funktion double getNote()

    öffentlich bereit.

    Zur Berechnung der Note kapseln Klausurobjekte außerdem eine

    private-Funktion double berechneNote(), die auf der Basis der erzielten und erzielbaren

    Punktzahl eines jeden Klausurobjekts ermittelt wird.

    Außerdem soll jede Klausur eine öffentliche Funktion public void zeigAtte() aufweisen, die

    zur Ausgabe sämtlicher Attributwerte eines jeden Klausurobjekts auf dem Bildschirm benutzt wird.

    Wenn du die Klasse fertig hast, dann melde dich wieder. Dann reden wir über den Rest. Der Code zum Anfangen:

    
    touch Klausur.h Klausur.cpp KlausurAdmin.cpp
    
    
    
    class Klausur {/*hier alles was hier rein muss */ };
    
    

  8. Hallo,

    wenn du zu Hause den ***** zum lernen nicht hochkriegst/du immer abgelenkt wirst, dann schau zu, dass du dir deinen Arbeitsplatz so einrichtest, dass dich da nicht viel ablenken kann.

    Dazu gehört: Kein Fernseher, kein Radio, kein Telefon, kein Internet (bzw. kein Jabber, ICQ, IRC, Lieblingsforen gesperrt etc ..)

    Das hilft schon mal ne Menge.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...