Freebasic-Einsteigerhandbuch
Total Page:16
File Type:pdf, Size:1020Kb
FreeBASIC-Einsteigerhandbuch Grundlagen der Programmierung in FreeBASIC von S. Markthaler Stand: 11. Mai 2015 Einleitung 1. Über das Buch Dieses Buch ist für Programmieranfänger gedacht, die sich mit der Sprache FreeBASIC beschäftigen wollen. Es setzt keine Vorkenntnisse über die Computerprogrammierung voraus. Sie sollten jedoch wissen, wie man einen Computer bedient, Programme installiert und startet, Dateien speichert usw. Wenn Sie bereits mit Q(uick)BASIC gearbeitet haben, finden Sie in Kapitel 1.3 eine Zusammenstellung der Unterschiede zwischen beiden Sprachen. Sie erfahren dort auch, wie Sie Q(uick)BASIC-Programme für FreeBASIC lauffähig machen können. Wenn Sie noch über keine Programmiererfahrung verfügen, empfiehlt es sich, die Kapitel des Buches in der vorgegebenen Reihenfolge durchzuarbeiten. Wenn Ihnen einige Konzepte bereits bekannt sind, können Sie auch direkt zu den Kapiteln springen, die Sie interessieren. 2. In diesem Buch verwendete Konventionen In diesem Buch tauchen verschiedene Elemente wie Variablen, Schlüsselwörter und besondere Textabschnitte auf. Damit Sie sich beim Lesen schnell zurechtfinden, werden diese Elemente kurz vorgestellt. Befehle und Variablen, die im laufenden Text auftauchen, werden in nichtproportionaler Schrift dargestellt. Schlüsselwörter wie PRINT werden in Fettdruck geschrieben, während für andere Elemente wie variablenname die normale Schriftstärke eingesetzt wird. Quelltexte werden vollständig in nichtproportionaler Schrift gesetzt und mit einem Begrenzungsrahmen dargestellt. Auch hier werden Schlüsselwörter fett gedruckt. Der Dateiname des Programms wird oberhalb des Quelltextes angezeigt. Quelltext 1.1: Hallo Welt ’ Kommentar: Ein gewoehnliches Hallo-Welt-Programm CLS PRINT "Hallo FreeBASIC-Welt!" SLEEP 5 END ii Einleitung Es empfiehlt sich, die Programme abzutippen und zu testen. Die meisten Programme sind sehr kurz und können schnell abgetippt werden – auf der anderen Seite werden Sie Codebeispiele, die Sie selbst getippt haben, leichter behalten. Alle fünf Zeilen wird die aktuelle Zeilennummer angezeigt; diese ist selbst nicht Bestandteils des Programms und soll dementsprechend auch nicht mit abgetippt werden. Die Ausgabe des Programms wird ebenfalls in nichtproportionaler Schrift aufgelistet und, wie unten angezeigt, durch eine graue Box umschlossen. Diese Ausgabe kann mit der eigenen verglichen werden, um zu überprüfen, ob das Programm korrekt eingegeben wurde. Ausgabe Hallo FreeBasic-Welt! Zusätzliche Informationen zum aktuellen Thema werden in Hinweisboxen dargestellt. Hinweis: Diese Boxen enthalten ergänzende Informationen, die mit dem aktuell behan- delten Thema zusammenhängen. Informationen, die speziell für Umsteiger von QuickBASIC oder für fortgeschrittenere Programmierer gedacht sind, werden durch ein Werkzeug-Bild gekennzeichnet. Hinweis: Hier können z. B. Unterschiede zu QuickBASIC oder zu früheren FreeBASIC- Versionen aufgeführt werden. Für die Box wird dann auch die Überschrift entsprechend angepasst. Ein mögliches Problem wird in einer Warnung angezeigt. Diese wird ähnlich dargestellt wie die Hinweisbox, jedoch mit einem Warnsymbol. Achtung: Warnungen sollten auf jeden Fall beachtet werden, da es sonst im Programm zu Problemen kommen kann! iii Einleitung 3. Rechtliches Das Dokument unterliegt der Lizenz Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Deutschland. Sie sind berechtigt, das Werk zu vervielfältigen, verbreiten und öffentlich zugänglich machen sowie Abwandlungen und Bearbeitungen des Werkes anfertigen, sofern dabei • der Name des Autors genannt wird • das Werk nicht für kommerziellen Nutzung verwendet wird und • eine Bearbeitung des Werkes unter Verwendung von Lizenzbedingungen weitergeben wird, die mit denen dieses Lizenzvertrages identisch oder vergleichbar sind. Einen vollständigen Lizenztext erhalten Sie unter http://creativecommons.org/licenses/by-nc-sa/3.0/de/legalcode Unabhängig von oben genannten Linzenzbedingungen gestattet der Autor eine kommer- zielle Nutzung der Print-Version dieses Dokuments im Rahmen des FreeBASIC-Portals Deutschland ( http://freebasic-portal.de ), sofern die erzielten Einnahmen der FreeBASIC-Community zugute kommen. Die im Buch enthaltenen Quelltexte dürfen, auch zu kommerziellen Zweck, frei verwen- det werden. Bei aufwendigeren Quelltexten freut sich der Autor über eine namentliche Nennung. Quelltexte, die von anderen Autoren für das Buch zur Verfügung gestellt wurden, sind entsprechend gekennzeichnet. Die Urheberrechte liegen beim jeweiligen Autor. 4. Weitere Informationen Sämtliche längeren Quelltexte stehen auf der Projektseite http://freebasic-portal.de/projekte/99 zum Download zur Verfügung. Dort erhalten Sie auch weitere Informationen. 5. Danksagung Mein Dank gilt allen FreeBASICern, die direkt oder indirekt an der Entstehung des Buches mitgewirkt haben. Besonders erwähnen möchte ich (TODO: Helfer suchen :D) iv Inhaltsverzeichnis Einleitung ii 1. Über das Buch................................. ii 2. In diesem Buch verwendete Konventionen.................. ii 3. Rechtliches................................... iv 4. Weitere Informationen............................. iv 5. Danksagung................................... iv I. Einführung1 1. Eine kurze Einführung in FreeBASIC2 1.1. Was ist eine Programmiersprache?......................2 1.2. Was ist FreeBASIC?..............................3 1.3. Unterschiede zu QuickBASIC.........................3 1.4. Vor- und Nachteile von FreeBASIC......................5 2. Installation und Inbetriebnahme8 2.1. Installation...................................8 2.1.1. Installation unter Windows......................8 2.1.2. Installation unter Linux........................ 10 2.2. Erstes Programm................................ 11 2.3. Problembehebung................................ 12 2.3.1. Probleme beim Start.......................... 12 2.3.2. Probleme beim Compilieren...................... 12 2.4. Wie wird aus meinem Quelltext ein Programm?............... 13 II. Grundkonzepte 15 3. Aufbau eines FreeBASIC-Programms 16 3.1. Grundaufbau und Ablauf........................... 16 v Inhaltsverzeichnis 3.2. Kommentare.................................. 17 3.3. Zeilenfortsetzungszeichen........................... 18 3.4. Trennung von Befehlen mit Doppelpunkt.................. 18 4. Bildschirmausgabe 20 4.1. Der PRINT-Befehl............................... 20 4.2. Ausgabe von Variablen............................. 22 4.3. Formatierung der Ausgabe........................... 24 4.3.1. Direkte Positionierung mit LOCATE ................. 24 4.3.2. Positionierung mit TAB und SPC ................... 25 4.3.3. Farbige Ausgabe............................ 26 4.3.4. Bildschirm löschen mit CLS ...................... 27 4.4. Fragen zum Kapitel.............................. 28 5. Tastatureingabe 30 5.1. Der INPUT-Befehl............................... 30 5.2. Eingabe einzelner Zeichen........................... 32 5.2.1. INPUT() als Funktion......................... 32 5.2.2. INKEY() ................................ 34 5.3. Fragen zum Kapitel.............................. 34 6. Variablen und Konstanten 35 6.1. Ganzzahlen................................... 35 6.1.1. Verfügbare Ganzzahl-Datentypen................... 35 6.1.2. Rechnen mit Ganzzahlen....................... 37 6.2. Gleitkommazahlen............................... 39 6.2.1. Darstellungsbereich von Gleitkommazahlen............. 39 6.2.2. Rechengenauigkeit bei Gleitkommazahlen.............. 40 6.3. Zeichenketten.................................. 42 6.3.1. Arten von Zeichenketten........................ 42 6.3.2. Aneinanderhängen zweier Zeichenketten............... 44 6.4. Konstanten................................... 46 6.5. Weitere Speicherstrukturen.......................... 47 6.6. Fragen zum Kapitel.............................. 47 7. Datenfelder (Arrays) 48 7.1. Deklaration und Zugriff............................ 48 7.2. Mehrdimensionale Arrays........................... 49 vi Inhaltsverzeichnis 7.3. Dynamische Arrays............................... 50 7.3.1. Deklaration und Redimensionierung................. 51 7.3.2. Werte-Erhalt beim Redimensionieren................. 52 7.4. Weitere Befehle................................. 53 7.4.1. Grenzen ermitteln: LBOUND und UBOUND............ 53 7.4.2. Implizite Grenzen........................... 54 7.4.3. Löschen mit ERASE.......................... 55 7.5. Fragen zum Kapitel.............................. 56 8. Pointer (Zeiger) 58 8.1. Speicheradresse ermitteln........................... 58 8.2. Pointer deklarieren............................... 59 8.3. Speicherverwaltung bei Arrays........................ 60 9. Bedingungen 61 9.1. Einfache Auswahl: IF ... THEN ........................ 61 9.1.1. Einzeilige Bedingungen........................ 61 9.1.2. Mehrzeilige Bedingungen (IF-Block)................. 62 9.1.3. Alternativauswahl........................... 64 9.2. Bedingungsstrukturen............................. 65 9.2.1. Vergleiche................................ 65 9.2.2. Logische Operatoren.......................... 67 9.2.3. Das Binärsystem............................ 68 9.2.4. AND und OR als Bit-Operatoren.................... 69 9.2.5. ANDALSO und ORELSE ........................ 70 9.2.6. Weitere Bit-Operatoren: XOR, EQV, IMP und NOT .......... 71 9.3. Mehrfachauswahl: SELECT CASE ....................... 72 9.3.1. Grundaufbau.............................. 73 9.3.2. Erweiterte Möglichkeiten....................... 75 9.3.3. SELECT CASE AS CONST ...................... 76 9.4. Bedingungsfunktion: