unit Tasks1Arr; uses LightPT; var AllTaskNames: array of string; procedure CheckTaskT(name: string); begin ClearOutputListFromSpaces; case name of 'Arr0': begin CheckData(Empty); CheckOutput(5,4,3,2,1,777,5,4,3,2,1,777); end; 'Arr1': begin CheckData(Empty); CheckOutput(777,1,1,1,777); end; 'Arr2': begin var n := 5; CheckData(Input := cInt*n); GenerateTests(10,tInt*n); var il := IntArr(n); CheckOutput(il.Select(x->x+1)); end; 'Arr3': begin var n := 5; CheckData(Input := |cInt|*n); GenerateTests(10,tInt*n); var il := IntArr(n); CheckOutput(il.Select(x->x*2)); end; 'Arr4': begin var n := 10; CheckData(Input := cInt*n); GenerateTests(10,tInt*n); var il := IntArr(n); CheckOutput(il+il.Select(x->x*x)); end; 'Arr5': begin var n := 10; CheckData(Input := cInt*n); GenerateTests(10, tInt*n); var il := IntArr(n); CheckOutput(il, il.Reverse); end; 'ArrErr1': begin TaskResult := TaskStatus.ErrFix end; 'ArrErr2': begin TaskResult := TaskStatus.ErrFix end; 'Arr1Sum': begin var n := 10; CheckData(Input := cInt*n); GenerateTests(10, tInt*n); var il := InputListAsIntegers.Select(x->x*0.1); CheckOutput(il, il.Sum); end; 'Arr2Prod': begin CancelMessagesIfInitial := False; // ! var n := 8; CheckData(cRe*n, cRe*n); GenerateTests(10, tRe(1,10,1)*n); var il := ReArr(n).Select(x->x); CheckOutputAfterInitial(il.Product); end; 'Arr1_If': begin CancelMessagesIfInitial := False; var n := 10; CheckData(cInt*n, cInt*n); GenerateTests(10, tInt*n); var il := IntArr(n); CheckOutput(il, il.Where(x->x.IsEven)); end; 'Arr2_If': begin CancelMessagesIfInitial := False; var n := 10; CheckData(cInt*n, cInt*n); GenerateTests(10,tInt*n); var il := IntArr(n); CheckOutput(il, il.Where((x,i)->i.IsOdd)); end; 'Arr0_Count': begin CancelMessagesIfInitial := False; var n := 10; CheckData(|cInt|*n, |cInt|*n); GenerateTests(10,tInt*n); var il := IntArr(n); CheckOutput(il, il.Count(x->x.IsOdd)); end; 'Arr1_Sum': begin var n := InputList.Count; GenerateTests(10, tInt*n); var a := IntArr(n); var il := a.Where(x->x in 3..5).ToArray; CheckOutput(a, il, il.sum); end; 'Arr2_Count': begin var n := InputList.Count; GenerateTests(10, tInt*n); var a := IntArr(n); CheckOutput(a, a.CountOf(2), a.CountOf(3), a.CountOf(4), a.CountOf(5)); end; 'Arr1_MinMax': begin var n := InputList.Count; GenerateTests(10, tInt*n); var a := IntArr(n); CheckOutput(a, a.Min); end; 'Arr2_MinMax': begin var n := InputList.Count; GenerateTests(10,tInt*n); var a := IntArr(n); CheckOutput(a, a.Max); end; 'Arr3_MinMax': begin var n := InputList.Count; GenerateTests(10,tInt*n); var a := IntArr(n); CheckOutput(a, a.IndexMin); end; 'ПоискВМассиве': begin var n := 10; CheckData(cInt*n, cInt*n); GenerateTests(10, tInt*n); var a := IntArr(n); CheckOutputAfterInitial(5 in a); end; 'ПоискВМассивеСтрок': begin CheckData(InitialInput := |cStr|, InitialOutput := |cStr|*8); GenerateTests('Козлов','Серов','Иванова','Петров','Умнова','Хулиганкин','Белова','Ослов'); var s := Str(0); var a := Arr('Козлов','Серов','Иванова','Петров','Умнова','Хулиганкин','Белова','Ослов'); CheckOutputAfterInitial(s in a); end; 'Заполнение1': begin CheckData(Empty); CheckOutput(0,1,4,9,16,25,36,49,64,81); end; 'Заполнение2Арифм': begin CheckData(Empty); CheckOutput(ArrGen(10,1,x->x+2)); end; 'Заполнение3Арифм': begin CheckData(Empty); CheckOutput(ArrGen(10,1,x->x+2)); end; 'Заполнение4Арифм': begin CheckData(Empty); CheckOutput(ArrGen(10,1.0,x->x+0.5)); end; 'Заполнение1Геом': begin CheckData(Empty); CheckOutput(ArrGen(10,1,x->x*2)); end; 'ЗаполнениеЧисламиФибоначчи': begin CheckData(Empty); CheckOutput(ArrGen(10,1,1,(x,y)->x+y)); end; 'СоседниеЭлементы1': begin var n := 10; CheckData(cInt*n, cInt*n); GenerateTests(10,tInt*n); var a := IntArr(n); var ol := new ObjectList; ol.AddRange(a.Pairwise.Where(\(x,y)->xt[1])); CheckOutputAfterInitial(ol); end; 'СоседниеЭлементы2': begin var n := 10; CheckData(cInt*n, cInt*n); GenerateTests(10, tInt*n); var a := IntArr(n); var ol := new ObjectList; ol.AddRange(a); ol.Add(a.Pairwise.Where(\(x,y)->x begin var n := Random(5,10); var a := ArrRandomInteger(n); InputList.AddTestData(|n|+a); end; var a := IntArr(n); var ares := a.Reverse.ToArray; CheckOutputAfterInitial(ares); end; 'СтрокаКакМассив1': begin CancelMessagesIfInitial := False; CheckData(InitialOutput := |cStr|*2); CheckOutput('бочка','ночка','дочка','кочка','почка','точка'); end; 'СтрокаКакМассив2': begin CheckData(Empty); CheckOutput('миг','мир','пир','пар'); end; 'СтрокаКакМассив3': begin CancelMessagesIfInitial := False; var s := 'на паркете написана абракадабра'; CheckData(InitialOutput := |cStr|*1); var ol := new ObjectList; ol.Add(s); ol.Add(s.CountOf('а')); CheckOutputSeq(ol); end; 'СтрокаКакМассив4': begin CheckData(Empty); CheckOutput(True); end; 'СтрокаКакМассив5': begin CheckData(Empty); CheckOutput('абракадабра','эбрэкэдэбрэ'); end; end; end; initialization CheckTask := CheckTaskT; AllTaskNames := Arr('Arr0','Arr1','Arr2','Arr3','Arr4','Arr5', 'ArrErr1','ArrErr2','Arr1Sum','Arr2Prod','Arr1_If','Arr2_If','Arr0_Count','Arr1_Sum','Arr2_Count', 'Arr1_MinMax','Arr2_MinMax','Arr3_MinMax', 'ПоискВМассиве','ПоискВМассивеСтрок', 'Заполнение1','Заполнение2Арифм','Заполнение3Арифм','Заполнение4Арифм','Заполнение1Геом','ЗаполнениеЧисламиФибоначчи', 'СоседниеЭлементы1','СоседниеЭлементы2', 'ИнвертированиеМассива1','ИнвертированиеМассива2', 'СтрокаКакМассив1','СтрокаКакМассив2','СтрокаКакМассив3','СтрокаКакМассив4','СтрокаКакМассив5' ); finalization end.