Matrix Eingabemaske



  • Aaaaach sooo, ihr sollt eine eigene Klasse für die Komplexen Zahlen schreiben.

    Naja, da solltest du wohl erstmal einen anderen Namen für die Klasse wählen, weil der Name complex bereits vergeben ist und es daher zu Konflikten kommen kann.

    ... aber zusammen bekomme ich es nicht.

    Angenommen, du nennst deine Klasse my_complex und die zugehörige Headerdatei my_complex.h, dann kannst du deine Klasse mit

    #include my_complex.h
    

    in dein main-Programm einbinden.

    Oki doki und dann kannst du in deinem main-Programm
    diese Zeile: typedef double matrix[max_dim][max_dim];
    rausschmeisen und ersetzen mit:
    my_complex testmatrix[max_dim][max_dim];
    Damit erzeugst du eine Matrix mit Objekten deiner my_complex Klasse und
    kannst sie mit Ihhalt füllen.

    Die Zeile: matrix testmatrix;
    Kann dann ganz rausfliegen.

    Gruß, p.



  • moin
    naja, hier mal ein Teil des Bewertungsprinzips:

    Objektorientierte Realisierung (20 Prozent):
    --------------------------------------------
    durchgängig Klassen verwendet, Problem in mehreren Klassen abgebildet

    sinnvolle Datenkapselung (z. B. interne Daten einer Klasse als private deklariert, Zugriffsmethoden implementiert)

    Vererbung sinnvoll verwendet

    generische Programmierung (Templates) sinnvoll verwendet

    Laufzeitfehler sinnvoll behandelt (Exception-handling)

    Verständlichkeit der Implementierung (20 Prozent)
    -------------------------------------------------
    aussagekräftige Bezeichner für Typen, Variablen, Funktionen und
    Klassen verwendet

    Datenstrukturen einfach gehalten

    Programm-Code angemessen kommentiert

    Verschachtlungstiefe in Auswahlen (if, switch) und Schleifen (while dowhile,
    for) gering, keine Sprünge

    Sinnvolle, schmale Schnittstellen bei Klassen und Funktionen, lose
    Kopplung

    kurze Funktionsimplementierung, Funktionalität auf viele Funktionen
    aufgeteilt



  • Na dann mal toi toi toi und ran an die Tasten 🙂

    In Sachen Templates, Exceptions usw. helfen dir hier die Profis sicherlich gern weiter, denn diesbezüglich sind meine Kenntnisse nicht so doll.

    Gruß,
    p.



  • juhu, die Eingabe es geht 😮
    habe aber noch etwas, und zwar, sollen auch nur relle eingaben gemacht werden können, also nicht nur komplexe zahlen
    wie funktioniert das?
    weil wenn ich jetzt nur relle zahlen eingeben möchte, meckert das programm und beendet???



  • Hi,
    supie das es funzt !

    Das das Programm bei der Eingabe reeller Zahlen meckert ist kein Wunder, denn das hast du ihm mit unten stehender Anweisung beigebracht:
    ...
    if (!(c[0] == '+' && c[1] == 'i' && c[2] == ''))*
    ...

    Sinnvoll wäre da, für den Imaginärteil Null zuzulassen, dann ist es ja eine reelle Zahl. 🙂

    Gruß,
    p.



  • wäre es nicht besser, die Fehlerausgabe:

    cerr << "Input error complex" << std::endl;
    system("PAUSE");
    exit(1);
    

    umzuschreiben in:

    z.im=0;
    

    oder funktioniert das so nicht?



  • Ja, warum nicht, das ist deine freie Wahl.
    Ich finde es jedoch übersichtlicher, wie es der 'große Bruder' macht, also die
    Klasse complex der C++ Bibliothek.
    Eine Zahl mit Imaginärteil gleich Null sieht dann so aus: ( Re, 0 )

    Das ist natürlich dir überlassen wie du das möchtest.



  • habe es mal ausprobiert 😉

    geht leider nicht so richtig

    #Zeilen und #Spalten (min. 1, max. 12):2 2
    Matrix[1][1..2] ? 1 2
    3 4
    5 6
    7 8
    Matrix[2][1..2] ? 3 4
    5 6
    7 8
    9 0
    
    Ihre Matrix:
    1+i*0   5+i*0
    3+i*0   7+i*0
    'q' zum Beenden eingeben.
    

    gibt es eine Übersicht zu der Klasse?



  • Geh doch mal eine Seite zurück, da ist doch das kleine "Starthilfe" Beispiel.
    Die Übersicht gibts, bestimmt auch in deiner Kompiler-Bibliothek.



  • ja, hi. das zitat aus der aufgabenstellung kommt mir aber seeeeeeehr bekannt vor 😃 du studierst nicht REIN zufällig an der FH jena oder? u wenn doch hattet ihr scho präsentation?


Anmelden zum Antworten