typundzahl.de

Mathematik & Informatik

2076
loader

typundzahl.de

Mathematik & Informatik

Mathematik und Informatik für Schüler, Studenten und Interessierte jeden Alters. Quellcodes aus C++, Java, Pascal und Delphi. Grafiken und illustrierende JavaScripts. Gründlich und umfangreich!

Bildung & Wissenschaft

Computer & Elektronik

Kontaktinformationen

0151 281 207 99

www.typundzahl.de

Mathias Bleher

Olmützer Weg 1 - 85737 Ismaning

Adresse
Impressum

Gründungsjahr:

2016

Mitarbeiter:

1-10

typundzahl.de

Klassen und Methoden

Klassen sind Oberbegriffe, die schon vorab definieren, welcher Art die folgenden Belegungen sein werden. Aber eben nur welcher Art und nicht welchen Inhalts.

Eine Klasse einer Schule mit dem klangvollen Namen 10a sagt noch nichts über die einzelnen Schüler, ihre Leistungen, ihre Schuhgrössen etc. aus, fasst aber alle Protagonisten der 10a auf.

Erst detailliertere Belegungen schaffen Inhalte, ändern aber nichts am Oberbegriff der 10a. Wie diese Inhalte verarbeitet werden, das entscheidet die Methode oder Funktion. Letztere können auch schon in der Klasse stehen oder eben im Hauptprogramm. Es bleibt Ihnen überlassen, wie weit der Oberbegriff konkretisiert sein soll.

Dazu gleich 6 Quellcodes in Pascal, die kleinschrittig deutlich machen, wie sinnvoll abstrakte Vorwegnahmen sind.

typundzahl.de

Der Entwurf

Ein Programm wird am Computer umgesetzt; eine Rechnung am Schreibtisch und zwar analog mit Papier und Bleistift.

Häufig entsteht die grundlegende Idee aber ganz woanders. Im Park, auf dem Fahrrad oder während der Fahrt mit der S-Bahn. Oder wie bei Archimedes: in der Badewanne.

Es sind aber auch die Lösungen eines Problems, diese scheinbar gordischen Knoten, die nicht nach stundenlangem Brüten am Schreibtisch zerschlagen werden.

Machen Sie mal Pause! Körperliche Anstrengung im Freien wirkt Wunder. Danach sieht Ihre Arbeit ganz anders aus.

typundzahl.de

Vererbung in Java

Wenn Sie Funktionen kennen, dann sind Klassen nicht weit. Und wer mit Klassen bereits gearbeitet hat, kann sich auch leicht vorstellen, daß diese in Hierarchien angelegt werden können. Daraus entstehen sogenannte Super- und Subklassen.

Nutzt man dieses Prinzip nun weiter aus, dann ergibt sich Vererbung. Und in Java ist diese - ich nenne sie mal Vererbungslehre - besonders interessant, da Java durch und durch objektorientiert ist.

Dazu ein Link im JavaDome mit vielen Quellcodes .

typundzahl.de

Die Quadratur des Rechtecks

Aus jedem Quadrat kann man ein flächengleiches Rechteck machen und das auf unendlich viele Arten. Sie haben nämlich unendlich viele Divisoren, da es unendlich viele Zahlen gibt.

Aus jedem Rechteck kann man aber nur ein flächengleiches Quadrat erstellen, weil es nur eine Quadratwurzel zu Länge mal Breite gibt.

In der Konstruktion geht dieses Quadrat aber den Umweg über ein rechtwinkliges Dreieck woraus sich die Abschnitte q und p ergeben sowie die Höhe des Dreiecks. Und diese Grössen sind besonders interessant.

Dazu ein JavaScript, das alle notwendigen Grössen berechnet...

typundzahl.de

Neues aus dem Leben der Zeiger

Denkt man an Zeiger, dann denkt man an die Adressen der Zeichen. Und dazu an die ASCII Tabelle, deren Inhalt wohl die wenigsten auswendig gelernt haben...

Doch auch Funktionen in der Klasse haben ihre Adressen. So ist der this pointer kein Verweis auf ein Zeichen - auch wenn diese verarbeitet werden - sondern auf die Funktion in der Klasse.

Dazu in typundzahl.de ein Link, der auschliesslich Zeiger behandelt in C++ und Pascal...

typundzahl.de

Der this pointer in Java

In Java kann man schön deutlich machen, was der this pointer eigentlich ist:  er ist auch nichts weiter als ein Zeiger, ein Verweis auf eine Variable oder eine Methode.

Diese Zeiger nehmen keine Werte auf; sie verweisen lediglich auf Variablen oder Funktionen. Vielleicht so etwas wie ein Lesezeichen, das zwar  auf die Seite verweist, deren Inhalt aber nicht abbildet.

Dazu ein Quellcode in Java mit besagtem this pointer im Kontext der Vererbung. Und hier spielt die Adresse der Variablen - anders als in C++ - keine Rolle mehr.

typundzahl.de

Suchen und Ersetzen

Jedes Textverarbeitungsprogramm kann Zeichen und Passagen suchen und mit anderen Zeichen oder Passagen ersetzen. Doch diese müssen vorhanden sein und genau darum geht es innerhalb der for Schleife.

Somit spielt es eine grosse Rolle, ob der boolsche Datentyp npos gegeben ist oder nicht. Jedenfalls heisst er in C++ so.

Aber auch sonst sind noch einige Kriterien zu beachten. Zwei etwas üppigere Quellcodes in C++ sollen aufspüren, was drin ist...

typundzahl.de

Auf die Summe kommt es an

Stellen Sie sich vor, Sie haben ein rechtwinkliges Dreieck mit den Winkelgrössen 30°, 60° und natürlich 90°. Dann ist das gleichseitige Dreieck nicht mehr weit. Genauer gesagt die Erweiterung des ersten Teildreiecks und so ergibt sich 60°, 60° und 60° quasi per Spiegelung.

Soweit die Theorie. In der Praxis und somit im Skript reicht immer eine Angabe; entweder die Seitenlänge a oder die Fläche A des Dreiecks. Daraus entsteht die Höhe, die häufig von Interresse ist und die jeweils andere Angabe.

In JavaScript habe ich hier allerdings auf den select verzichtet und dafür zwei eigenständige Funktionen geschrieben, die das Skript beweglich machen...

 

 

typundzahl.de

Eine vertikale Linie

Warum eine vertikale Linie keine Funktion sein kann; eine horizontale Linie aber schon...

Die Division aller Funktionen folgt dem Muster y / x und nicht umgekehrt! Bei einer vertikalen Linie wird aus x dann 0, weil zwei gleiche Werte voneinander abgezogen werden. Demnach wäre der Divisor 0 und durch 0 kann man nicht dividieren.

Es gibt aber noch einen übergeordneten Grund, der mit dem Verhältnis km / h zu tun hat...

typundzahl.de

Algorithmen und Zeiger

Ein ziemlich wuchtiger und mystischer Begriff ist der Algorithmus. Er umschreibt - dem Ursprung nach - nichts anderes als einen Vorgang nach einem bestimmten Schema. Somit wäre jedes Kochrezept ein Algorithmus... ? Jedenfalls macht das Arbeiten mit Algorithmen nichts schwieriger, sondern eher einfacher, da es sich um vorgestanzte Methoden handelt.

Zwar beginnt auf typundzahl.de das Thema der Algorithmen mit Containern, aber vielleicht klicken Sie doch noch einmal auf den Link Zeiger, worin der Algorithmus auch seine Anwendung findet. Im letzten Quellcode aus C++ wird er gebraucht, um eine oft geforderte Aufgabe zu tun...

typundzahl.de

Maximaler Wert

Maximaler und minimaler Wert sind uns allen geläufig; solange die Menge überschaubar ist. Hat man allerdings viele, sehr viele Werte, bietet es sich schon an, ein Programm zu schreiben.

Nicht so ganz geläufig sind die negativen Zahlen, deren Reihenfolge ja umgekehrt ist und vergleicht man negative mit positiven Zahlen, kann man schon mal durcheinander geraten.

Hierzu ein Quellcode in C++ mit konstantem Array und ein JavaScript mit Variablen...

typundzahl.de

Oberflächen

Entwicklungsumgebungen werden mit IDE abgekürzt - Integrated Development Environment - und sind in aller Regel recht mächtig. Das hat gute Gründe, denn diese stellen viele Möglichkeiten zur Verfügung.

Man darf aber nicht der irrigen Meinung sein, alles wäre reines Drag and Drop. Routinen müssen immer noch manuell getippt werden und so ist eine hübsche Oberfläche nichts wert, wenn die Funktionen nicht ausgeführt werden. Es dauert immer ein Weilchen, bis man sich in der IDE auskennt.

Hier bietet es sich wieder an, das Layout eines Programms zunächst als Konsole zu schreiben also ohne Oberfläche.

Relativ übersichtlich und bescheiden im Speicherbedarf ist die IDE Lazarus auf Delphi basierend.

Wenn Sie eine Konsole schreiben möchten, beachten Sie in Lazarus bitte Folgendes:

Datei >> Neu >> Einfaches Programm

Lazarus behandelt Ihre Konsole zwar wie ein Projekt, legt aber schön ordentlich in den Projektordner noch eine EXE, die sich separat öffnen lässt.

typundzahl.de

Array belegen

Ein Array hat seinen Index. Dieser beginnt in C++, Java und JavaScript immer bei 0 und in Pascal sowie Delphi bei 1

Sobald Sie einen Text schreiben, wird dieser Index der Reihe nach belegt. Dabei hat jedes Zeichen seine Adresse. Viel wichtiger sind hierbei aber die Variablen und ihre Parameter. Ferner wirft das Skript ein grelles Licht auf die for Schleife und deren Umgang mit der Zählvariablen.

typundzahl.de

Gut getaktet

Man sollte auch beim Sport immer im Takt bleiben! Dieses eindrucksvolle Video des Ruderclubs Baden demonstriert die Summierung möglichst gleicher Brüche zum Ganzen. Es spielt natürlich keine Rolle, ob das Ganze ein Kreis ist, wie bei der Uhr oder eine Linie, wie auf der Regatta. Was den Takt betrifft, sind gleiche Brüche aber nicht immer gewollt. Die Musik lebt vom Wechsel der Takte.

typundzahl.de

Array belegen und abzählen

Vielleicht kennen Sie den [ Parameter ] einer Variablen, der in Zählvorgängen sehr wichtig ist. Häufig werden die Parameter mit Konstanten belegt. Wir möchten den Parameter - also die Anzahl der Elemente des Arrays - gerne per Variable bestimmen. Und das in Java.

Ausserdem interessiert uns in einem Array, das aus Zahlen besteht, natürlich - Sie ahnen es - die Summe. Hierzu der erste Quellcode eines neuen Kapitels im JavaDome, worin es ausschliesslich um Zählvorgänge und iterative Routinen geht. Diese verrichten in fast allen Programmen grundlegende Aufgaben.

Während erstes Progrämmchen die Numerierung des Arrays addiert, wird es im zweiten Quellcode etwas praktikabler. Hier können Sie die Anzahl der Zahlen und die Zahlen selber frei belegen. Viel Spaß damit!

typundzahl.de

Alles was zählt

Der Mensch zählt! Er zählt gerne und das seit Urzeiten. Damals vor allem um Gefahr, Stärke oder den Speiseplan einschätzen zu können. Doch auch heute zählen wir viel häufiger als man denkt. Die Geschwindigkeiten des Strassenverkehrs überschlagen wir blitzschnell intuitiv. Gar nicht zu reden von Geld oder Zeit! Und was hat man sich als Kind gefreut, schon bis 100 zählen zu können. Das quantitative Denken ist also Orientierung.

Freilich ist die Mathematik auch Zählarbeit, doch dabei bleibt es nicht: man setzt in Proportion und vergleicht diese Verhältnisse. Dazu bedarf es nicht immer der Zahlen. So bedient man sich der Buchstaben, um Verhältnisse zu vergleichen, deren Zahlen noch nicht bekannt sind; das sind die bekannten Variablen.

In der Informatik wird auch permanent gezählt. Ob es der Anwender nun weiss oder nicht, denn auch hier geht es um den Vergleich der Mengen, um Zulässigkeiten und Einstufungen. Ein zu langer Text, ein Klick ausserhalb des Buttons hat numerischen Hintergrund.

Auf typundzahl.de dazu viele Links in verschiedenen thematischen Zusammenhängen...

typundzahl.de

Java maximal

Belegen Sie ein Array mittels Scanner mit Ihren Zahlen. Nun soll das Maximum gefunden werden also der grösste Wert. Für Math.max ( ) muss man extra eine Language importieren und kommt dann doch nicht weit! Schon wieder muss gezählt werden und das gleich zweimal.

Dann arbeitet die Methode allerdings umso zuverlässiger, was die Wichtigkeit der Zählroutinen wieder unterstreicht. Dazu ein Quellcode in Java und den gibt's natürlich im JavaDome...

typundzahl.de

Mit Weitsicht

Wie weit man sehen kann, hängt neben dem Sehvermögen auch von den Witterungsverhältnissen ab. Klar! Aber auch die Erdkrümmung ist ein Faktor, den man gedanklich gerne mal in weite Ferne schiebt.

Viele Objektive der Kameras sind auch nicht mehr so objektiv und suggerieren eine zu starke Erdkrümmung, was man auch Froschaugeneffekt nennt.

Tatsächlich ist die Erdrümmung weder im Nirgendwo, noch in nächster Nähe und sie beeinträchtigt tatsächlich die Sichtweite des Betrachters. Je höher allerdings ein Objekt - ein Turm etwa - ist, umso länger kann man ihn aus der Ferne sehen.

Dazu ein kleines JavaScript, der zwei Pythagoräer verarbeitet. Quasi pro Betrachter ein Pythagoras...

typundzahl.de

Amors Pfeile

Hintergründiges und Verborgenes liegt Amor sehr. Ähnlich ist es mit dem Arrow, der gleichsam hinter dem Pointer liegt und Attribute eines Objekts abfragt. Also, den Beispielen entsprechend, die Länge eines Objekts oder die Minutenangabe des Objekts Zeit ganz allgemein. Man kann sagen, dem abstrakten Objekt Zeit sind Hintergrundinformationen wie Tage, Stunden, etc. hinterlegt.

Die Schreibweise -> macht zwar noch kein Lambda, ist aber schon ein Vorläufer dessen, was viele in Java zu schätzen wissen.

Dennoch hier erst einmal die Grundlagen in C++ und dazu drei Quellcodes mit wunderschöner Graphik...

typundzahl.de

Kosmetik bei Potenzen

Man hat sich schon sehr daran gewöhnt, die Exponenten der Potenzen in hochgestellter Manier zu schreiben. Schreibweisen wie 2^3 irritieren immer wieder. Leider bräuchte es in HTML die Erweiterung MathML, um Formeln und Ähnliches schreiben zu können. Diese Sprache wird aber nicht von jedem Browser unterstützt. Nur Opera stellt MathML korrekt dar.

In CSS reicht aber - zumindest für Potenzen - einen kleinen Kniff anzuwenden und die Potenzen werden so dargestellt, wie wir es lieben. Und das als Variable! Also ein kleines Skript dessen Quellcode Sie über den Browser darstellen können.

typundzahl.de

Leere Eingabefelder

Eingaben, die gemacht werden müssen sollen auch moniert werden, wenn sie fehlen. In aller Regel weiss man recht gut, wo etwas im Falle falscher oder unvollständiger Ergebnisse nachgetragen werden muss; doch manche Eingaben sind nun mal besonders wichtig.

Und einige Eingaben kommen ohne ergänzende Angaben auch nicht aus. Dazu ein Progrämmchen in JavaScript, das leere Eingabefelder nicht lange auf sich sitzen lässt...

typundzahl.de

Stoppuhr per Funktion

Eine Stoppuhr zählt neben Sekunden auch Zehntel-, Hundertstel- oder Millisekunden. Per Intervall selten ein Problem. Die Uhr erstmalig zum Laufen zu bringen ist mit globalen Variablen und mit Funktionen verbunden, die sich selber und aus sich heraus aufrufen können: genauer die hinterlegte Zeitfunktion.

Dazu ein JavaScript, das jederzeit anzuhalten ist und auf  Kommando weiterläuft. Eben eine Stoppuhr, die allerdings mit dem delay nur indirekt zu tun hat...

typundzahl.de

Zeiten nehmen

Eine Stoppuhr ist schön und gut. Aber als Trainer will man auch die Zeiten der Sportler nehmen können. Dazu belegen wir ein Array mit den Zwischenzeiten der Athleten quasi als Notiz des Wetttkampfes.

Ebenso wichtig ist aber auch das Löschen des Arrays und das passiert durch Initialisierung. Diese Initialisierung muss sehr gründlich sein bzw. alle Variablen samt Parameter auf 0 setzen. Auch hierzu ist eine eigene Funktion nötig.

Das Skript der Stoppuhr wurde also um eine entscheidende Funktion erweitert. Diese soll dafür sorgen, daß keine alten Belegungen des Arrays übernommen werden.

 

typundzahl.de

Bedingte Vererbung

Mittels Vererbung lassen sich aus der Superklasse viele Subklassen mit oder ohne unterschiedlichen Methoden ableiten.

Dabei hat man sehr viele Freiheiten; das geht sogar soweit, daß deklarierte Variablen in der Superklasse später in der Subklasse gar nicht mehr auftauchen. Dennoch wird eine Subklasse erzeugt.

Oder genau das Gegenteil: einmal deklarierte Variablen können beliebig kombiniert werden, so dass in der Superklasse nur der rudimentäre Kern definiert wurde.

Zu diesem Thema  Quellcodes in C++ im stufenweisen Aufbau...

typundzahl.de

switch und case oder if und else

Mit dem case können Sie viel mehr Einzelfälle belegen als mit if und else. Die Betonung liegt aber auf Einzelfall, das heisst Wertebereiche erfasst der case nur mit Müh und Not.

Daher einfach beide Bedingungen kombinieren und es entsteht ein Dreamteam. Was der eine nicht kann, erledigt der andere.

Besonders einfach ist die Schreibweise in Delphi. Das sonst so unkomplizierte C++ ist hier ein wenig spröder.

Probieren Sie einfach beides: es empfiehlt sich sowieso, den Entwurf eines Programms zunächst als Konsole zu schreiben!

typundzahl.de

Mathematik & Informatik

Quellcodes, Graphiken und Skripte zum jeweiligen Thema aus Mathematik und Informatik. Gründlich und umfangreich.

Bestehendes wird erweitert und optimiert, daher sind Abweichungen möglich, sollten aber nicht grundlegend sein.

Quellcodes aus C++, Java, Delphi, Pascal zu den wirklich wichtigen Methoden und Arbeitsweisen der Informatik.

typundzahl.de

JavaDome

Im JavaDome finden Sie auschliesslich Quellcodes mit verringerter Erklärung. Dabei bin ich davon ausgegangen, daß der Anwender oder die Anwenderin bereits einige Erfahrung mit den maschinennahen Sprachen hat.

Falls nicht, kann man das jederzeit in typundzahl.de nachholen. Besonders empfehlenswert ist natürlich C++ wegen der gemeinsamen Entwicklungsgeschichte und der sprachlichen Ähnlichkeit.

Hier finden sich auch einige Quellcodes aus JavaScript samt Oberfläche in HTML und CSS. Diese können Sie komplett ohne weitere Eingriffe in den Texteditor kopieren, als datei.html abspeichern und im Browser öffnen.

Beachten Sie auch die Hinweise zur Benennung der Datei und die Systemvorraussetzungen von NetBeans.

Und hier geht`s zum Dome...

typundzahl.de

Instruktion zu Lazarus

Konsolen sind ganz besonders gut geeignet, den funktionalen Kern eines Programms zu verdeutlichen. Der Ruf nach Programmen mit Oberflächen wird aber bald laut.

Lazarus bietet sich hier an. Übersichtlich gestaltet, unkompliziert in der Handhabung  und bescheiden im Speicherbedarf. Manueller Programmierarbeit in den Teilen der Prozeduren wird man aber nicht entbunden.

Zunächst eine kleine - aber ausbaufähige - Instruktion zu Lazarus, worin die wichtigsten Schritte enthalten sind, um ein Programm samt Oberfläche zu erzeugen, sofern Sie den Implementierungsteil vorliegen haben.