software:diy:pascal:pascalk
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| software:diy:pascal:pascalk [27/01/2006 21:01] – überarbeitet mischroeder | software:diy:pascal:pascalk [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 398: | Zeile 398: | ||
| Falls jemand also anfangen will zu programmieren : Es gibt viele gute Bücher, um den Einstieg selber zu finden und ein Turbo PASCAL 6.0 kann ich schon auf CD gebrannt in jeder Computerabteilung der Kaufhäuser für nicht mal 40,-DM bekommen. | Falls jemand also anfangen will zu programmieren : Es gibt viele gute Bücher, um den Einstieg selber zu finden und ein Turbo PASCAL 6.0 kann ich schon auf CD gebrannt in jeder Computerabteilung der Kaufhäuser für nicht mal 40,-DM bekommen. | ||
| + | Programmierkurs für PASCAL 4 | ||
| + | |||
| + | ====== Teil 4 ====== | ||
| + | |||
| + | ==== Die Grafikprogrammierung ==== | ||
| + | |||
| + | So ... Freunde. Wir haben es nun fast geschafft, die Grundlagen der Pascalprogrammierung auf dem Portfolio zusammenzutragen. Ein Bereich fehlt aber noch. Etwas, daß eigentlich immer dazugehört und was für die meisten Leute das absolut Höchste ist. | ||
| + | |||
| + | Es geht um die Grafikprogrammierung. Ich muß zugeben, daß es mir lieber gewesen wäre, wenn ich mir dieses Thema hätte sparen können. Ich bin zwar auch fasziniert von den Möglichkeiten, | ||
| + | |||
| + | Es gibt zwei mittelgroße Probleme, die uns erst einmal beschäftigen müssen. Ziel eines jeden Kurses war es bisher, am Ende eine Art Prototyp zu haben, auf dem man dann seine eigenen Programme aufbauen kann. Meistens waren das Pascal-Units, | ||
| + | |||
| + | Leider haben wir aber noch ein viel größeres Problem. Grafikprogrammierung ist grundsätzlich immer eine zeitkritische Angelegenheit. Zwar sind für die meisten Funktionen, wie das Setzen eines Pixels auf dem Bildschirm, keine großen Programmierkünste erforderlich. Wenn Sie aber einen Kreis zeichnen wollen, müssen Sie schon Berechnungen anstellen, an welchen Koordinaten auf dem Bildschirm die Pixel gesetzt werden sollen. Hier liegt nun das große Problem, was auf einem 4,5MHz getakteten Portfolio noch viel schwerer ins Gewicht fällt als auf anderen Systemen. Der Kleine ist nun mal nicht der schnellste Rechner unter der Sonne. Wenn ich nun noch eine Hochsprache wie Pascal verwende, die mit der Anzahl der Befehle, die für eine Funktion ausgeführt werden müssen, sehr hoch ist, bin ich in Bezug auf die Grafik schon auf der Verliererseite. Die einzige Möglichkeit, | ||
| + | |||
| + | Damit wird klar, daß die Grafikunit, die zu diesem Teil des Kurses gehört, größten Teils in Maschinensprache verfaßt ist. Maschinensprache ist aber ja eigentlich nicht unser Thema. Deshalb wird es die meisten von euch nicht interessieren, | ||
| + | |||
| + | Ich persönlich bin auch kein großer Assembler Programmierer, | ||
| + | |||
| + | Folgende Befehle sind in der Unit implementiert : | ||
| + | ^ ^ ^ | ||
| + | | Arc | Bar | | ||
| + | | Bar3D | Box | | ||
| + | | Circle | ClearDevice | | ||
| + | | CloseGraph | DrawPoly | | ||
| + | | Ellipse | FillEllipse | | ||
| + | | FillPoly | FloodFill | | ||
| + | | GetColor | GetPixel | | ||
| + | | InitGraph | Line | | ||
| + | | LineRel | LineTo | | ||
| + | | MoveRel | MoveTo | | ||
| + | | OutTextXY | PieSlice | | ||
| + | | PutPixwl | | ||
| + | | Sector | ||
| + | | SetFillStyle | SetTextStyle | | ||
| + | | TextPixel | | | ||
| + | |||
| + | Welche Parameter diese Routinen benötigen, und wie ich sie verwende, kann ich aufgrund der Kompatibilität in der Pascal Hilfe nachlesen. Bei den zwei folgenden Befehlen sind jedoch Abweichungen zu denen der Original Unit notwendig geworden : | ||
| + | |||
| + | Bei OutTextXY können nur ASCII-Codes bis einschließlich 127 ausgegeben werden. | ||
| + | |||
| + | Und der Befehl SetTextStyle besitzt eine etwas andere Aufrufsyntax: | ||
| + | |||
| + | |||
| + | ^ Nummer ^ Erklärung ^ | ||
| + | | 1 | Zeichen nicht gekippt, keine Kursivschrift | | ||
| + | | 2 | Zeichen nicht gekippt, Kursivschrift nach links | | ||
| + | | 3 | Zeichen nicht gekippt, Kursivschrift nach rechts | | ||
| + | | 4 | Zeichen um 180° gekippt, keine Kursivschrift | | ||
| + | | 5 | Zeichen um 180° gekippt, Kursivschrift nach links | | ||
| + | | 6 | Zeichen um 180° gekippt, Kursivschrift nach rechts | | ||
| + | | 7 | Zeichen um 90° gekippt, keine Kursivschrift | | ||
| + | | 8 | Zeichen um 90° gekippt, Kursivschrift nach links | | ||
| + | | 9 | Zeichen um 90° gekippt, Kursivschrift nach rechts | | ||
| + | | 10 | Zeichen um 270° gekippt, keine Kursivschrift | | ||
| + | | 11 | Zeichen um 270° gekippt, Kursivschrift nach links | | ||
| + | | 12 | Zeichen um 270° gekippt, Kursivschrift nach rechts | | ||
| + | Statt eines weiteren Parameters bei der Original-Unit, | ||
| + | |||
| + | Aus Kompatibilitätsgründen wurde die Routine InitGraph original übernommen. Das bedeutet, daß ein Pfadname für einen Grafiktreiber angegeben werden muß. Da die Portfolio-Unit aber gar keinen Treiber benötigt, können Sie eingeben, was Sie wollen. | ||
| + | |||
| + | Mit den oben genannten Grafikbefehlen sollten die meisten Leute schon etwas anfangen können. Einige Befehle, um zum Beispiel Grafiken im PGC Format einzulesen oder abzuspeichern, | ||
| + | |||
| + | Mit dieser Unit haben wir nun Grundlagen für die Grafikprogrammierung auf dem Portfolio geschaffen, die für jemanden ausreichen sollten, der keine Lust und Zeit hat, sich mit der langwierigen Assembler-Umsetzung auseinanderzusetzen. Den Quelltext der Unit abzudrucken ist leider nicht möglich, da ihr Umfang so groß ist, daß es den Rahmen der PofoInfo bei weitem sprengen würde. Das bedeutet nicht, daß man die Unit nicht bekommen kann. Denn der Pascal Kurs ist zusammen mit den Units, die in diesem Rahmen entstanden sind, beim PCD erhältlich. | ||
| + | |||
| + | Auch wenn dieser Teil des Kurses qualitativ und quantitativ nicht mit den vorherigen Teilen mithalten kann, soll er doch den Abschluß des Kurses bilden. Abschluß des Kurses bedeutet, daß mit diesem vierten Teil sämtliche Grundlagen besprochen sein sollten. Das heißt natürlich nicht, daß dies das Ende von Artikeln zum Thema Pascal Progammierung auf dem Portfolio ist, jedoch sollte nun jeder in der Lage sein, diese Grundkenntnisse in eigene Programme umzusetzen. Spezielle Probleme und Sonderfunktionen könnten Inhalt weiterer Artikel sein. | ||
| + | An dieser Stelle deshalb noch einmal ein letzter Aufruf an alle, die glauben ,daß wichtige Bereiche nicht besprochen wurden. Eine Email genügt und ich werde mich mit der gewünschten Thematik auseinandersetzen (es sei denn, es betrifft den Bereich Grafik...: | ||
| + | |||
software/diy/pascal/pascalk.1138392359.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
