Informační tok Funkční structura Datová struktura ER model Modulová struktura Typová struktura Relační model Dokumentace


[Celkový datový model] [Funkce] [Externí rohraní] [Stavové diagramy] [Datové elementy] [Entity] [Relace]
[Databáze] [Události] [Materiály] [Generovací funkce] [Vyhodnocovací funkce] [Konfigurace] [Uživatelé] [Projekt] [Home]



Vyhodnocovací funkce
STD_Line
(State Transition Diagram)


Vytvořeno: 12-08-1995 18:45:15
Poslední změna: 12-10-2002 12:15:05

Auxiliary function: Print data line for state transition table.

Modul

Module: State Transition Diagram

Zdrojový kód:

PROCEDURE STD_Line(Id$,Source$,Function$,State$,i%,t%)
BEGIN
/*
  auxiliary function for state transition table
  print one line of table
*/

  IF i%=3 THEN
    PRINT {"ARIAL",UNDERLINE,8} TAB(16*t%-3),"|";
  ELSE
    PRINT {"ARIAL",8} TAB(16*t%-3),"|";
  END

  // search for transition to be filled into current field

  // determine event for current column
  FOREACH Transition AS T1 WHERE T1.Name=Id$
                             AND T1.Sourcestate=Source$
                             AND T1.Function=Function$ DO
      // count Combinationparts
      FOREACH Combinationpart AS Cbm WHERE Cbm.Function=Function$
                                       AND Cbm.Transition=T1.Name
                                       AND Cbm.Sourcestate=T1.Sourcestate DO
        cbm1%=COUNT();
        BREAK;
      END
      // determine required transition (or equivalent)
      FOREACH Transition AS T2 WHERE T2.Sourcestate=State$
                               AND T2.Function=Function$ DO
                               
        exists%=0;
        // count Combinationparts
        FOREACH Combinationpart AS Cbm WHERE Cbm.Function=Function$
                                       AND Cbm.Transition=T2.Name
                                       AND Cbm.Sourcestate=T2.Sourcestate DO
          cbm2%=COUNT();
          BREAK;
        END
        // compare elements in pairs
        IF cbm1%=cbm2% THEN
          exists%=1;
          FOREACH Combinationpart AS C1 WHERE C1.Function=Function$
                                  AND C1.Transition=T1.Name
                                  AND C1.Sourcestate=T1.Sourcestate DO
            eq%=0;
            FOREACH Combinationpart AS C2 WHERE C2.Function=Function$
                                    AND C2.Transition=T2.Name
                                    AND C2.Sourcestate=T2.Sourcestate
                                    AND C2.Event=C1.Event
                                    AND C2.Negated=C1.Negated DO
              eq%=1;
            END
            IF eq%=0 THEN
              exists%=0;
            END
          END
        END
        // fill in field information
        IF exists%=1 THEN
          FOR State AS S1 WHERE S1.Name=T2.Targetstate
                          AND S1.Function=Function$ DO
            IF i%=3 THEN
              PRINT {"ARIAL",UNDERLINE,8} TAB(16*t%),MID$(S1.Boxname,i%*12+1,12);
            ELSE
              PRINT {"ARIAL",8} TAB(16*t%),MID$(S1.Boxname,i%*12+1,12);
            END
          END
        END
      END
  END

END


Generováno: 16.10.2003 7:41 Systém: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\Projekt03.csf Generováno systémem case/4/0
Vygeneroval: Administrator Soubor: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\html\31889.htm (C) microTOOL GmbH 2002