Letzte Änderungen:
23.01.2011 Mitfahrgelegenheit


Biete Mitfahrgelegenheit!

23.01.2011: Ich fahre in nächster Zeit regelmäßig sonntags am Abend oder montags sehr früh von Soltau nach Erlangen beziehungsweise Nürnberg, und normalerweise freitags wieder zurück.

Dabei kann ich bis zu zwei Leute mitnehmen und reichlich Gepäck (Mercedes Sprinter).

Bei der Route bin ich etwas flexibel, als entweder Soltau - Hannover - Göttingen - Kassel - Fulda - Würzburg - Erlangen/Nürnberg/Fürth, oder (lieber) Soltau - Hannover - Göttingen - Kassel - Fulda - Schweinfurt - Bamberg - Erlangen/Nürnberg/Fürth.

Auch machbar wäre Soltau - Hannover - Braunschweig - Magdeburg - Halle/Saale - Leipzig - Erlangen/Nürnberg/Fürth.

Bei Bedarf: Telefon siehe ganz unten.


Wie kann man seine Hausaufgaben lösen?

Eine Möglichkeit ist hier vorgeführt: Problem mit Operationsverstärker LM324.

Falsch ist es ja nicht...

...aber auch nicht ganz die gewünschte Antwort.

Bilder Abi-Feier 31. Mai 2008

Freie Software

Hier finden sich ein paar Softwareschnipsel von mir, von denen ich vermute, daß auch andere Leute sie nutzen können.

Wirklich dynamische Felder mit vararr.h

Normale Felder in C und C++ sind manchmal etwas starr, weil man einerseits die Länge nicht mehr ändern kann, und die untere Grenze immer bei 0 liegt. Frei allokierter Speicher mit realloc() ist auch nicht immer sehr komfortabel und geschickt (insbesondere wenn Objekte im Feld liegen), und std::vector in C++ kann viel, aber verlängert sich auch nicht bei Bedarf automatisch.

Das nervt manchmal. In vielen Fällen ist VarArr die Lösung.

Damit können Felder fast beliebigen Typs deklariert werden, deren obere und untere Grenzen je nach Verwendung automatisch erweitert werden.

Das ist in der Regel sehr laufzeiteffizient, einfach zu benutzen und leicht lesbar.

Beispiel:

  // Feld vereinbaren:
  VarArr < int >     feld;

  // Beliebige Elemente initialisieren und verwenden:
  feld[1] = 11;
  feld[0] = 10;
  feld[-5] = 15;

  std::cout << "feld[-5] = " << feld[-5] <

Festkommazahlen mit fixpoint.h

Auf vielen Rechnern ist die Rechnung mit Gleitkommazahlen inzwischen hinreichend schnell (ab PC aufwärts).

Insbesondere im Controllerbereich hat man aber keine Unterstützung durch Gleitkommahardware. Eine Verwendung von Gleitkommazahlen ist dadurch sehr rechenintensiv.

Deshalb wird dann gerne auf Festkommaarithmetik ausgewichen (siehe auch Wikipedia - Festkommazahl), falls man weiß, in welchem Wertebereich man sich bewegt.

Das ist allerdings etwas fehleranfällig und führt zu schlecht lesbarem Code.

Eine Alternative ist fixpoint.h. Damit kann man Festkommazahlen fast wie int oder float verwenden und erhält schön lesbaren Quelltext mit effizienter Festkommarechnung unter der Haube.

(Um fixpoint.h zu verwenden, muß man seinem Controller C++ zumuten. Das ist aber erfahrungsgemäß kein Nachteil, solange man sich (wie in fixpoint.h) auf Techniken beschränkt, die keine Resourcenfresser sind. Nicht alles in C++ ist kritisch für Controller...)

Diskussion zu fixpoint.h bei Bedarf bitte auf Mikrocontroller.net.

Binärdateien nach C konvertieren

Ich brauche gelegentlich in C/C++ ein char-Feld, das Byte für Byte mit dem Inhalt einer Binärdatei initialisiert wird.

Dazu nehme ich ein schnell gestricktes Programm bin2c.cpp.


Vorlesungen, Skripte etc.

Im Rahmen von Vorlesungen (vorwiegend an der Fachhochschule Hannover, FB Informatik) und Kursen entstanden einige Skripte, die allerdings teilweise unvollständig sind (bei einem ersten Lehrauftrag zu einem Thema reicht die Zeit meist nicht, so daß ein Skript frühestens beim zweiten Halten derselben Vorlesung komplett wird).

ANSI-C

Für verschiedene Kurse und Vorlesungen entstand im Lauf der Jahre ein komplettes Buch 0 ist false, alles andere true über ANSI-C. Das Buch ist inzwischen leicht veraltet, und wird nicht mehr nennenswert gepflegt. Bei Bedarf wird es (mit aktualisiertem Inhalt) in einem Skript über C und C++ aufgehen, ein Zeitplan dafür existiert aktuell nicht.

C++

Die sinngemäße Fortsetzung des Buchs über ANSI-C ist das passende Machwerk über C++, das zu einer Vorlesung im Wintersemester 2001/2002 an der Fachhochschule Hannover sowie für kommerzielle Seminare entstand. Der eigentliche Sprachteil ist fertig; allerdings fehlt die Beschreibung der Bibliothek noch. Es wird irgendwann hoffentlich fertiggestellt (und um den C-Teil ergänzt), und existiert in einer Postscript- und einer HTML-Version mit dem selben Inhalt.

Systemprogrammierung

In der Vorlesung Systemprogrammierung (WPV FH Hannover im Sommersemester 2001) geht es hauptsächlich um die verschiedenen Möglichkeiten, zwischen Prozessen Informationen auszutauschen (IPC = interprocess communication), sowie um kleinere Randgebiete, die etwas systemnäher sind als der Stoff der meisten Vorlesungen. Hauptsächlich wird dies anhand von Unix und Linux behandelt; allerdings sind Abstecher zu Windows eingebaut, soweit eine Analogie besteht.

Ein komplettes Skript der gesamten Vorlesung existiert nicht; allerdings zu einem Teilgebiet, nämlich Dynamische Bibliotheken (Postscript und HTML).

Shellprogrammierung

Dieses Skript gibt es nicht mehr eigenständig, sein Inhalt ging in die Programmiertools über.

Programmiertools

In diesem Skript werden nach und nach (je nach Bedarf) einige Tools vorgestellt, die man neben der eigentlichen Programmiersprache kennen sollte, um sinnvoll zu programmieren. Dabei geht es vorrangig um die Programmierung außerhalb von integrierten Entwicklungsumgebungen; einige Teile sind aber selbst dann sinnvoll zu verwenden, wenn man mit einer IDE arbeitet. Das Skript ist weitgehend auf Unix/Linux zugeschnitten, aber Teile davon sind auch unter Windows sinnvoll nutzbar, je nach den dort installierten Werkzeugen.

Informatik I

Die Vorlesung Informatik I (oder Einführung in die Informatik) bietet für die Erstsemester einen groben Überblick über einige wichtige Ideen und Konzepte der Informatik, sowie die wichtigsten Grundbegriffe. Das Skript hierzu ist ziemlich unvollständig und eher als Merkhilfe gedacht; ob und wann ich es fertigstellen werde, kann ich im Moment nicht abschätzen, weil ich keinen aktuellen Bedarf dafür habe.

Informatik II

Die Vorlesung zu Informatik II (Hauptthema: Algorithmen und Datenstrukturen) hatte ich bislang zweimal zu halten, werde aber wahrscheinlich kein komplettes Skript dazu produzieren. Ich halte mich weitgehend an die Vorlesung von Prof. Dr. Josef v. Helden aus dem Jahr 2000, und sammle in einem eigenen Skript hauptsächlich alles, was von seinem Skript abweicht. Nur beide Skripte zusammen geben die aktuelle Vorlesung wider. Das Skript von v. Helden ist für die Informatikstudenten der FH Hannover über den Skripteserver erhältlich.
Alle genannten Skripte im Überblick:
Thema:Status:vom:OnlineversionPostscript (gzip)HTML (zip)
ANSI-Cvollständig04.10.2002onlineck.ps.gzck_html.zip
C++Sprache ja, Bibl. nein01.04.2002onlinecpp.ps.gzcpp_html.zip
Dynamische Bibliothekenvollständig (Linux+Windows)05.10.2002onlinedynamischeBibliotheken.ps.gzdynamischeBibliotheken_html.zip
Programmiertoolsunvollständig10.06.2003onlineskript_tools.ps.gzskript_tools_html.zip
Informatik Iunvollständig01.04.2002onlineskript_einfinf.ps.gzskript_einfinf_html.zip
Informatik IIunvollständig30.03.2006onlineinformatik_2.ps.gzinformatik_2_html.zip


Wegbeschreibung

Eine Wegbeschreibung zu mir existiert auch.


No keyboard found ... press [F1] to continue

Schöne Fehlermeldungen und andere Absonderungen natürlicher Intelligenz...

Letzte Änderung: 20.05.2001

Bilder aus Buchstaben

Nette Bilder aus Buchstaben für emails etc. ...

Letzte Änderung: 27.06.2002

Bitte angemessen würdigen:

Für Schleif- und Polieranlagen, Handhabungstechnik und Roboter holt man sich bitteschon Rat bei Hirschler! Sitz in Speyer und Niederlassung in Steinhude.


Mein öffentlicher PGP/GnuPG-Schlüssel ist:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.4 (GNU/Linux)

mQGiBDh7UWcRBACeMVqqoKRlXO5SWH1MkpovZ4Yo3xoASYj73uEVUsdwPlck5kyO
L3adkWTLqvdVU6jNB62TmTRkKOF2DVhS8+Ro2h04l4qPisjniaTjQbFKmWl38OeC
NzISw4cekN9ydutYIYMQqJ10WakvSN3v1OIIsKKFil1VBKQfcksg2zq8MwCgyi88
smuNAouOzSyOZiRR8PDfq4sD/iKz2bvJsmcTauPKRJ3dZ1KSRE6CuvHlxXbHxW8I
CAfOS8MFF6piMBiaw1Y9szVpowYCiG2aUzfPeUQu1+Qvt88+w3zAKcqNFv6LUIEn
w4lf4tTpfep9GsJqpoQ1mkDjNjkqWoEurlZcZBR7G9pcJUkp8sllJ+oIrW7HTP5f
5kBTA/9QblEV8ZRLBTU+fKpVUHA+bvAnU8t/vxVIzOjEFbUFXtlMtA3gNj0efvrP
B5RhNUt7r9olPB5RNM6iMDCe1CFoJNXbhEuFP0zg0w5HvrjZpcjhpO5/XKBJkvDp
+jUITgECM7p8tadY9jzRVh5wopYTCAxn18XNSuPtlhN4UppmwLYAAAAsS2xhdXMg
V2FjaHRsZXIgKEFueVdhcmUpIDxrbGF1c0B3YWNodGxlci5kZT6IVgQTEQIAFgUC
OHtRZwQLCgQDAxUDAgMWAgECF4AACgkQGN9EiYXEN7Me2QCdFRA7HkeZBVSKEtzl
UnoMAIIfNzEAnjXqMVHMx2TuFaLA5e5vV5EmpJZJuQINBDh7UZQQCACvPOdVxRTE
S+R4ko56W/XDw7xEwmUFiynntPTJJ6SgfrQzXD5gPlLrwoIm6VBMLR4hOMBdquta
l7vFcwm3KPwGTWH06GhlXbQbI/dq6lbqDtgekULaT6hKnYXziwvvTh1lWft49Xky
8+vio2K23W8bFkUO6AzGK4XADeR3y+WBoKmZQ2NL/kP1Qq+ne2j5MFrpmZA+rF2i
2x/vfN7HgGsoMkujKZncGuvEkbnOp2nxSS5BLicKRlhgjHUpS54JXMo0L4vqZuC3
QK/K+E8IbwDoZ4uThStBlknBKw3iRGNG2P8unAtldIxH8LOhALuLUF6Da5k5dDgA
ms9rQv1o7KtPAAMFB/4ngcY7J4G8Bx5HXVoZYPd5wGubMJOJs+34sEiPpTKSxrQl
ODELpZjGCpU/wwvjHBgXj69KN73tA+m/6+fI+IltGviVO5aF+7pfgVK9OSoqoJ1p
QqqDS9x5EKmSKWlH7dIlRIKRWeXeKc+tZ5lmolZEJSqJ01g8FTShqQEZCPEr9Tx6
qAplfD3C6yryoqBpvv4d85BhA9vsd9o7Hjfd2r0zUp6KM8w+6feFLAifMs+DvBXJ
o+CrAuMW+7QXBXWjLoLOdEEtcJLU5UDsYpkamPn70TSCVpVMzEL0D4X3/cFewT9B
Nd9WiQdWeIVvQ2jMa9OXPqMUpgm8FYoGtoJMO0IHiEYEGBECAAYFAjh7UZQACgkQ
GN9EiYXEN7NsZwCfdAuY0n2wqcOl7RVfAf7RQII2qkEAoLpkhzkcTE5MDMmsVw81
aZ6xKrdV
=/yBC
-----END PGP PUBLIC KEY BLOCK-----



Zuletzt aktualisiert: 30.08.2011

© Klaus Wachtler
Breidingstr. 17
D-29614 Soltau
Tel. +49-5191/70 271, +49-171/45 53 039
USt.Identnummer DE115580022
email: Klaus@Wachtler.de

QR-Code Klaus Wachtler

AnyWare(tm)-Logo