Advertisement
ridjis

jul2003

Jun 13th, 2014
524
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MODULE Jul2003;
  2. FROM InOut IMPORT WriteLn,WriteString;
  3. FROM InOut IMPORT WriteLn,WriteString;
  4. FROM Stek IMPORT StekTip,Push,Top,Pop,MakeNull,Empty;
  5.  
  6. FROM Info IMPORT InfoTip;
  7.  
  8.  
  9. PROCEDURE zanimljiv(broj : CARDINAL) : BOOLEAN;
  10. BEGIN
  11.   IF broj <= 1 THEN  
  12.     RETURN FALSE
  13.   ELSIF broj MOD 7 = 2 THEN  
  14.     RETURN TRUE
  15.   ELSIF zanimljiv(broj DIV 10) OR zanimljiv(broj DIV 9) THEN  
  16.     RETURN zanimljiv(broj DIV 8)
  17.   ELSE  
  18.     RETURN FALSE
  19.   END        
  20. END zanimljiv;
  21.  
  22. PROCEDURE Szanimljiv(broj: CARDINAL) : BOOLEAN;
  23. VAR
  24.    rez: BOOLEAN;  
  25.    ok,jos: BOOLEAN;
  26.    s: StekTip;  
  27.    el: InfoTip;
  28. BEGIN
  29. MakeNull(s);
  30.    WHILE (broj > 1) AND (broj MOD 7 <> 2) DO
  31.       el.broj:= broj;    
  32.       el.adr:= 1;
  33.       Push(s,el,ok);    
  34.       broj:= broj DIV 10;
  35.    END;  
  36.    IF broj <= 1 THEN
  37.       rez:= FALSE;    
  38.    ELSE
  39.       rez:= TRUE;      
  40.    END;
  41.    jos:= TRUE;  
  42.    WHILE jos AND NOT Empty(s) DO
  43.       Top(s,el,ok);      
  44.       Pop(s,ok);
  45.       broj:= el.broj;    
  46.       IF el.adr = 1 THEN
  47.          el.PrviRez:= rez;        
  48.          el.adr:= 2;
  49.          Push(s,el,ok);        
  50.          broj:= broj MOD 9;
  51.          jos:= FALSE;    
  52.       ELSIF el.adr = 2 THEN
  53.          el.DrugiRez:= rez;        
  54.          IF el.PrviRez OR el.DrugiRez THEN
  55.             el.adr:= 3;          
  56.             Push(s,el,ok);
  57.             broj:= broj DIV 8;            
  58.             jos:= FALSE;
  59.          ELSE        
  60.             rez:= FALSE;            
  61.          END;        
  62.        END;      
  63.     END;    
  64. UNTIL Empty(s);
  65. RETURN rez;
  66. END Szanimljiv;
  67.  
  68. BEGIN
  69.    IF zanimljiv(93) THEN
  70.       WriteLn;
  71.       WriteString("Zanimljiv");      
  72.    ELSE
  73.       WriteLn;
  74.       WriteString("nije");      
  75.    END;  
  76.    IF Szanimljiv(93) THEN  
  77.       WriteLn;
  78.       WriteString("Zanimljiv");    
  79.    ELSE  
  80.       WriteLn;      
  81.       WriteString("nije");
  82.    END;  
  83. END Jul2003.
  84.  
  85.  DEFINITION MODULE Info;
  86.  TYPE
  87.  InfoTip = RECORD
  88.  broj: CARDINAL;
  89.  adr: CARDINAL;
  90.  PrviRez,DrugiRez: BOOLEAN;
  91.  END;
  92.  END Info.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement