summaryrefslogtreecommitdiff
path: root/app/schulis-simulationssystem/3.0/src/ltbearb
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis-simulationssystem/3.0/src/ltbearb')
-rw-r--r--app/schulis-simulationssystem/3.0/src/ltbearb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/schulis-simulationssystem/3.0/src/ltbearb b/app/schulis-simulationssystem/3.0/src/ltbearb
new file mode 100644
index 0000000..f21741e
--- /dev/null
+++ b/app/schulis-simulationssystem/3.0/src/ltbearb
@@ -0,0 +1,8 @@
+PACKETlsbearbeitungsmenuDEFINESzeigekopfbalken,initialisieresimulation,anfangsaktivierungloesungen,lsgberechnen,ftsberechnen,lsgumschalten,wechselezu,anfangsaktivierungdarstellung,ausgabezeitdiagramm,ausgabephasendiagramm,ausgabehistogramm,ausgabetabelle,ausgabezusatzdarstellung,anfangsaktivierungkombination,kombinationzusammenstellen,parameterkombination,anfangsaktivierungvergleich,endprocvergleich,ausgabevergleichzeitdiagramm,ausgabevergleichphasendiagramm,ausgabevergleichhistogramm,ausgabevergleichtabelle,uebergebeinfotextfuerwd,infoszummodell:LETnichtseingegeben="m";LETausknichtgraphikfaehig=72,auskkeinelsgberechnet=73,ausknureinelsgberechnet=74,showverlasszeichen="m",stleistefileverlassen=28,kopfmax4variablen=50,kopfbeliebigvielevar=51,kopfgenaueinexykombin=52,kopfxyeingabe=53,headzeilenlaenge=77,headproduktname="schulis Simulationssystem",dialogsituationsimulation=1;LETmodellauforiginal="modellauf.original",modellauffortsetzung="modellauf.fortsetzung",anzahlloesungen=2;LET LSG=STRUCT(TEXTname,LOESUNGanfang,BOOLberechnet,LOESUNGgesamt,BOOLftsberechnet);ROWanzahlloesungenLSG VARlsg;INT VARlsgaktuell:=0;LETmax=20,negativemld=FALSE;LETloesungsmenu=1,darstellungsmenu=2,kombmenu=3,vergleichsmenu=4;LETloesungenberechnen=0,einfach=1,komb1=2;LETzeitdg=1,phasdg=2,tabdg=3,histdg=4,zusdg=5;LETzuebers="Zeitdiagramm",puebers="Phasendiagramm",tuebers="Tabelle",huebers="Histogramm";WINDOW VARfsingle:=grossesrahmenfenster;LETsinglesp1=1,zl1=4,singlebr=78,hoe=19,scrollzeile=3;LETbw="";ROW2BOOL VARkombgewaehlt;ROW2TEXT VARdarstname1,darstname2;ROW2INT VARdarstnrkomb1,darstnrkomb2;TEXT VARlsgnrtext1:="",lsgnrtext2:="";INT VARsubmenu1lsgnr:=1;BOOL VARaktivierunggeaendert:=FALSE;ROW4ROW8BOOL VARaktivierung;ROW8BOOL VARaktivaktuell;ROW4BOOL VARerstesaufklappen;DATASPACE VARinfofuerwd:=nilspace;TEXT VARkopfbalken:="";PROCinitialisieresimulation:kopfbalken:=headproduktname+(headzeilenlaenge-length(modellkurzbezeichnung)-length(headproduktname))*" "+modellkurzbezeichnung;zeigekopfbalken;INT VARi,j;FORiFROM1UPTOanzahlloesungenREPlsg(i).berechnet:=FALSE;lsg(i).ftsberechnet:=FALSE;lsg(i).name:="Lösung "+text(i);lsg(i).anfangVONoriginalwerte;lsg(i).gesamtVONoriginalwerte;PER;lsgaktuell:=1;kombgewaehlt(1):=FALSE;kombgewaehlt(2):=FALSE;darstnrkomb1(1):=0;darstnrkomb2(1):=0;darstnrkomb1(2):=0;darstnrkomb2(2):=0;aktivierunggeaendert:=FALSE;submenu1lsgnr:=0;lsgnrtext1:="Voreinstellung auf:";lsgnrtext2:=""+lsg(lsgaktuell).name+" "+code(14);FORiFROM1UPTO4REP FORjFROM1UPTO8REPaktivierung(i)(j):=FALSE;aktivaktuell(j):=FALSE;PER;PER;FORiFROM1UPTO4REPerstesaufklappen(i):=TRUE;PER;do("deactivate (2);");do("deactivate (3);");aktivierung(1)(2):=FALSE;aktivierung(1)(3):=FALSE;END PROCinitialisieresimulation;PROCanfangsaktivierungloesungen:loescheaktuellemeldung(dialogsituationsimulation);IFerstesaufklappen(loesungsmenu)THENdo("activate (1);");do("activate (5);");do("activate (6);");aktivierung(loesungsmenu)(1):=TRUE;aktivierung(loesungsmenu)(5):=TRUE;aktivierung(loesungsmenu)(6):=TRUE;FI;IFlsgaktuell<>submenu1lsgnrTHENaktivaktuell:=aktivierung(loesungsmenu);IFlsg(lsgaktuell).berechnetTHENaktivaktuell(2):=TRUE;ELSEaktivaktuell(2):=FALSE;FI;IFlsg(lsgaktuell).ftsberechnetTHENaktivaktuell(3):=TRUE;ELSEaktivaktuell(3):=FALSE;FI;evtneueaktivierungausgeben(loesungsmenu);IFsubmenu1lsgnr=0THENgiblsgnraus;FI;submenu1lsgnr:=lsgaktuell;FI;END PROCanfangsaktivierungloesungen;PROClsgberechnen(ZUSTAND PROC(REAL CONST,ZUSTAND CONST,PARAMETER CONST)f,ZUSTAND PROC(REAL CONST,ZUSTAND CONST,PARAMETER CONST)cof):INT VARlg:=lsgaktuell;TEXT VARtaste:="";LOESUNG VARergebnis;KURVE VARzkurve;ergebnisVONlsg(lg).anfang;berechne(ergebnis,PROCf,PROCcof,taste);trageergebnisalsneuelsgein;do("regenerate menuscreen;");giblsgnraus;.trageergebnisalsneuelsgein:IFtaste<>nichtseingegebenTHEN IFvorhernichtberechnetTHENaktivierung(loesungsmenu)(2):=TRUE;do("activate(2)");ELIFfortsetzberechnetTHENaktivierung(loesungsmenu)(3):=FALSE;do("deactivate (3)");FI;lsg(lg).anfang:=ergebnis;copy(zkurve,
+modellauforiginal+lsgindex,LOESUNGSABSCHNITTergebnis);lsg(lg).anfangLOESUNGSABSCHNITTzkurve;lsg(lg).gesamt:=ergebnis;copy(zkurve,modellauffortsetzung+lsgindex,LOESUNGSABSCHNITTergebnis);lsg(lg).gesamtLOESUNGSABSCHNITTzkurve;lsg(lg).berechnet:=TRUE;lsg(lg).ftsberechnet:=FALSE;FI;.vorhernichtberechnet:NOTlsg(lg).berechnet.fortsetzberechnet:lsg(lg).ftsberechnet.lsgindex:"."+text(lg).END PROClsgberechnen;PROCftsberechnen(ZUSTAND PROC(REAL CONST,ZUSTAND CONST,PARAMETER CONST)f,ZUSTAND PROC(REAL CONST,ZUSTAND CONST,PARAMETER CONST)cof):INT CONSTlg:=lsgaktuell;berechnefortfuehrung(lsg(lg).anfang,lsg(lg).gesamt,PROCf,PROCcof);IF NOTlsg(lg).ftsberechnetTHENaktivierung(loesungsmenu)(3):=TRUE;do("activate (3);");FI;lsg(lg).ftsberechnet:=TRUE;oldfootnote;.END PROCftsberechnen;PROClsgumschalten:INT CONSTi:=lsgaktuell;KURVE VARzkurve;lsg(i).ftsberechnet:=FALSE;lsg(i).gesamt:=lsg(i).anfang;copy(zkurve,modellauffortsetzung+lsgindex,LOESUNGSABSCHNITTlsg(i).anfang);lsg(i).gesamtLOESUNGSABSCHNITTzkurve;aktivierung(loesungsmenu)(3):=FALSE;do("deactivate (3);");.lsgindex:"."+text(i).END PROClsgumschalten;PROCwechselezu(INT CONSTneuelsgnr,darstellungsform):IFlsgaktuell<>neuelsgnrTHEN IFdarstellungsform=loesungenberechnenTHENlsgaktuell:=neuelsgnr;anfangsaktivierungloesungen;lsgnrtext1:="Momentan aktiv:";lsgnrtext2:=code(15)+lsg(lsgaktuell).name+" "+code(14);ELIFlsg(neuelsgnr).berechnetTHENlsgaktuell:=neuelsgnr;lsgnrtext1:="Momentan aktiv:";lsgnrtext2:=code(15)+lsg(lsgaktuell).name+" "+code(14);IFdarstellungsform=einfachTHENanfangsaktivierungdarstellung;ELIFdarstellungsform=komb1THENaktivierungkombination(TRUE);FI;FI;IF NOTaktivierunggeaendertTHENdo("refresh submenu;");ELSE FI;giblsgnraus;FI;END PROCwechselezu;PROCanfangsaktivierungdarstellung:INT VARi;loescheaktuellemeldung;aktivaktuell:=aktivierung(darstellungsmenu);IF NOTeinelsgberechnetTHENdeaktivieredarstellungen;aktivaktuell(7):=FALSE;aktivaktuell(8):=FALSE;zeigemeldung(auskunftstext(auskkeinelsgberechnet),negativemld);ELIFlsg(lsgaktuell).berechnetTHENaktivieredarstellungen;aktivierelsgwechsel;ELSEdeaktivieredarstellungen;aktivierelsgwechsel;FI;evtneueaktivierungausgeben(darstellungsmenu);IFaktivierunggeaendertTHENdo("refresh submenu")FI;.aktivieredarstellungen:FORiFROM1UPTO5REPaktivaktuell(i):=darstellungzugelassen(i);PER;.aktivierelsgwechsel:aktivaktuell(7):=lsg(1).berechnet;aktivaktuell(8):=lsg(2).berechnet;.deaktivieredarstellungen:FORiFROM1UPTO5REPaktivaktuell(i):=FALSE;PER;END PROCanfangsaktivierungdarstellung;PROCausgabezeitdiagramm:BOOL VARvariablengewaehlt:=FALSE;ZUSTAND VARvariablenmuster;TEXT VARtaste:="";variableneinstellensingle(variablenmuster,zeitdg,variablengewaehlt,zuebers);IFvariablengewaehltTHENzeigediagramm("z",lsg(lsgaktuell).gesamt,variablenmuster,lsg(lsgaktuell).ftsberechnet,taste);fehlerbehandlungnachgraphik(TRUE);ELSEerase(fsingle);refreshundnrausgabe;oldfootnote;FI;END PROCausgabezeitdiagramm;PROCausgabephasendiagramm:BOOL VARvariablengewaehlt:=FALSE;ZUSTAND VARvariablenmuster;TEXT VARtaste:="";variableneinstellensingle(variablenmuster,phasdg,variablengewaehlt,puebers);IFvariablengewaehltTHENzeigephasendiagramm(lsg(lsgaktuell).gesamt,variablenmuster,lsg(lsgaktuell).ftsberechnet,taste);fehlerbehandlungnachgraphik(TRUE);ELSEerase(fsingle);refreshundnrausgabe;oldfootnote;FI;END PROCausgabephasendiagramm;PROCausgabehistogramm:BOOL VARvariablengewaehlt:=FALSE;ZUSTAND VARvariablenmuster;TEXT VARtaste:="";variableneinstellensingle(variablenmuster,histdg,variablengewaehlt,huebers);IFvariablengewaehltTHENzeigediagramm("h",lsg(lsgaktuell).gesamt,variablenmuster,lsg(lsgaktuell).ftsberechnet,taste);fehlerbehandlungnachgraphik(TRUE);ELSEerase(fsingle);refreshundnrausgabe;oldfootnote;FI;END PROCausgabehistogramm;PROCausgabetabelle:BOOL VARvariablengewaehlt:=FALSE;ZUSTAND VARvariablenmuster;TEXT VARtaste:="";variableneinstellensingle(variablenmuster,tabdg,variablengewaehlt,tuebers);IFvariablengewaehltTHENzeigediagramm("t",lsg(lsgaktuell).gesamt,variablenmuster,lsg(lsgaktuell).
+ftsberechnet,taste);FI;erase(fsingle);refreshundnrausgabe;oldfootnote;END PROCausgabetabelle;PROCausgabezusatzdarstellung(PROC(LOESUNG VAR,BOOL VAR,TEXT VAR)zusatzdarstellung):BOOL VARnichtindemo:=FALSE;TEXT VARtaste:="";zusatzdarstellung(lsg(lsgaktuell).gesamt,nichtindemo,taste);fehlerbehandlungnachgraphik(TRUE);END PROCausgabezusatzdarstellung;PROCanfangsaktivierungkombination(BOOL CONSTmldloeschen):darstname1(lsgaktuell):="";darstname2(lsgaktuell):="";kombgewaehlt(1):=FALSE;kombgewaehlt(2):=FALSE;aktivierungkombination(mldloeschen);END PROCanfangsaktivierungkombination;PROCaktivierungkombination(BOOL CONSTmldloeschen):INT VARi;IFmldloeschenTHENloescheaktuellemeldung;FI;aktivaktuell:=aktivierung(kombmenu);IFeinelsgberechnetTHENaktivieredarstellungenELSEzeigemeldung(auskunftstext(auskkeinelsgberechnet),negativemld);deaktivieredarstellungenFI;evtneueaktivierungausgeben(kombmenu);.aktivieredarstellungen:aktivaktuell(1):=lsg(lsgaktuell).berechnet;aktivaktuell(3):=kombgewaehlt(lsgaktuell);aktivaktuell(5):=lsg(1).berechnet;aktivaktuell(6):=lsg(2).berechnet;.deaktivieredarstellungen:FORiFROM1UPTO6REP IFi<>4CANDi<>2THENaktivaktuell(i):=FALSE;FI;PER;.END PROCaktivierungkombination;PROCkombinationzusammenstellen:TEXT VARtaste:="";ZUSTAND VARmusterkomb1,musterkomb2;BOOL VARkombvarblgewaehlt:=FALSE,mldloeschen:=TRUE;musterkomb1:=neuerzustand(dimension+codimension);musterkomb2:=neuerzustand(dimension+codimension);waehledarstellungkombaus;waehlevariablenfuerdarstellungkombaus;gebekombiniertedarstellungaus;.waehledarstellungkombaus:THESAURUS VARangebot1:=emptythesaurus,auswahl1:=emptythesaurus,auswahl2:=emptythesaurus;INT VARi:=0;insert(angebot1,zuebers,i);IFmitphasendiagrammCAND(dimension+codimension>=2)THENinsert(angebot1,puebers,i);FI;insert(angebot1,tuebers,i);insert(angebot1,huebers,i);auswahl1:=angebot1;auswahl2:=angebot1;doublesome(zl1,hoe,1,1,1,1,auswahl1,auswahl2,"Darstellung 1",bw,"Darstellung 2",bw);IFnotempty(auswahl1)ANDnotempty(auswahl2)THENkombgewaehlt(lsgaktuell):=TRUE;i:=0;get(auswahl1,darstname1(lsgaktuell),i);darstnrkomb1(lsgaktuell):=darstellungsart(darstname1(lsgaktuell));i:=0;get(auswahl2,darstname2(lsgaktuell),i);darstnrkomb2(lsgaktuell):=darstellungsart(darstname2(lsgaktuell));do("activate (3)");aktivaktuell(3):=TRUE;ELSEleavekombinationzusammenstellen;FI;.waehlevariablenfuerdarstellungkombaus:variableneinstellendouble(musterkomb1,musterkomb2,darstnrkomb1(lsgaktuell),darstnrkomb2(lsgaktuell),kombvarblgewaehlt,darstname1(lsgaktuell),darstname2(lsgaktuell));IF NOTkombvarblgewaehltTHENleavekombinationzusammenstellen;FI;.gebekombiniertedarstellungaus:zeigekombiniertedarstellung(taste,lsg(lsgaktuell).gesamt,darstnrkomb1(lsgaktuell),darstnrkomb2(lsgaktuell),musterkomb1,musterkomb2);IFdarstname1(lsgaktuell)=tuebersANDdarstname2(lsgaktuell)=tuebersTHENaktivierungkombination(mldloeschen);oldfootnote;giblsgnraus;ELSEaktivierungkombination(NOTmldloeschen);fehlerbehandlungnachgraphik(TRUE);FI;.leavekombinationzusammenstellen:erase(fsingle);aktivierungkombination(FALSE);refreshundnrausgabe;oldfootnote;LEAVEkombinationzusammenstellen;.END PROCkombinationzusammenstellen;PROCparameterkombination:ZUSTAND VARmusterkomb1,musterkomb2;TEXT VARtaste;BOOL VARkombvarblgewaehlt:=FALSE;musterkomb1:=neuerzustand(dimension+codimension);musterkomb2:=neuerzustand(dimension+codimension);variableneinstellendouble(musterkomb1,musterkomb2,darstnrkomb1(lsgaktuell),darstnrkomb2(lsgaktuell),kombvarblgewaehlt,darstname1(lsgaktuell),darstname2(lsgaktuell));IFkombvarblgewaehltTHENzeigekombiniertedarstellung(taste,lsg(lsgaktuell).gesamt,darstnrkomb1(lsgaktuell),darstnrkomb2(lsgaktuell),musterkomb1,musterkomb2);IFdarstname1(lsgaktuell)=tuebersANDdarstname2(lsgaktuell)=tuebersTHENoldfootnote;ELSEfehlerbehandlungnachgraphik(TRUE);FI;ELSEerase(fsingle);refreshundnrausgabe;oldfootnote;FI;.END PROCparameterkombination;PROCanfangsaktivierungvergleich:INT VARi;loescheaktuellemeldung;erase(lsgwindow);aktivaktuell:=aktivierung(vergleichsmenu);IF NOTeinelsgberechnet
+THENzeigemeldung(auskunftstext(auskkeinelsgberechnet),negativemld);deaktivieredarstellungenELIF NOTmindzweilsgberechnetTHENzeigemeldung(auskunftstext(ausknureinelsgberechnet),negativemld);deaktivieredarstellungenELSEaktivieredarstellungenFI;evtneueaktivierungausgeben(vergleichsmenu);.aktivieredarstellungen:FORiFROM1UPTO4REPaktivaktuell(i):=darstellungzugelassen(i);PER;.deaktivieredarstellungen:FORiFROM1UPTO4REPaktivaktuell(i):=FALSE;PER;END PROCanfangsaktivierungvergleich;PROCendprocvergleich:giblsgnraus;END PROCendprocvergleich;PROCausgabevergleichzeitdiagramm:ZUSTAND VARvariablenmuster;TEXT VARtaste:="";BOOL VARvariablengewaehlt:=FALSE;variableneinstellensingle(variablenmuster,zeitdg,variablengewaehlt,zuebers);IFvariablengewaehltTHENzeigevergleichskurve(taste,lsg(1).gesamt,lsg(2).gesamt,variablenmuster,"z");fehlerbehandlungnachgraphik(FALSE);ELSEerase(fsingle);do("refresh submenu");oldfootnote;FI;END PROCausgabevergleichzeitdiagramm;PROCausgabevergleichphasendiagramm:ZUSTAND VARvariablenmuster;TEXT VARtaste:="";BOOL VARvariablengewaehlt:=FALSE;variableneinstellensingle(variablenmuster,phasdg,variablengewaehlt,puebers);IFvariablengewaehltTHENzeigevergleichskurvefuerphasendiagramm(taste,LOESUNGSABSCHNITTlsg(1).gesamt,LOESUNGSABSCHNITTlsg(2).gesamt,variablenmuster);fehlerbehandlungnachgraphik(FALSE);ELSEerase(fsingle);do("refresh submenu");oldfootnote;FI;END PROCausgabevergleichphasendiagramm;PROCausgabevergleichhistogramm:BOOL VARvariablengewaehlt:=FALSE;ZUSTAND VARvariablenmuster;TEXT VARtaste:="";variableneinstellensingle(variablenmuster,histdg,variablengewaehlt,huebers);IFvariablengewaehltTHENzeigevergleichskurve(taste,lsg(1).gesamt,lsg(2).gesamt,variablenmuster,"h");fehlerbehandlungnachgraphik(FALSE);ELSEerase(fsingle);do("refresh submenu");oldfootnote;FI;END PROCausgabevergleichhistogramm;PROCausgabevergleichtabelle:BOOL VARvariablengewaehlt:=FALSE;ZUSTAND VARvariablenmuster;TEXT VARtaste:="";variableneinstellensingle(variablenmuster,tabdg,variablengewaehlt,tuebers);IFvariablengewaehltTHENzeigevergleichfuertabelle(taste,lsg(1).gesamt,lsg(2).gesamt,variablenmuster);FI;erase(fsingle);do("refresh submenu");oldfootnote;END PROCausgabevergleichtabelle;PROCinfoszummodell:LETdateienname="liste",spaltenbreite=0;WINDOW VARfshow:=scrollfenster;FILE VARmdlinfo;TEXT VARausstieg:="";INT VARerstersatz1:=3,erstespalte1:=1;TEXT CONSTausstiegszeichen:=showverlasszeichen;IFwirkungsdgrTHENmdlinfo:=sequentialfile(output,infofuerwd);zeigeinfo;ELSEforget(dateienname,quiet);mdlinfo:=sequentialfile(output,dateienname);mdlinfo:=informationstext(dateienname);zeigeinfo;forget(dateienname,quiet);FI;.zeigeinfo:footnote(steuerleiste(stleistefileverlassen));scroll(fshow,mdlinfo,1,scrollzeile,spaltenbreite,erstersatz1,erstespalte1,ausstiegszeichen,ausstieg);.END PROCinfoszummodell;BOOL PROCeinelsgberechnet:(lsg(1).berechnet)COR(lsg(2).berechnet).END PROCeinelsgberechnet;BOOL PROCdarstellungzugelassen(INT CONSTdarst):SELECTdarstOF CASEzeitdg:TRUE CASEphasdg:mitphasendiagrammCANDdimension+codimension>=2CASEtabdg:TRUE CASEhistdg:TRUE CASEzusdg:mitzusatzdarstellungOTHERWISE FALSE END SELECT.END PROCdarstellungzugelassen;BOOL PROCmindzweilsgberechnet:(lsg(1).berechnetCANDlsg(2).berechnet).END PROCmindzweilsgberechnet;PROCvariableneinstellensingle(ZUSTAND VARmuster1,INT CONSTart1,BOOL VARgewaehlt,TEXT CONSTueberschr1):TEXT VARkombinationsname:="";ROWmaxTEXT VARkombnamen;INT VARanzahlkombinationen:=0,stelle1,stelle2,knr:=0;BOOL VARautomatik:=FALSE;TEXT VARmarkers1:="";THESAURUS VARangebot1:=emptythesaurus,auswahl1:=emptythesaurus;muster1:=neuerzustand(dimension+codimension);IFart1=phasdgANDmitkombinationenTHENermittlevariablenpkELIFart1=phasdgAND NOTmitkombinationenTHENermittlevariablenpELIFart1=tabdgTHENermittlevariablentELIFwiezeitdiagramm(art1)THENermittlevariablenzFI;.ermittlevariablent:ermittlevariablenliste(angebot1);auswahl1:=somewithmax(singlesp1,zl1,singlebr,hoe,angebot1,dimension+codimension,ueberschr1,kopfzeile(kopfbeliebigvielevar));gewaehlt:=
+notempty(auswahl1);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1);FI;.ermittlevariablenz:ermittlevariablenliste(angebot1);auswahl1:=somewithmax(singlesp1,zl1,singlebr,hoe,angebot1,max4variablen,ueberschr1,kopfzeile(kopfmax4variablen));gewaehlt:=notempty(auswahl1);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1);FI;.ermittlevariablenpk:listekombinationen(kombnamen,anzahlkombinationen);IFanzahlkombinationen=1THENknr:=1;gewaehlt:=TRUE;ELSEangebot1:=mengederkombinationen(kombnamen,anzahlkombinationen);kombinationsname:=one(singlesp1,zl1,singlebr,hoe,angebot1,ueberschr1,kopfzeile(kopfgenaueinexykombin));gewaehlt:=kombinationsname<>"";IFgewaehltTHENknr:=link(angebot1,kombinationsname);FI;FI;IFgewaehltTHENindiceskombinationen(knr,stelle1,stelle2,automatik);belegemuster(muster1,stelle1,stelle2,automatik);FI;.ermittlevariablenp:markers1:="xy";ermittlevariablenliste(angebot1);auswahl1:=someexactly(singlesp1,zl1,singlebr,hoe,angebot1,2,ueberschr1,kopfzeile(kopfxyeingabe),markers1);gewaehlt:=notempty(auswahl1);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1,markers1);FI;.max4variablen:min(4,dimension+codimension).END PROCvariableneinstellensingle;PROCvariableneinstellendouble(ZUSTAND VARmuster1,muster2,INT CONSTart1,art2,BOOL VARgewaehlt,TEXT CONSTueberschr1,ueberschr2):TEXT VARkombinationsname:="";ROWmaxTEXT VARkombnamen;INT VARanzahlkombinationen:=0,stelle1,stelle2,knr:=0;BOOL VARautomatik:=FALSE;TEXT VARmarkers1:="",markers2:="";THESAURUS VARangebot1:=emptythesaurus,auswahl1:=emptythesaurus,angebot2:=emptythesaurus,auswahl2:=emptythesaurus;IFart1=phasdgANDwiezeitdiagramm(art2)AND NOTmitkombinationenTHENermittlevariablenpundzELIFwiezeitdiagramm(art1)ANDart2=phasdgAND NOTmitkombinationenTHENermittlevariablenzundpELIFart1=phasdgANDwiezeitdiagramm(art2)ANDmitkombinationenTHENermittlevariablenpkundzELIFwiezeitdiagramm(art1)ANDart2=phasdgANDmitkombinationenTHENermittlevariablenzundpkELIFart1=phasdgANDart2=phasdgANDmitkombinationenTHENermittlevariablenpkundpkELIFart1=phasdgANDart2=phasdgAND NOTmitkombinationenTHENermittlevariablenpundpELIFwiezeitdiagramm(art1)ANDwiezeitdiagramm(art1)THENermittlevariablenzundzFI;.ermittlevariablenpundz:ermittlevariablenliste(angebot1);markers1:="xy";markers2:="x";auswahl1:=angebot1;auswahl2:=angebot1;doublesome(zl1,hoe,2,2,1,4,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfxyeingabe),ueberschr2,kopfzeile(kopfmax4variablen),markers1,markers2);gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1,markers1);belegemuster(auswahl2,angebot1,muster2);FI;.ermittlevariablenzundp:ermittlevariablenliste(angebot1);markers1:="x";markers2:="xy";auswahl1:=angebot1;auswahl2:=angebot1;doublesome(zl1,hoe,1,4,2,2,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfmax4variablen),ueberschr2,kopfzeile(kopfxyeingabe),markers1,markers2);gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1);belegemuster(auswahl2,angebot1,muster2,markers2);FI;.ermittlevariablenpkundz:ermittlevariablenliste(angebot2);listekombinationen(kombnamen,anzahlkombinationen);IFanzahlkombinationen=1THENknr:=1;auswahl2:=somewithmax(singlesp1,zl1,singlebr,hoe,angebot2,4,ueberschr1,kopfzeile(kopfmax4variablen));gewaehlt:=notempty(auswahl2);ELSEangebot1:=mengederkombinationen(kombnamen,anzahlkombinationen);auswahl1:=angebot1;auswahl2:=angebot2;doublesome(zl1,hoe,1,1,1,4,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfgenaueinexykombin),ueberschr2,kopfzeile(kopfmax4variablen));gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENknr:=0;get(auswahl1,kombinationsname,knr);knr:=link(angebot1,kombinationsname);FI;FI;IFgewaehltTHENindiceskombinationen(knr,stelle1,stelle2,automatik);belegemuster(muster1,stelle1,stelle2,automatik);belegemuster(auswahl2,angebot2,muster2);FI;.ermittlevariablenzundpk:ermittlevariablenliste(angebot1);listekombinationen(kombnamen,anzahlkombinationen);IFanzahlkombinationen=1THENknr:=1;auswahl1:=somewithmax(singlesp1,zl1,singlebr,hoe,
+angebot1,4,ueberschr1,kopfzeile(kopfmax4variablen));gewaehlt:=notempty(auswahl1);ELSEangebot2:=mengederkombinationen(kombnamen,anzahlkombinationen);auswahl1:=angebot1;auswahl2:=angebot2;doublesome(zl1,hoe,1,4,1,1,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfmax4variablen),ueberschr2,kopfzeile(kopfgenaueinexykombin));gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENknr:=0;get(auswahl2,kombinationsname,knr);knr:=link(angebot2,kombinationsname);FI;FI;IFgewaehltTHENindiceskombinationen(knr,stelle1,stelle2,automatik);belegemuster(auswahl1,angebot1,muster1);belegemuster(muster2,stelle1,stelle2,automatik);FI;.ermittlevariablenpkundpk:INT VARknr2:=0;listekombinationen(kombnamen,anzahlkombinationen);IFanzahlkombinationen=1THENknr:=1;knr2:=1;gewaehlt:=TRUE;ELSEangebot1:=mengederkombinationen(kombnamen,anzahlkombinationen);auswahl1:=angebot1;auswahl2:=angebot1;doublesome(zl1,hoe,1,1,1,1,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfgenaueinexykombin),ueberschr2,kopfzeile(kopfgenaueinexykombin));gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENknr:=0;get(auswahl1,kombinationsname,knr);knr:=link(angebot1,kombinationsname);knr2:=0;get(auswahl2,kombinationsname,knr2);knr2:=link(angebot1,kombinationsname);FI;FI;IFgewaehltTHENindiceskombinationen(knr,stelle1,stelle2,automatik);belegemuster(muster1,stelle1,stelle2,automatik);indiceskombinationen(knr2,stelle1,stelle2,automatik);belegemuster(muster2,stelle1,stelle2,automatik);FI;.ermittlevariablenpundp:markers1:="xy";markers2:="xy";ermittlevariablenliste(angebot1);auswahl1:=angebot1;auswahl2:=angebot1;doublesome(zl1,hoe,2,2,2,2,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfxyeingabe),ueberschr2,kopfzeile(kopfxyeingabe),markers1,markers2);gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1,markers1);belegemuster(auswahl2,angebot1,muster2,markers2);FI;.ermittlevariablenzundz:ermittlevariablenliste(angebot1);auswahl1:=angebot1;auswahl2:=angebot1;doublesome(zl1,hoe,1,4,1,4,auswahl1,auswahl2,ueberschr1,kopfzeile(kopfmax4variablen),ueberschr2,kopfzeile(kopfmax4variablen));gewaehlt:=notempty(auswahl1)ANDnotempty(auswahl2);IFgewaehltTHENbelegemuster(auswahl1,angebot1,muster1);belegemuster(auswahl2,angebot1,muster2);FI;.END PROCvariableneinstellendouble;PROCbelegemuster(ZUSTAND VARmuster,INT VARplace1,place2,BOOL CONSTvertauschbar):replace(muster,place1,1.0);IFvertauschbarTHENreplace(muster,place2,1.0)ELSEreplace(muster,place2,2.0)FI;END PROCbelegemuster;PROCbelegemuster(THESAURUS CONSTauswahl,angebot,ZUSTAND VARmuster,TEXT CONSTmarkers):TEXT VARname1:="",name2:="";INT VARplacea:=0,placeb:=1;get(auswahl,name1,placea);get(auswahl,name2,placeb);placea:=link(angebot,name1);placeb:=link(angebot,name2);IF(markersSUB1)=(markersSUB2)THENreplace(muster,placea,1.0);replace(muster,placeb,1.0);ELIF(markersSUB1)="x"THENreplace(muster,placea,1.0);replace(muster,placeb,2.0);ELSEreplace(muster,placeb,1.0);replace(muster,placea,2.0);FI;END PROCbelegemuster;PROCbelegemuster(THESAURUS CONSTauswahl,angebot,ZUSTAND VARmuster):TEXT VARvname;INT VARzeiger;get(auswahl,vname,zeiger);WHILEvname<>""REPreplace(muster,link(angebot,vname),1.0);get(auswahl,vname,zeiger);PER;END PROCbelegemuster;PROCermittlevariablenliste(THESAURUS VARangebot):INT VARi;FORiFROM1UPTOdimensionREPinsert(angebot,variablenname(i));PER;FORiFROM1UPTOcodimensionREPinsert(angebot,covariablenname(i));PER;.END PROCermittlevariablenliste;THESAURUS PROCmengederkombinationen(ROWmaxTEXT CONSTkombnamen,INT CONSTanzahlkombinationen):THESAURUS VARangebot:=emptythesaurus;INT VARi;FORiFROM1UPTOanzahlkombinationenREPinsert(angebot,kombnamen(i));PER;angebot.END PROCmengederkombinationen;BOOL PROCwiezeitdiagramm(INT CONSTart):art=zeitdgORart=histdgORart=tabdg.END PROCwiezeitdiagramm;INT PROCdarstellungsart(TEXT CONSTdarstellungsname):IFdarstellungsname=zuebersTHENzeitdgELIFdarstellungsname=puebersTHENphasdgELIFdarstellungsname=huebersTHENhistdgELIFdarstellungsname=tuebersTHENtabdgELSE0FI.END PROC
+darstellungsart;PROCrefreshundnrausgabe:giblsgnraus;do("refresh submenu");END PROCrefreshundnrausgabe;PROCplotendundregenerate:plotendundregenerate(TRUE);END PROCplotendundregenerate;PROCplotendundregenerate(BOOL CONSTmitlsgnrausgabe):plotend;do("regenerate menuscreen;");IFmitlsgnrausgabeTHENgiblsgnraus;FI;END PROCplotendundregenerate;PROCfehlerbehandlungnachgraphik(BOOL CONSTmitlsgnr):enablestop;IF NOTiserrorTHENplotendundregenerate(mitlsgnr)ELSEzeigekopfbalken;FI;END PROCfehlerbehandlungnachgraphik;LETlsgwindowy=20,lsgwindowx=3,lsgwindowb=30,lsgwindowh=2;WINDOW VARlsgwindow:=window(lsgwindowx,lsgwindowy,lsgwindowb,lsgwindowh);PROCgiblsgnraus:erase(lsgwindow);outframe(lsgwindow);cursor(lsgwindow,1,1);putline(lsgwindow,lsgnrtext1);put(lsgwindow,lsgnrtext2);.END PROCgiblsgnraus;PROCevtneueaktivierungausgeben(INT CONSTsubmenu):INT VARi;aktivierunggeaendert:=FALSE;FORiFROM1UPTO8REP IF(aktivierung(submenu)(i)XORaktivaktuell(i))ORerstesaufklappen(submenu)THENaktivierunggeaendert:=TRUE;aktivierung(submenu)(i):=aktivaktuell(i);IFaktivaktuell(i)THENdo("activate ("+text(i)+")");ELSEdo("deactivate ("+text(i)+")");FI;FI;PER;erstesaufklappen(submenu):=FALSE;.END PROCevtneueaktivierungausgeben;PROCuebergebeinfotextfuerwd(DATASPACE CONSTwdinfo):infofuerwd:=wdinfo;END PROCuebergebeinfotextfuerwd;PROCzeigekopfbalken:cursor(1,1);out(invers(subtext(kopfbalken,1,headzeilenlaenge)));END PROCzeigekopfbalken;END PACKETlsbearbeitungsmenu;
+