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
Check_Conditions
(Implementation Tree)


Vytvořeno: 12-11-1995 11:25:54
Poslední změna: 12-04-2002 10:30:41

Checks the specified implementation tree for formal correctness of the condition boxes in the diagram.

Modul

Module: Implementation Tree

Zdrojový kód:

PROCEDURE Check_Conditions FOR FUNCDEF
BEGIN
/*
  check conditions; print name of parent nodes under which unclear
  combinations of conditions are arranged
*/

  PRINT {"ARIAL",12,BOLD} "Test podmínek v implementačním stromu ";
  PRINT {"ARIAL",12,BOLD,ITALIC} CONV$(Funcdef.Boxname),NL(2);

  found%=0;
  
  // Conditions
  first%=0;
    FOREACH Implbox AS C1 WHERE C1.Module=Funcdef.Module AND
                                C1.Funcdefno=Funcdef.Funcdefno AND
                                C1.Parentpage<>0 AND
                               (C1.Boxtyp="in" OR
                                C1.Boxtyp="ex" OR
                                C1.Boxtyp="sw" OR
                                C1.Boxtyp="pp")
                              DO
      lonely%=0;
      CALL TestIMPCond(C1.Module, C1.Funcdefno, C1.Boxtyp, C1.X, C1.Parentpage, C1.Parentno, 0, lonely%);
      IF lonely%=0 THEN
        // missing condition
        found%=1;
        IF C1.Boxtyp="in" THEN
          PRINT {"ARIAL",10} "osamocená inkluzivní podmínka ";
        ELSIF C1.Boxtyp="ex" THEN
          PRINT {"ARIAL",10} "osamocená exkluzivní podmínka ";
        ELSIF C1.Boxtyp="sw" THEN
          PRINT {"ARIAL",10} "osamocené větvení case ";
        ELSIF C1.Boxtyp="pp" THEN
          PRINT {"ARIAL",10} "osamocené paralelní větvení ";
        END
        FOR Implbox WHERE Implbox.Boxno=C1.Parentno AND
                          Implbox.Page=C1.Parentpage AND
                          Implbox.Module=C1.Module AND
                          Implbox.Funcdefno=C1.Funcdefno DO
          IF Implbox.Boxtyp="em" THEN
            PRINT {"ARIAL",10} "strukturní element pod",NL;
          ELSE
            PRINT {"ARIAL",10} "element pod ";
            PRINT {"ARIAL",10,ITALIC} CONV$(Implbox.Boxname);
            PRINT {"ARIAL",10,ITALIC} " : ",CONV$(C1.Boxname),NL;
          END
        END
        First%=1;
      END
    END
    IF first%=1 THEN
      PRINT NL;
    END
    // missing child elements underneath condition
    first%=0;
    FOREACH Implbox AS C1 WHERE C1.Module=Funcdef.Module AND
                                C1.Funcdefno=Funcdef.Funcdefno AND
                                C1.Parentpage<>0 AND
                               (C1.Boxtyp="in" OR
                                C1.Boxtyp="ex" OR
                                C1.Boxtyp="lo" OR
                                C1.Boxtyp="sw" OR
                                C1.Boxtyp="ex" OR
                                C1.Boxtyp="re" OR
                                C1.Boxtyp="it" OR
                                C1.Boxtyp="pp") DO
      children%=0;
      FOREACH Implbox WHERE Implbox.Parentno=C1.Boxno AND
                            Implbox.Page=C1.Page AND
                            Implbox.Module=C1.Module AND
                            Implbox.Funcdefno=C1.Funcdefno DO
        children%=children%+COUNT();
      END
      IF children%=0 THEN
        IF first%=0 THEN
          PRINT {"ARIAL",10} "Podmínky bez pod ně připojených prvků:",NL;
          first%=1;
          found%=1;
        END
        PRINT {"ARIAL",10,ITALIC} TAB(4),CONV$(C1.Boxname),NL;
      END
    END
  
    IF first%=1 THEN
      PRINT NL;
    END
  
    // conditions without connection to parent element
    first%=0;
    FOREACH Implbox AS C1 WHERE C1.Module=Funcdef.Module AND
                                C1.Funcdefno=Funcdef.Funcdefno AND
                                C1.Boxname<>Funcdef.Boxname AND
                                C1.Parentpage=0 AND NOT
                               (C1.Page=1 AND C1.X=286 AND C1.Y=15) AND
                               (C1.Boxtyp="in" OR
                                C1.Boxtyp="ex" OR
                                C1.Boxtyp="lo" OR
                                C1.Boxtyp="sw" OR
                                C1.Boxtyp="ex" OR
                                C1.Boxtyp="re" OR
                                C1.Boxtyp="it" OR
                                C1.Boxtyp="pp") DO
      IF first%=0 THEN
        PRINT {"ARIAL",10} "Nepřipojení podmínky:",NL;
        first%=1;
        found%=1;
      END
      PRINT {"ARIAL",10,ITALIC} TAB(4),CONV$(c1.Boxname),NL;
    END

  IF found%=0 THEN
    PRINT {"ARIAL",10} TAB(4),"Žádné formální chyby podmínek.",NL;
  END
  PRINT NL;

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\23175.htm (C) microTOOL GmbH 2002