unit TasksStr;
uses LightPT;
var AllTaskNames: array of string;
procedure CheckTaskT(name: string);
begin
FlattenOutput;
ClearOutputListFromSpaces;
case name of
'Char1': begin
CheckData(Input := Empty);
var a := Arr(word(48), word(100), word(68), word(1102), word(8594));
CheckOutputSeq(a);
end;
'Char2': begin
CheckData(Input := Empty);
var a := Arr(Chr(169), Chr(931), Chr(960), Chr(1105), Chr(8551), Chr(8734), Chr(8776), Chr(8986), Chr(9327), Chr(9775), Chr(9917), Chr(10054));
CheckOutputSeq(a);
end;
'CharTable': begin
CheckData(Input := Empty);
var obj := new ObjectList;
for var i:=32 to 1200 do
begin
Obj.Add(i); obj.Add(Chr(i));
end;
CheckOutputSeq(obj);
end;
'CharPredSucc': begin
CheckData(Input := |cChar|);
GenerateTests('b','c','2','y');
var c := LightPT.Chr(0);
CheckOutput(Pred(c),Succ(c));
end;
'CharIs': begin
CheckData(Input := |cChar|);
GenerateTests('b','X','2','ю');
var c := LightPT.Chr(0);
CheckOutputSeq(Arr(c.IsLetter, c.IsDigit, c.IsLower, c.IsUpper));
end;
'CharRange1': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('0'..'9')+Arr('a'..'z')+Arr('а'..'я'));
end;
'CharRange2': begin
CheckData(Input := |cChar|);
GenerateTests('a','V','z','Ю','д','1');
var c := LightPT.Chr(0);
CheckOutput(c in 'a'..'z');
end;
'CharRange3': begin
CheckData(Input := |cChar|);
GenerateTests('a','V','ю','A','1','Z');
var c := LightPT.Chr(0);
CheckOutput(c in 'A'..'Z');
end;
'CharRange4': begin
CheckData(Input := |cChar|);
GenerateTests('a','V','z','A','1','Ю');
var c := LightPT.Chr(0);
CheckOutput(c.ToLower in 'a'..'z');
end;
'CharTransform': begin
CheckData(Input := |cChar|);
var c := LightPT.Chr(0);
GenerateTests('a','V','z','A','1','Ю');
if c.IsLower then
c := c.ToUpper
else if c.IsUpper then
c := c.ToLower;
CheckOutput(c);
end;
'Strings1': begin
CheckData(Input := Empty);
CheckOutputSeq('трос'.ToCharArray);
end;
'Strings2': begin
CheckData(Input := Empty);
CheckOutputSeq('сорт'.ToCharArray);
end;
'Strings2a': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('грозы','осы','ложки','кошки'));
end;
'Strings3': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('миг', 'мир', 'пир', 'пар'));
end;
'Strings4': begin
CheckData(Input := Empty);
var hs := HSet('кошка','мышка','комик','комок','ножка','ножик','коржик','камыш');
var hs1 := OutputListAsStrings.ToHashSet;
if (hs*hs1).Count >= 5 then
TaskResult := Solved
else begin
TaskResult := PartialSolution;
ColoredMessage($'Выведите еще по крайней мере {5-(hs*hs1).Count} правильных слов',MessageColorT.MsgColorGray)
end;
end;
'Strings5': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('********************', '010101010101010101010101010101'));
end;
'Strings6': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('кросс', 'атолл', 'Гримм', 'быстрее'));
end;
'String13': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(9);
end;
'String15': begin
ClearOutputListFromSpaces;
CheckData(Input := |cStr|);
var s := Str(0);
CheckOutput(s.Count(c -> c.IsLetter and c.IsLower));
end;
'String16': begin
ClearOutputListFromSpaces;
CheckData(Input := |cStr|);
GenerateTests('HeLLo','привет','ИНФОРМАТИКА');
var s := Str(0);
CheckOutput(s.ToLower);
end;
'StrCode': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('рсйгжу', 'сткдзф', 'тулеих'));
end;
'StrDeCode': begin
CheckData(Input := Empty);
CheckOutput('мы великие взломщики шифров');
end;
'StrCountAlg': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr(3,5,2));
end;
'StrGenerate1': begin
CheckData(Input := Empty);
CheckOutput('abcdefghijklmnopqrstuvwxyz');
end;
'StrGenerate2': begin
CheckData(Input := Empty);
CheckOutput('каждый охотник желает знать где сидит фазан');
end;
'StrCount': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(14,15);
end;
'StrCountOf': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(3,5,2);
end;
'StrCreate1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput('abcdefghijklmnopqrstuvwxyz');
end;
'StrCreate2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput('каждый охотник желает знать где сидит фазан');
end;
'StrWhere1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutputSeq(Arr('каждый охотник желает знать где сидит фазан','буря мглою небо кроет вихри снежные крутя'));
end;
'StrWhere2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutputSeq(Arr('1223113221113','12112571191460'));
end;
'StrSelect1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutputSeq(Arr('вфсѐ!ндмпя!ожвп!лспжу!гйцсй!тожзоьж!лсфуѐ'));
end;
'StrSelect2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
var a := Arr(1082,1072,1078,1076,1099,1081,32,1086,1093,1086,1090,1085,1080,1082,32,1078,1077,1083,1072,1077,1090,32,1079,1085,1072,1090,1100,32,1075,1076,1077,32,1089,1080,1076,1080,1090,32,1092,1072,1079,1072,1085 );
var a1 := a.Select(x->word(x));
CheckOutputSeq(a1);
end;
'StrMinMax': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutputSeq(Arr('а','ё'));
end;
'StrWhereSelect': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(23);
end;
'StrAllAny1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(True,False);
end;
'StrAllAny2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(True,False);
end;
'StrEachCount1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
var res := 'The grass is always greener on the other side of the fence'.EachCount;
var ob := new ObjectList;
foreach var x in res.ToArray do
ob.Add(x);
CheckOutputSeq(ob);
end;
'StrEachCount2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
var res := 'L1o24st tim437364e is nev567e9r fo089874u89nd041342 ag8432ai6897'.EachCount;
var ob := new ObjectList;
foreach var x in res.ToArray do
if x.Key.IsDigit then
ob.Add(x);
CheckOutputSeq(ob);
end;
'StrOrder1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(' adefgilmnorstuv');
end;
'StrOrder2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput('0','1','3','5','8');
end;
'ToWords1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput('головой жак звонарь как однажды сломал фонарь');
end;
'ToWords2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput('как жак сломал фонарь однажды звонарь головой');
end;
'ToWordsWhere1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput('косой кривоногий косой косой косой косой');
end;
'Pos1': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutputSeq(Arr(2,9));
end;
'Pos2': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutputSeq(Arr(7));
end;
'Delete1': begin
CheckData(Input := Empty);
CheckOutput('информатика');
end;
'Delete2': begin
CheckData(Input := Empty);
CheckOutput('программирование');
end;
'Delete3': begin
CheckData(Input := Empty);
CheckOutput('алгоритм');
end;
'Insert1': begin
CheckData(Input := Empty);
CheckOutput('Петр Первый был первым русским императором');
end;
'Insert2': begin
CheckData(Input := Empty);
CheckOutput('Петр первый был великим русским императором');
end;
'StrChange1': begin
CheckData(Input := Empty);
CheckOutput('красный коричневый желтый зеленый бирюзовый синий фиолетовый');
end;
'StrChange2': begin
CheckData(Input := Empty);
CheckOutput('Алекс у Мелиссы украл кораллы, а Мелисса у Алекса украла кларнет');
end;
'StrBorder0': begin
CheckData(Input := Empty);
CheckOutput('наклонный жирный подчеркнутый жирный жирный подчеркнутый');
end;
'StrBorder1': begin
CheckData(Input := Empty);
CheckOutput('наклонный жирный подчеркнутый жирный жирный подчеркнутый');
end;
'StrSlice1': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('Pascal','ABC','NET'));
end;
'StrSlice2': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('клад зарыт на юго западе', 'клад зарыт на юго западе'));
end;
'StrSlice4': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('mydocument', 'docx', 'picture', 'jpg'));
end;
'Str_Number0': begin
CheckData(Input := Empty);
CheckOutput('оценка1', 'балл2', 'окно3');
end;
'Str_Number03': begin
CheckData(Input := Empty);
ClearOutputListFromSpaces;
CheckOutput(386);
end;
'Str_Number04': begin
ClearOutputListFromSpaces;
CheckData(Input := |cInt|);
GenerateTests(2,34,567,67890);
var n := Int(0);
CheckOutput(n.ToString.Select(s->s.ToDigit).Sum);
end;
'Str_Number05': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(31.6666666666667,27.0,42.0);
end;
'Str_Number06': begin
ClearOutputListFromSpaces;
CheckData(Input := Empty);
CheckOutput(420);
end;
end;
end;
initialization
CheckTask := CheckTaskT;
AllTaskNames := Arr('Char1','Char2','CharTable','CharPredSucc','CharIs',
'CharRange1','CharRange2','CharRange3','CharRange4','CharTransform',
'Strings1','Strings2','Strings2a','Strings3','Strings4','Strings5','Strings6','String13','String15','String16',
'StrCode','StrDeCode','StrCountAlg','StrGenerate1','StrGenerate2','StrCount','StrCountOf',
'StrCreate1','StrCreate2','StrWhere1','StrWhere2','StrSelect1','StrSelect2',
'StrMinMax','StrWhereSelect','StrAllAny1','StrAllAny2','StrEachCount1','StrEachCount2',
'StrOrder1','StrOrder2','ToWords1','ToWords2','ToWordsWhere1',
'Pos1','Pos2','Delete1','Delete2','Delete3','Insert1','Insert2',
'StrChange1','StrChange2','StrBorder0','StrBorder1',
'StrSlice1','StrSlice2','StrSlice4',
'Str_Number0','Str_Number03','Str_Number04','Str_Number05','Str_Number06' );
finalization
end.