Skip to content

Commit

Permalink
Добавлены примеры и команды перевода
Browse files Browse the repository at this point in the history
  • Loading branch information
ComdivByZero authored and ComdivByZero committed Jan 4, 2022
1 parent ab67387 commit 54ec38f
Show file tree
Hide file tree
Showing 6 changed files with 184 additions and 13 deletions.
10 changes: 10 additions & 0 deletions examples.html
Expand Up @@ -80,6 +80,16 @@ <h3 lang="en"> Examples in the sandbox </h3>
checking of uninitialized variable.
</p>

<p>
<a lang="ru" href="sandbox-insert-sort.html">Сортировка вставкой</a>
<a lang="en" href="sandbox-insert-sort.html">Insert sort</a>
</p>

<p>
<a lang="ru" href="sandbox-8-queens.html">Задача размещения 8 ферзей</a>
<a lang="en" href="sandbox-8-queens.html">Eight queens problem</a>
</p>

</article>
</div>

Expand Down
81 changes: 81 additions & 0 deletions sandbox-8-queens.html
@@ -0,0 +1,81 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>

<title>Vostok translator</title>

<link rel='stylesheet' type='text/css' href='vostokbox.css'/>
<script src='https://ajaxorg.github.io/ace-builds/src-min-noconflict/ace.js'></script>
<script src='vostokbox.js'></script>
</head>

<body>

<div style='width:1200px'>
<div id='vostokbox-editor'>MODULE Queens; IMPORT Out;
VAR
solutionsCount, ln: INTEGER;
x: ARRAY 8 OF INTEGER;
a: ARRAY 8 OF BOOLEAN;
b, c: ARRAY 15 OF BOOLEAN;

PROCEDURE Write; VAR i: INTEGER;
BEGIN
FOR i := 0 TO LEN(x) - 1 DO Out.Int(x[i], 2) END;
INC(ln); IF ln = 4 THEN Out.Ln; ln := 0 ELSE Out.String(" ") END
END Write;

PROCEDURE Init; VAR i: INTEGER;
BEGIN
FOR i := 0 TO LEN(a) - 1 DO a[i] := TRUE; x[i] := -1 END;
FOR i := 0 TO LEN(b) - 1 DO b[i] := TRUE; c[i] := TRUE END;
solutionsCount := 0; ln := 0
END Init;

PROCEDURE Try(i: INTEGER);
VAR j: INTEGER;
BEGIN
IF i < LEN(x) THEN
FOR j := 0 TO LEN(x) - 1 DO
IF a[j] & b[i + j] & c[i - j + 7] THEN
x[i] := j; a[j] := FALSE; b[i + j] := FALSE; c[i - j + 7] := FALSE;
Try(i + 1);
x[i] := -1; a[j] := TRUE; b[i + j] := TRUE; c[i - j + 7] := TRUE
END
END
ELSE
Write;
INC(solutionsCount)
END
END Try;

PROCEDURE All*;
BEGIN
Init;
Try(0);
Out.String("Count of solutions: "); Out.Int(solutionsCount, 0); Out.Ln
END All;

END Queens.</div>

<div id='vostokbox-log'></div>

</div>

<div id='vostokbox-runners'></div>

<script>
var box;

box = VostokBox.createByDefaultIdentifiers(document, ace);
VostokBox.addRootRunner(box, 'Queens.All');
VostokBox.addRunner(box, ':INFO');
VostokBox.addRunner(box, ':INFO log');
VostokBox.addRunner(box, ':LIST');
VostokBox.addRunner(box, ':TO-C');
</script>

</body>
</html>
4 changes: 3 additions & 1 deletion sandbox-hello.html
Expand Up @@ -46,7 +46,9 @@
VostokBox.addRunner(box, 'Hello.Gone');
VostokBox.addRunner(box, ':INFO');
VostokBox.addRunner(box, ':INFO log');
VostokBox.addRunner(box, ':LIST');
VostokBox.addRunner(box, ':TO-C');
VostokBox.addRunner(box, ':TO-JAVA');
VostokBox.addRunner(box, ':TO-JS');
</script>

</body>
Expand Down
67 changes: 67 additions & 0 deletions sandbox-insert-sort.html
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>

<title>Vostok translator</title>

<link rel='stylesheet' type='text/css' href='vostokbox.css'/>
<script src='https://ajaxorg.github.io/ace-builds/src-min-noconflict/ace.js'></script>
<script src='vostokbox.js'></script>
</head>

<body>

<div style='width:1200px'>
<div id='vostokbox-editor'>MODULE InsertSort; IMPORT Out;

PROCEDURE Write(a: ARRAY OF INTEGER); VAR i: INTEGER;
BEGIN
FOR i := 0 TO LEN(a) - 1 DO Out.Int(a[i], 0); Out.String(" ") END; Out.Ln
END Write;

PROCEDURE Sort*(VAR arr: ARRAY OF INTEGER);
VAR i, j, a: INTEGER;
BEGIN
FOR i := 1 TO LEN(arr) - 1 DO
a := arr[i];
j := i - 1;
WHILE (j >= 0) & (a < arr[j]) DO
arr[j + 1] := arr[j];
DEC(j)
END;
arr[j + 1] := a
END
END Sort;

PROCEDURE Go*;
VAR i: INTEGER;
a: ARRAY 17 OF INTEGER;
BEGIN
FOR i := 0 TO LEN(a) - 1 DO a[i] := LEN(a) - i END;
Write(a);
Sort(a);
Write(a)
END Go;

END InsertSort.</div>

<div id='vostokbox-log'></div>

</div>

<div id='vostokbox-runners'></div>

<script>
var box;

box = VostokBox.createByDefaultIdentifiers(document, ace);
VostokBox.addRootRunner(box, 'InsertSort.Go');
VostokBox.addRunner(box, ':TO-C');
VostokBox.addRunner(box, ':TO-JAVA');
VostokBox.addRunner(box, ':TO-JS');
</script>

</body>
</html>
5 changes: 5 additions & 0 deletions sandbox.html
Expand Up @@ -38,6 +38,11 @@
box = VostokBox.createByDefaultIdentifiers(document, ace);
VostokBox.addRootRunner(box, 'Sandbox.Go');
VostokBox.addRunner(box, ':INFO');
VostokBox.addRunner(box, ':INFO log');
VostokBox.addRunner(box, ':LIST');
VostokBox.addRunner(box, ':TO-C');
VostokBox.addRunner(box, ':TO-JAVA');
VostokBox.addRunner(box, ':TO-JS');
</script>

</body>
Expand Down
30 changes: 18 additions & 12 deletions vostokbox.js
Expand Up @@ -70,7 +70,7 @@ var VostokBox;
}

function addRunner(box, command, root) {
var div, inp, run, addel;
var div, inp, run, add, del;
div = box.doc.createElement('div');
inp = box.doc.createElement('input', 'type="text"');
inp.className = 'vostokbox-command-line';
Expand All @@ -80,23 +80,29 @@ var VostokBox;
run.onclick = function() {
requestRun(box, inp.value);
};
addel = box.doc.createElement('button');
add = box.doc.createElement('button');
box.script = inp;
add.innerText = 'Add';
add.onclick = function() {
addRunner(box, inp.value, false);
};
div.appendChild(inp);
div.appendChild(run);
div.appendChild(add);

del = box.doc.createElement('button');
if (root) {
box.script = inp;
addel.innerText = 'Add';
addel.onclick = function() {
addRunner(box, inp.value, false);
del.innerText = 'Cln';
del.onclick = function() {
box.log.innerHTML = '';
};
} else {
addel.innerText = 'Del';
addel.onclick = function() {
del.innerText = 'Del';
del.onclick = function() {
box.runners.removeChild(div);
};
}

div.appendChild(inp);
div.appendChild(run);
div.appendChild(addel);
div.appendChild(del);

box.runners.appendChild(div);
}
Expand Down

0 comments on commit 54ec38f

Please sign in to comment.