Beiträge von curse

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“

    Lege dir zuerst mal eine Instanz der StringCollections-Klasse an.


    Code
    Dim list As New System.Collections.Specialized.StringCollection


    Danach fügst du jedes Element der ListBox der StringCollection hinzu:


    Code
    For Each item In ListBox1.Items    list.Add(item.ToString)Next


    Und zum Schluss speicherst du das in den Settings…


    Code
    My.Settings.BrowserHistory = list
    My.Settings.Save()

    Sorry für den Doppelpost. Ich hab gestern nochmal meine Festplatte durchstöbert und hab eine Klasse für Polynome gefunden, die unter anderem auch Methoden zum Differenzieren und Integrieren bietet.


    PHP
    <?php	/**	 * Represents a polynomial	 *	 * @author		    curse	 * @copyright	2012 curse	 */	class Polynomial {		private $degree;		private $coefficients = array();		public function __construct($coeff) {			$this->coefficients = $coeff;			$this->degree = $this->getDegree();		}		public function getDegree() {			return count($this->coefficients) - 1;		}		public function getCoefficients() {			return $this->coefficients;		}		public function evaluate($x) {			$result = $this->coefficients[0];			for ($i = 1; $i <= count($this->coefficients); $i++) {				$result += $this->coefficients[$i] * pow($x, $i);			}			return $result;		}		// f'(x) = n * x^(n - 1)		public function differentiate() {			if ($this->degree == 0) {				return new Polynomial(array(0));			}			$derivCoeff = array();			for ($i = 1; $i <= $this->degree; $i++) {				$derivCoeff[] = $i * $this->coefficients[$i];			}			return new Polynomial($derivCoeff);		}		// F(x) = x^(n + 1) / (n + 1) + C		public function integrate() {			$antiDerivCoeff = array(0);			for ($i = 0; $i <= $this->degree; $i++) {				$antiDerivCoeff[] = $this->coefficients[$i] / ($this->degree + 1);			}			return new Polynomial($antiDerivCoeff);		}		public function __toString() {			$polynomial = '';			for ($i = $this->degree; $i >= 0; $i--) {				if ($i < $this->degree) {					if ($this->coefficients[$i] > 0) $polynomial .= ' + ';					else if ($this->coefficients[$i] < 0) $polynomial .= ' - ';					else continue;				}				$absCoeff = abs($this->coefficients[$i]);				if ($i == 0 || $absCoeff != 1) $polynomial .= $absCoeff;				if ($i != 0) {					$polynomial .= 'x';					if ($i > 1) $polynomial .= '^' . $i;				}			}			return $polynomial;		}	}?>


    PHP
    // 4x^3 - 3x^2 + 1
    $p = new Polynomial(array(1, 0, -3, 4));

    Also wenn du auch schon Grundlagen in Bezug auf objektorientierte Programmierung (OOP) hast, dann würde ich dir raten, die Qt-Bibliothek zu benutzen. Damit kannst du plattformunabhängig entwickeln und hast außerdem einen schicken UI Designer (in der Qt Creator IDE enthalten), der dir die Arbeit als Anfänger etwas erleichtert. ;)

    Es ist mir durchaus bewusst, das einige Biblitheken wie QT (relativ) platformunabhängig sind und ich habe mich mit dem Satz "(wo bleibt da denn die Platformunabhängigkeit, die theoretisch C++ hat?)" auf die WinAPI bezogen.


    Das stimmt ja so auch, aber wenn du Anwendungen mit der WinAPI (oder einer anderen API wie DirectX) schreibst, hast du dich gezielt gegen die Plattformunabhängigkeit entschieden.



    Und ich will jetzt zwar nicht "das Rad neu erfinden", aber durch das selbst schreiben der Funktionen verstehen, wie es letztendlich im System abläuft.


    Es ist aber nicht so, dass du nur ein paar Funktionen selbst schreiben müsstest. Qt ist eine Bibliothek, die aus mehreren großen Klassen besteht und so etwas selbst zu schreiben ist richtig viel Arbeit. Wenn es dich aber interessiert kannst du dir den Source Code ja mal angucken.


    Ich habe mich dann also umgeschaut und musste feststellen, dass man bei der GUI fast immer auf irgendwelche Biblotheken (QT usw.) oder die WinAPI verwiesen wird


    Qt ist eine Bibliothek für die plattformübergreifende Programmierung einer GUI, das heißt die Programme funktionieren auf allen aktuellen Betriebssystemen. Programme, die mit der WinAPI entwickelt wurden laufen hingegen nur auf Windows.



    Als ein Programmierer, der aber lieber alles von Grund auf selbst erstellen und es somit auch verstehen möchte, würde ich lieber selbst die GUI usw schreiben. Vielleicht dann auch nicht immer, aber zumindest am Anfang; um zu verstehen wie es letztendlich funktioniert und unabhängig von irgendwelchem Bibliotheken zu sein, die es möglicherweise irgendwann nicht mehr geben wird.


    Was meinst du mit "selbst die GUI schreiben"? Eine Bibliothek liefert dir halt Klassen, die dir einiges an Arbeit abnehmen und unter anderem auch dafür sorgen, dass das Programm zum Schluss auf Windows genauso aussieht wie auf Linux oder Mac OS X. Es macht in meinen Augen keinen Sinn das Rad in Fällen wie diesen neu zu erfinden, dafür gibt es schließlich APIs und Libraries.