AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Seltsames Verhalten einer Funktion

Ein Thema von Pytroxis · begonnen am 24. Apr 2019 · letzter Beitrag vom 28. Apr 2019
Antwort Antwort
Seite 3 von 4     123 4      
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#21

AW: Seltsames Verhalten einer Funktion

  Alt 26. Apr 2019, 11:47

Prinzipiell geht jetzt alles, vielen Dank dafür!
Werde die Tage jetzt nur noch meinen Code aufräumen und versuchen so kompakt wie möglich zu schreiben
Falsches Ziel, schreibe den Kode verständlich, das ist viel wichtiger als kompakt.
Peter Below
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Seltsames Verhalten einer Funktion

  Alt 26. Apr 2019, 13:24
Finde ich auch - und vermutlich der Lehrer auch
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: Seltsames Verhalten einer Funktion

  Alt 26. Apr 2019, 15:56
Hallo,
Zitat:
verständlich
Das ist doch aber schlecht!!!
Dann könnte später ein Kollege am Code weiterarbeiten und man wäre ersetzbar ...
Heiko
  Mit Zitat antworten Zitat
Pytroxis

Registriert seit: 12. Apr 2019
46 Beiträge
 
#24

AW: Seltsames Verhalten einer Funktion

  Alt 26. Apr 2019, 16:22

Prinzipiell geht jetzt alles, vielen Dank dafür!
Werde die Tage jetzt nur noch meinen Code aufräumen und versuchen so kompakt wie möglich zu schreiben
Falsches Ziel, schreibe den Kode verständlich, das ist viel wichtiger als kompakt.
Um ehrlich zu sein ist es nicht das falsche Ziel. Ich muss ja nicht nur den Code abgeben sondern noch eine schriftliche Ausfertigung dazu wo ich alles erkläre.
Diese Ausfertigung darf maximal 12 Din A4 Seiten füllen, es hört sich zwar einfach an aber das ist es definitiv nicht (12 Seiten sind verdammt wenig).
Ich bin jetzt schon, ohne den Vergleich von Boxplots bei ca. 12 Seiten, demnach muss ich versuchen so viel wie möglich zu kürzen.
Ich erkläre sowieso alles in der Ausfertigung, zudem werden Kommentare im Code alles erklären.
Der Code soll eigentlich nur "Beiwerk" sein, die Facharbeit konzentriert sich auf das erklären des Programmes und wie ich es gelöst habe.
Außerdem meinte ich mit kompakt, dass ich Dinge weg lasse/auslagere die "unnötig" sind und umständliche Sachen einfacher schreiben will
Die Facharbeit ist soweit fertig, allerdings muss ich den vergleich noch einbringen und das wird schwierig.
Zur Krönung des ganzen: Ich habe meinen Lehrer gefragt ob ich ihm eine E-Mail schreiben kann um mit ihm alles zu besprechen, in dieser E-Mail war die erste Version meiner Facharbeit und ich fragte Ihn ob ich es so machen kann, diese E-Mail ist nun fast eine Woche her und bisher habe ich keine Reaktion erhalten.
Und um es noch schöner zu gestalten: Am 07.05. ist die Abgabe, d.h. ich habe nicht mehr viel Zeit die schriftliche Ausfertigung zu machen und es ist natürlich nicht schön, dass man an der "einfachsten" Aufgabe nun hängt, weil man nicht genau weiß wie man es machen soll -_-
(PS: Wir haben Ferien daher kann ich ihn nicht persönlich fragen und ich habe es nicht vor mir hin geschoben, die erste Version (in C++) war schon im Dezember fertig, allerdings hatte er bis vor kurzem die ganze Zeit über keine Zeit).



Das ist doch aber schlecht!!!
Dann könnte später ein Kollege am Code weiterarbeiten und man wäre ersetzbar ...
Witzige Geschichte, in meinem gesamten Kurs (ca. 15-20 Schüler) gibt es genau 2 Personen die Programmieren können und ich bin eine davon
Das ersetzen wird daher vielleicht etwas schwerer

Geändert von Pytroxis (26. Apr 2019 um 22:34 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: Seltsames Verhalten einer Funktion

  Alt 26. Apr 2019, 16:31
Hallo,
Zitat:
(12 Seiten sind verdammt wenig).
Ist die Schriftgröße vorgegeben?
Heiko
  Mit Zitat antworten Zitat
Pytroxis

Registriert seit: 12. Apr 2019
46 Beiträge
 
#26

AW: Seltsames Verhalten einer Funktion

  Alt 26. Apr 2019, 22:35
Hallo,
Zitat:
(12 Seiten sind verdammt wenig).
Ist die Schriftgröße vorgegeben?
Jep auch die Schriftart...

Aber nach einer erneuten E-Mail hat er geantwortet, habe jetzt mal einen Anhaltspunkt. wünscht mir Glück
  Mit Zitat antworten Zitat
Pytroxis

Registriert seit: 12. Apr 2019
46 Beiträge
 
#27

AW: Seltsames Verhalten einer Funktion

  Alt 27. Apr 2019, 17:33
Vielleicht könnt ihr mir gerade noch diese kurze Frage beantworten:
Ich habe meinen Code ja mittlerweile zu einer Klasse umgeschrieben.
Normalerweise würde man doch für jeden Boxplot eine Instanz erstellen, allerdings habe ich insgesamt nur eine Instanz für alle Boxplots erstellt.
Hierbei lasse ich dann einfach eine Schleife x Boxplots zeichnen, je nachdem wie viele Datensätze vorhanden sind.

Aber effektiv habe ich mir doch durch den umschrieb jetzt nichts gespart
Hätte ich einen Array vom Typ meiner Klasse erzeugt (wo jeder Index eine Instanz ist) hätte es doch mehr gebracht oder bin ich gerade nur dumm?
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: Seltsames Verhalten einer Funktion

  Alt 27. Apr 2019, 21:53

Aber effektiv habe ich mir doch durch den umschrieb jetzt nichts gespart
Hätte ich einen Array vom Typ meiner Klasse erzeugt (wo jeder Index eine Instanz ist) hätte es doch mehr gebracht oder bin ich gerade nur dumm?
Also ich hätte statt einem Array eine - bestenfalls generische - TObjectList genommen.. Wie der Name schon sagt ist diese genau dafür gedacht und hat auch schon sehr hilfreiche Methoden zur Verwaltung der Liste implementiert..
Michael Kübler
  Mit Zitat antworten Zitat
Pytroxis

Registriert seit: 12. Apr 2019
46 Beiträge
 
#29

AW: Seltsames Verhalten einer Funktion

  Alt 27. Apr 2019, 22:34
Also ich hätte statt einem Array eine - bestenfalls generische - TObjectList genommen.. Wie der Name schon sagt ist diese genau dafür gedacht und hat auch schon sehr hilfreiche Methoden zur Verwaltung der Liste implementiert..
Okay danke, werde es mir angucken und dann überlegen ob ich für jeden Boxplot eine eigene Instanz erstelle oder einfach weiterhin eine Instanz für alles nutze, bis jetzt funktioniert alles und ich glaube andernfalls müsste ich alles umschreiben
  Mit Zitat antworten Zitat
Pytroxis

Registriert seit: 12. Apr 2019
46 Beiträge
 
#30

AW: Seltsames Verhalten einer Funktion

  Alt 28. Apr 2019, 15:10
Wer soll das verstehen?.
Hatte es nochmal überarbeitet und versucht übersichtlicher zu gestalten.
Meine Lösung ist nun:

Delphi-Quellcode:
procedure TBoxplot.zeichnen(Boxplot : real);
  var i, xWert, index: integer;
      eineLaengeneinheit : Double;
      getHeight : array[0..9] of integer;
      getWidth : array[0..3] of integer;
  begin
    if Length(FZahlen) > 0 then begin
      xWert := 50;
      index := trunc(Boxplot);

      eineLaengeneinheit := (FSize[1]-120) / (FZahlen[index][High(FZahlen[index])] - FZahlen[index][0]);


      getHeight[0] := round(FSize[0] * 0.31919 + FHeight * Boxplot);
      getHeight[1] := round(FSize[0] * 0.13214 + FHeight * Boxplot);
      getHeight[2] := round(FSize[0] * 0.18379 + FHeight * Boxplot);
      getHeight[3] := round(FSize[0] * 0.04839 + FHeight * Boxplot);
      getHeight[4] := round(FSize[0] * 0.09839 + FHeight * Boxplot);
      getHeight[5] := round(FSize[0] * 0.21839 + FHeight * Boxplot);
      getHeight[6] := round(FSize[0] * 0.15839 + FHeight * Boxplot);
      getHeight[7] := round(FSize[0] * 0.26839 + FHeight * Boxplot);
      getHeight[8] := round(FSize[0] * 0.28839 + FHeight * Boxplot);
      getHeight[9] := round(FSize[0] * 0.27742 + FHeight * Boxplot);

      getWidth[0] := round(xWert + (FQuartils[index][0] - FZahlen[index][0]) * eineLaengenEinheit);
      getWidth[1] := round(xWert + (FMedian[index] - FZahlen[index][0]) * eineLaengenEinheit);
      getWidth[2] := round(xWert-1 + (FQuartils[index][1] - FZahlen[index][0]) * eineLaengenEinheit);



      // Name des Boxplots
      FPaintBox.Canvas.TextOut(xWert-20, getHeight[3]-20, FNamen[index] + ':');

      // Einteilung/Markierung
        // Minimum
      FPaintBox.Canvas.TextOut(xWert-5, getHeight[0], FloatToStr(FZahlen[index][0]));
      drawLine(clRed, xWert, getHeight[1], xWert, getHeight[2]);

        // Maximum
      FPaintBox.Canvas.TextOut(FWidth-5, getHeight[0], FloatToStr(FZahlen[index][High(FZahlen[index])]));
      drawLine(clRed, FWidth, getHeight[1], FWidth, getHeight[2]);

        // unteres Quartil
      FPaintBox.Canvas.TextOut(getWidth[0]-5, getHeight[3], FloatToStr(FQuartils[index][0]));
      drawLine(clRed, getWidth[0], getHeight[4], getWidth[0], getHeight[5]);

        // FMedian[index]
      FPaintBox.Canvas.TextOut(getWidth[1]-5, getHeight[3], FloatToStr(FMedian[index]));
      drawLine(clRed, getWidth[1], getHeight[4], getWidth[1], getHeight[5]);

        // oberes Quartil
      FPaintBox.Canvas.TextOut(getWidth[2]-5, getHeight[3], FloatToStr(FQuartils[index][1]));
      drawLine(clRed, getWidth[2], getHeight[4], getWidth[2], getHeight[5]);

        //Boxplot an sich
      drawLine(clBlack, xWert, getHeight[6], getWidth[0], getHeight[6]);
      drawLine(clBlack, getWidth[0], getHeight[4], getWidth[2], getHeight[4]);
      drawLine(clBlack, getWidth[0], getHeight[5], getWidth[2], getHeight[5]);
      drawLine(clBlack, getWidth[2], getHeight[6], FWidth, getHeight[6]);

      //Skala
      for i := 0 to round(FZahlen[index][High(FZahlen[index])]-FZahlen[index][0]) do begin
        getWidth[3] := round(xWert + i * eineLaengenEinheit);
        drawLine(clBlack, getWidth[3], getHeight[7], getWidth[3], getHeight[8]);
      end;
      drawLine(clBlack, xWert, getHeight[9], FWidth, getHeight[9]);
    end;
  end;
Ist das so schon mal verständlicher?
Und habt Ihr noch Tipps es übersichtlicher/verständlicher zu schreiben?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz