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