Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
35
Task/ABC-problem/Refal/abc-problem.refal
Normal file
35
Task/ABC-problem/Refal/abc-problem.refal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
$ENTRY Go {
|
||||
= <Each Show (<Blocks>) <Words>>;
|
||||
};
|
||||
|
||||
Each {
|
||||
s.F (e.Arg) = ;
|
||||
s.F (e.Arg) t.I e.R = <Mu s.F t.I e.Arg> <Each s.F (e.Arg) e.R>;
|
||||
};
|
||||
|
||||
Show {
|
||||
(e.Word) e.Blocks = <Prout e.Word ': ' <CanMakeWord (e.Word) e.Blocks>>;
|
||||
};
|
||||
|
||||
Blocks {
|
||||
= ('BO') ('XK') ('DQ') ('CP') ('NA')
|
||||
('GT') ('RE') ('TG') ('QD') ('FS')
|
||||
('JW') ('HU') ('VI') ('AN') ('OB')
|
||||
('ER') ('FS') ('LY') ('PC') ('ZM');
|
||||
};
|
||||
|
||||
Words {
|
||||
= ('A') ('BARK') ('BOOK') ('TREAT')
|
||||
('common') ('squad') ('CoNfUsE');
|
||||
};
|
||||
|
||||
CanMakeWord {
|
||||
(e.Word) e.Blocks = <CanMakeWord1 (<Upper e.Word>) e.Blocks>;
|
||||
}
|
||||
|
||||
CanMakeWord1 {
|
||||
() e.Blocks = T;
|
||||
(s.Ltr e.Word) e.Blocks1 (e.X s.Ltr e.Y) e.Blocks2
|
||||
= <CanMakeWord1 (e.Word) e.Blocks1 e.Blocks2>;
|
||||
(e.Word) e.Blocks = F;
|
||||
};
|
||||
21
Task/ABC-problem/SETL/abc-problem.setl
Normal file
21
Task/ABC-problem/SETL/abc-problem.setl
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
program ABC_problem;
|
||||
blocks := ["BO","XK","DQ","CP","NA","GT","RE","TG","QD","FS",
|
||||
"JW","HU","VI","AN","OB","ER","FS","LY","PC","ZM"];
|
||||
|
||||
words := ["A","BARK","BOOK","treat","common","Squad","CoNfUsE"];
|
||||
|
||||
loop for word in words do
|
||||
print(rpad(word, 8), can_make_word(word, blocks));
|
||||
end loop;
|
||||
|
||||
proc can_make_word(word, blocks);
|
||||
loop for letter in word do
|
||||
if exists block = blocks(i) | to_upper(letter) in block then
|
||||
blocks(i) := "";
|
||||
else
|
||||
return false;
|
||||
end if;
|
||||
end loop;
|
||||
return true;
|
||||
end proc;
|
||||
end program;
|
||||
Loading…
Add table
Add a link
Reference in a new issue