Thema_1
ereig_1.lst
' Grundlegende Eigenschaften eines einfachsten ' Programms unter Windows ' Der INPUT-Befehl ist sehr einfach aber nicht WINDOWS-gemäß. ' (Vergleiche Dialoge) ' Die Ereignisschleife ist wesentlich! Unter WINDOWS ist ' kein Programm allein. ' // Programm EREIGNIS OPENW #1 // Fenster Nr. 1 öffnen INPUT "Bitte Zahl Eingeben: ", eingabe ausgabe = eingabe ^ 4 // vierte Potenz TEXT 25,25, ausgabe REPEAT // Wiederhole die GETEVENT // Ereignisabfrage UNTIL MENU(1)=4 // bis Schließmenü betätigt. CLOSEW #1 // Fenster Nr.1 schließen ' ' AUFGABEN: 1. Bewegung des Fensters an der Titelleiste, ' anschließend verkleinern, vergrößern. ' 2. Klick auf den Schaltknopf Variable (unten im Editor).
variab_2.lst
'EVA-Prinzip, Datentypen, Variablenbezeichnung '(Siehe Variable-Schaltknopf unten) ' 'Variablentypen (einfache Variablen) ' Name Postfix Speicherpl.Variablentyp Bereich '----------------------------------------------------------------------- ' Double # 8 Bytes real reelle -2.2E308 | 1.67E308 ' Long % 4 Bytes integer ganze -2147483648 | +2147483647 ' Word & 2 Bytes integer ganze -32768 +32767 ' Byte | 1 Byte integer ganze 0 | 255. ' Boolean ! 1 Bit boolean logisch TRUE (-1) | FALSE (0) ' String $ abhängig string Zeichenkette ' vom String ' maximal 32767 ' ' Binärzahlen bei den Fensterattributen siehe ' Hilfe zu OPENW (Cursor setzen, shift+F1) ' Grafik-TEXT-Ausgabe (x,y-Koordinaten auf dem Bildschirm) ' und Typumwandlung str$() //Programm zu DATEN , VARIABLEN OPENW #1,20,40,500,400,&X0011111000 // (siehe Hilfe) TITLEW #1,"Artikelbearbeitung" // --- Eingabe --- INPUT "Artikelbezeichnung: ",artikel$ INPUT "Stückzahl: ",stk% INPUT "Preis: ", preis // --- Verarbeitung --- gesamt=stk%*preis mwst = gesamt * 0.16 // Dezimalpunkt brutto=gesamt+mwst // --- Ausgabe --- REPEAT TEXT 10,200,"Gesamtpreis: "+STR$(gesamt) // Typumwandlung TEXT 10,220,"Mehrwertsteuer: "+STR$(mwst) TEXT 10,240,"Gesamtbruttopreis:"+STR$(brutto) GETEVENT UNTIL MENU(1)=4 OR INKEY$=CHR$(27) // ASCII-Code 27: ESC-Taste CLOSEW #1 ' ' AUFGABEN: 1. Änderung der Fensterattribute im Befehl OPENW. ' 2. Veränderung der Fenstergröße nach Ausgabe.
if_3.lst
' Struktogramme (siehe Tafelwerk)
'
'
//Übung zur Struktogrammtechnik
OPENW #1,40,10,400,300,&X11111111111
TITLEW #1,"Struktogrammtechnik"
INPUT "Gebe eine Zahl ein:",zahl
REPEAT
IF zahl=0
TEXT 50,200,"Die Zahl hat kein Reziprokes!"
ELSE
reziprokes = 1 / zahl
TEXT 50,30,"Das Reziproke der Zahl ist: " + STR$(reziprokes)
ENDIF
GETEVENT
UNTIL MENU(1)=4 OR INKEY$=CHR$(27)
CLOSEW #1
'
'AUFGABEN: 1. Struktogramm zeichnen
' 2. Begriffe: Fensterattribute
' Typumwandlung
' ASCII
zylind_4.lst
' Zwei Fenster ' "Denk-"pausen ' grafische Elemente in der Ereignisabfrageschleife ' (Test: max. Größe des Ausgabefensters) ' //Volumen eines Zylinders //----------------------- OPENW #1,10,20,400,150,&x0011110000 DELAY 0.5 // 1/2 Sekunde verstreicht OPENW #2,40,100,450,250,&x1011110000 DELAY .5 TITLEW #1,"Eingabefenster" DELAY 1.5 TITLEW #2,"Ausgabefenster" DELAY 1.5 TOPW #1 // Fenster 1: Vordergrund // ---------- Eingabe ------------- INPUT "Radius: ",radius INPUT "Höhe: ",hoehe // ------- Verarbeitung ----------- volumen=PI*radius^2*hoehe // ---------- Ausgabe ------------- TOPW #2 // Fenster 2: Vordergrund REPEAT GETEVENT // Ereignisabfrage TEXT 10,15,"Das Volumen beträgt :" TEXT 30,40,volumen ELLIPSE 100,200,50,25 ELLIPSE 100,300,50,25 LINE 50,200,50,300 LINE 150,200,150,300 UNTIL MENU(1)=4 OR INKEY$=CHR$(27) CLOSEW #2 CLOSEW #1 ' ' Aufgaben: 1. Variation des Programms
while_5.lst
' Struktogrammtechnik: ' Programmschleifen ' abweisende Schleife (Anfangstest) ' // Programm while-Schleife // OPENW #1 TEXT 50,20,"Bitte einen Buchstaben eintippen, Enter" TEXT 50,40,"(Wort)-Ende mit Leertaste" buchstabe&=0 WHILE NOT(buchstabe$=CHR$(32)) // ASCII 32: Leerzeichen GETEVENT wort$=wort$+buchstabe$ TEXT 50,60,wort$ INPUT "";buchstabe$ // (*) buchstabe&=buchstabe&+1 TEXT 50,100,"Schleifendurchlauf:" TEXT 210,100,buchstabe& WEND wort$="*** "+wort$+" ***" TEXT 50,60,"Das Wort ist "+wort$ DELAY 5 CLOSEW #1 ' ' AUFGABEN: 1. Struktogramm zeichnen ' 2. Zeile (*) zusätzlich vor die Schleife kopieren ' (Wirkung?) ' 3. ; nach INPUT "" in , ändern - Wirkung?
zaehl_6.lst
'
// Programm Zählschleife
OPENW #1
TEXT 200,15," ms "+STR$(TIMER)
DELAY 3
startzeit%=TIMER // ms nach Systemstart
FOR i%=0 TO 100000
summe=summe+i%
PEEKEVENT
IF (i% MOD 1000)=0
TEXT 10,15,"Zähler: "+STR$(i%)
TEXT 10,60,"Zeit: "+STR$(ROUND((TIMER-startzeit%)/1000))+"s"
ENDIF
NEXT i%
TEXT 10,30,"Die Summe ist: "+STR$(summe)
DELAY 5
CLOSEW #1
'
' Aufgaben: 1. Struktogramm zeichnen
' 2. Ausgabe der Startzeit
' 3. Programm abändern: Produkt der Zahlen (Überlauf)
'
doloop_7.lst
' Struktogramm der Schleife mit internem Abbruch:
' __________________________
' | tue | |
' | | a1 |
' | |____________________|
' | |< Abbruch wenn ... |
' | |____________________|
' | | |
' | | a2 |
' |_____|____________________|
// Programm mit Abbruch innerhalb der Schleife.
OPENW #1,10,20,550,380,&x1011110000
TITLEW #1,"Ende Grafik: klick rechts "
DO
GETEVENT
MOUSE maus_x% ,maus_y%,maus_k% // Mausstatus
EXIT IF maus_k%=2 // Abbruch wenn Maustaste rechts
IF maus_k%=1 // MausKnopf links
PCIRCLE maus_x%,maus_y%,4 // gefüllter Kreis
ENDIF
LOOP
CLOSEW #1
'
' Aufgaben: 1. Programmerweiterung: CLS n% (Farbe n%)
' COLOR v%,h%
' 2. Abbruchkriterium ändern