Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
46
Task/Balanced-brackets/Simula/balanced-brackets.simula
Normal file
46
Task/Balanced-brackets/Simula/balanced-brackets.simula
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
BEGIN
|
||||
INTEGER U;
|
||||
U := ININT;
|
||||
BEGIN
|
||||
|
||||
TEXT PROCEDURE GENERATE(N); INTEGER N;
|
||||
BEGIN
|
||||
INTEGER R;
|
||||
TEXT T;
|
||||
T :- NOTEXT;
|
||||
WHILE N > 0 DO BEGIN
|
||||
R := RANDINT(1,2,U);
|
||||
T :- T & (IF R = 1 THEN "[" ELSE "]");
|
||||
N := N - 1;
|
||||
END;
|
||||
GENERATE :- T;
|
||||
END GENERATE;
|
||||
|
||||
BOOLEAN PROCEDURE BALANCED(T); TEXT T;
|
||||
BEGIN
|
||||
INTEGER LEVEL;
|
||||
CHARACTER BRACE;
|
||||
BOOLEAN DONE;
|
||||
T.SETPOS(1);
|
||||
WHILE T.MORE AND NOT DONE DO BEGIN
|
||||
BRACE := T.GETCHAR;
|
||||
IF BRACE = '[' THEN LEVEL := LEVEL + 1;
|
||||
IF BRACE = ']' THEN LEVEL := LEVEL - 1;
|
||||
IF LEVEL < 0 THEN DONE := TRUE;
|
||||
END;
|
||||
BALANCED := LEVEL = 0;
|
||||
END BALANCED;
|
||||
|
||||
INTEGER I,M;
|
||||
TEXT T;
|
||||
FOR I := 1 STEP 1 UNTIL 40 DO BEGIN
|
||||
M := RANDINT(0,10,U);
|
||||
T :- GENERATE(M);
|
||||
IF BALANCED(T) THEN OUTTEXT(" ") ELSE OUTTEXT(" NOT");
|
||||
OUTTEXT(" BALANCED: ");
|
||||
OUTTEXT(T);
|
||||
OUTIMAGE;
|
||||
END;
|
||||
|
||||
END;
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue