Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Tutorial in Form eines kommentierten Quelltexts

Uploader:Mitgliedhelloworld
Datum/Zeit:29.07.2010 10:00:00

' Kurze Zusammenfassung der wichtigsten
' Freebasic-Anweisungen und -Befehle
' Zeilen die mit einem ' beginnen, sind Kommentare und werden ignoriert,
' darin kann man Beschreibungen einfügen oder "Notizen"
' Etwas in Bindestrichen, z.B. -variablenname- muss im Code
' ersetzt werden (z.B. durch den gewünschten Variablenamen)
'
' Jeder Befehl steht in Freebasic in einer Zeile, will man mehrere in eine Zeile schreiben,
'  muss man nach jedem Befehl einen Doppelpunkt einfügen

' -- Variablen --
'
' Variablen speichern einen bestimmten Wert und haben verschiedene Typen
' die wichtigsten sind:
'  - "string" für Zeichenketten/Texte
'  - "integer" für Ganzzahlen
'  - "single" oder "double" für Kommazahlen
' Variablen werden wie folgt definiert:
' dim -variablenname- as -typ-
' ODER:
' dim as -typ- -variablenname-
'
' Beispiel:
dim meintext as string
dim as integer meinezahl

' Variablen kann man mit
' -variablenname- = -wert-
' einen bestimmten Wert zuweisen

meintext = "Hallo!" ' Strings/Texte werden im Code in doppelten Anführungszeichen geschrieben
meinezahl = 5

' natürlich kann man auch damit rechnen, bzw. Texte "zusammenhängen" (mit + oder mit &)
' das funktioniert auch mit Variablen
meintext = "Hallo!"+" Wie gehts?"
meintext = "Text " + meintext
meinezahl = 10
meinezahl = 20 / meinezahl   ' der / bedeutet "geteilt durch", möglich sind auch:
                             ' +, -, *,
' -- Befehle aka Funktionen --
'
' Jede Funktion hat einen Namen und optional Argumente, also Werte, die ihr übergeben werden.
' Dabei können die Argumente direkt im Code stehen oder in einer Variable gespeichert sein.
' Beispiel:
print "Hallo!" ' der name der Funktion ist "print", das Argument der Text "Hallo!"
print meintext ' Hier wird als Argument die Variable meintext angegeben

' Wenn eine Funktion mehrere Argumente erwartet, muss man diese durch ein Komma trennen.
' Man kann einzelne davon weglassen, Bsp:
input meintext

' Hier eine Liste an wichtigen Funktionen und ihren Zwecken
print "Text"   ' Gibt einen Text am Bildschirm aus
cls            ' = Clear Screen. Leert die Textausgabe oder das Grafikfenster
input "Wie heißt du? ", meintext ' gibt einen Text aus, und lässt den Benutzer einen Wert eingeben,
               ' welcher in der nach dem Komma angegebenen Variablen gespeichert wird
sleep 1000     ' sleep -zeit-, -abbrechbar-
               ' Macht eine -zeit- millisekunden lange Pause, wenn für -abbrechbar- 1 angegeben wird,
               ' kann man die Pause mit einem Tastendruck beenden
sleep          ' Wenn nichts angegeben wird, wartet sleep einfach auf einen beliebigen Tastendruck

' -- Graphic Funktionen --
'
screen 0    ' screen -modus- (und noch ein paar mehr unwichtige Parameter, die komplett weggelassen werden können)
            ' Bestimmt die Ausgabeart, modus ist eine zahl. Mögliche Werte:
            ' 0 - Textmodus (entspricht dem Weglassen der Screen-Anweisung)
            ' 16 - Grafikfenster 640x480 Pixel
            ' 19 - Grafikfenster 800x600 Pixel
color 12,2  ' color -vordergrundfarbe-, -hintergrundfarbe-
            ' Setzt die Vorder und Hintergrundfarbe der Textausgabe (akzeptiert jeweils 0-15)
            ' wird die Grafikausgabe benutzt kann man auch rgb-Farben mit der rgb-Funktion angeben
'rgb(255,0,0)' rgb(-rotwert-,-grünwert-, -blauwert-)
            ' Gibt eine Farbe zurück, die einzelnen Werte müssen zwischen 0-255 liegen
            ' rgb(255,0,0) -> rot, rgb(0,255,0) -> grün, rgb(0,0,0) -> Schwarz, rgb (255,255,255) -> weiß, usw.
pset (10,10), rgb(255,0,0) ' pset (-xposition-,-yposition-), -farbe-
            ' Setzt den Pixel an der angegebenen Position auf -farbe-
            ' (die farbe lässt sich zb mit der rgb-Funktion bestimmen, wird sie weggelassen gilt der letzte "color"-aufruf)
line (10,10)-(100,100), rgb(255,0,0) ' line (-startx-, -starty-)-(-endx-, -endy-), -farbe-, -modus-
            ' zeichnet eine Linie vom Pixel -startx-, -starty- zum Pixel -endx-, -endy-, in -farbe-
            ' wird modus weggelassen, wird eine Linie gezeichnet,
line (1,1)-(10,10), rgb(255,0,0),B   ' setzt man ein B (ohne Anführungszeichen) wird ein Rechteck gezeichnet,
            ' ein BF zeichnet ein gefülltes Rechteck



' -- Bedingte Ausführung --
'
' mit der if-Abfrage kann man bestimmte Befehle nur dann ausführen, wenn eine Bedingung erfüllt ist
' Die Syntax ist folgende:
'
' if -bedingung- then
'     ... (hier kann beliebig viel normaler Code stehen)
' elseif -andere bedingung- then
'     ... (hier kann beliebig viel normaler Code stehen)
' else
'     ... (hier kann beliebig viel normaler Code stehen)
' end if
'
' Der Besseren Lesbarkeit werden Befehle zwischen den einzelnen Teilen von if/select oder Schleifen
' meist um eine bestimmte Zahl von Leerzeichen oder Tabulatoren eingerückt.
'
' Mit elseif kann man eine weitere Bedingung angeben (auch mehrere elseif, wenn gewünscht)
' Der Code in else wird ausgeführt, wenn weder die if-Bedingung noch die elseif-Bedingungen zutreffen
' Die elseif- und else-Teile können auch weggelassen werden.
' Noch ein Wort zu den Bedingungen, diese können z.B. aus einem Vergleich bestehen,
' die können folgendermaßen aussehen:
'
' -variableodereinText/eineZahl- -vergleichsoperator- -variableodereinText/eineZahl-
'
' Ein paar Beispiele für solche Bedingungen, die zwischen if und then stehen können:
' meinezahl >  2     bedeutet: ist der Wert in meinezahl größer als 2?
' meinezahl >= 2     bedeutet: ist der Wert in meinezahl größer als 2 oder genau 2?
' meinezahl <  2     bedeutet: ist der Wert in meinezahl kleiner als 2?
' meinezahl <= 2     bedeutet: ist der Wert in meinezahl kleiner als 2 oder genau 2?
' meinezahl =  2     bedeutet: ist der Wert in meinezahl genau 2?
' meinezahl <> 2     bedeutet: ist der Wert in meinezahl nicht 2? ( meinezahl kann zb 1 oder 3 sein)
' Für Texte funktioniert nur folgendes:
' meintext = "hallo"
' meintext <> "hallo"

if 5 > 2 then
    print "Natürlich ist 5 größer als 2!!!"
end if

meintext = "geheimespasswort"

' hier ein ganz ausführliches Beispiel
if meintext = "geheimespasswort" then
    print "Richtiges Passwort!"
elseif meintext = "geheimespasswort2" then
    print "Auch dieses Passwort ist richtig!"
else
    print "Das Passwort ist falsch!"
end if

' Die 'select case'-Abfrage
'
' select case -variable-
'     case -wert1-:
'        ...
'     case -wert2-:
'        ...
'     case else:
' end select
'
' Dies ist eine vereinfachte Version einer if .. elseif-Bedingung, mit der man
' eine bestimmte Variable auf viele Werte gleichzeitig prüfen kann.
' Hier das obige if...elseif Beispiel in select case Schreibweise
select case meintext
    case "geheimespasswort":
        print "Richtiges Passwort!"
    case "geheimespasswort2":
        print "Auch dieses Passwort ist richtig!"
    case else:
        print "Das Passwort ist falsch!"
end select

' Wenn man nicht auf Gleichheit prüfen will, kann man IS verwenden
' Beispiel:
select case meinezahl
    case 5:
        print "Die Zahl ist 5"
    case IS > 5:
        print "Die Zahl ist größer als 5"
    case else:
        print "Die Zahl ist weder 5 noch größer als 5"
end select

' -- Schleifen --
'
' Schleifen sind dazu da, etwas sich wiederholen zu lassen.
'
' do
'   ...
' loop
' ist die einfachste und wiederholt sich unendlich oft
' mit dem Befehl EXIT kann man sie aber abbrechen, nach dem exit
' muss der Name der Schleife stehen:
'# exit loop
do
    print "Ich höre nicht von alleine auf!"
    ' ein "exit do" hier würde die Schleife abbrechen, so dass sie nur ein einziges Mal durchlaufen wird
    exit do
loop

' do ... loop kann auch mit "until" eine Bedingung angeben, dabei läuft die Schleife solange,
' bis die Bedingung zutrifft.
' Nach jedem Schleifendurchlauf wird diese Bedingung überprüft
' folgendes Beispiel läuft 10mal, bis die Schleife beendet wird:
meinezahl = 1

do
    print meinezahl           ' gib die Zahl aus
    meinezahl = meinezahl + 1 ' erhöht meinezahl um 1
    ' meinezahl += 1            ist eine Abkürzung davon
loop until meinezahl = 10

' diese Schleife wird immer einmal durchlaufen, bevor sie die Bedingung überprüft,
' soll die Schleife nur dann gestartet werden, wenn die Bedingung zutrifft,
' kann man den "until ..." Teil stattdessen hinter das "do" schreiben
meinezahl = 1
do until meinezahl = 10
    print meinezahl           ' gib die Zahl aus
    meinezahl = meinezahl + 1 ' erhöht meinezahl um 1
loop

' Eine Alternative zur do...loop Schleife ist die while-Schleife, dabei wird
' die Schleife solange ausgeführt, bis die Bedingung nicht mehr zutrifft
' Syntax:
'
' while -bedingung-
'       ...
' wend
'
' Beispiel:
meinezahl = 1

while meinezahl < 10
    print meinezahl
    meinezahl += 1
wend

' Die For-Schleife
' Diese Schleife ist ähnlich wie die select-case Abfrage eine Abkürzung
' von den oben gezeigten Schleifen, die eine bestimmte Variable (hier: meinezahl)
' hoch oder runterzählen, bis ein bestimmter Wert erreicht ist
'
' Syntax:
' FOR -variablenname- = -startwert- TO -endwert- STEP -einzelschritt-
'     ...
' NEXT
'
' Somit kann die do-until Schleife über obiger while-Schleife so als for-Schleife geschrieben werden:
' Wie man sehen kann, ist das wesentlich kürzer.
' Dabei kann man das "step 1" sogar weglassen, es wird nur benötigt, wenn nicht in Einer-Schritten gezählt wird
for meinezahl = 1 to 10 step 1
    print meinezahl
NEXT