March 13, 2023
Второй доклад 2023 по бесшумной проверке. Материалы
Функции для конструктора заданий. Пока без начального кода. Это нужно вносить в класс LT
CheckInput(массив типов) CheckInputCount(n) - облегченная проверка CheckInput2Count(i) - не меньше i CheckInputTypes(a: array of System.Type); CheckOutput(список значений) CheckOutputSeq(последовательность значений базового типа) CheckOutputSeq(a: ObjectList) CheckOutputString(str: string); - при проверке вывода в виде строки
Формирование вывода для проверки - класс ObjectList
var ol := new ObjectList; ol.Add(o) ol.AddRange(sequence) ol.AddFill(count,elem) ol.AddArithm(n,a0,step) ol.AddGeom(n,a0,step) CheckOutputSeq(ol)
Фильтрация и преобразование вывода
FlattenOutput - когда выводится массив - преобразовать его в список значений FilterOnlyNumbers; FilterOnlyNumbersAndBools; ClearOutputListFromSpaces; ConvertStringsToNumbersInOutputList;
CompareValues(o1, o2: Object) CompareArrValues(a,lst: array of object) CompareValuesWithOutput(params a: array of object) - это чтобы не кидать исключение, а сделать что то еще CompareTypeWithOutput(params a: array of System.Type) - редко function ToObjArray(a: array of integer) function ToObjArray(a: array of real) function ToObjArray(a: array of string) function ToObjArray(a: array of char) function ToObjArray(a: array of boolean)
Считывание типизированного ввода-вывода в позиции i
function IsInt(i: integer) := InputList[i] is integer; function IsRe(i: integer) := InputList[i] is real; function IsStr(i: integer) := InputList[i] is string; function IsBoo(i: integer) := InputList[i] is boolean; function IsChr(i: integer) := InputList[i] is char; function OutIsInt(i: integer) := OutputList[i] is integer; function OutIsRe(i: integer) := OutputList[i] is real; function OutIsStr(i: integer) := OutputList[i] is string; function OutIsBoo(i: integer) := OutputList[i] is boolean; function OutIsChr(i: integer) := OutputList[i] is char; function Int(i: integer): integer; - это входные данные function Re(i: integer): real; function Str(i: integer): string; function Boo(i: integer): boolean; function Chr(i: integer): char; function OutAsInt(i: integer): integer; function OutAsRe(i: integer): real; function OutAsBoo(i: integer): boolean; function OutAsChr(i: integer): char; function OutAsStr(i: integer): string;
Считывание следующего элемента (нескольких)
function Int: integer; - ввод function Re: real; function Str: string; function Boo: boolean; function Chr: char; function Int2: (integer, integer) function Re2: (real, real) function IntArr(n: integer): array of integer function ReArr(n: integer): array of real
Преобразование всего (части) ввода (вывода) в типизированный массив
function InputListAsIntegers: array of integer function InputListAsReals: array of real function InputListAsBooleans: array of boolean function InputListAsChars: array of char function InputListAsStrings: array of string
function InputListAsIntegers: array of integer function InputListAsReals: array of real function InputListAsBooleans: array of boolean function InputListAsChars: array of char function InputListAsStrings: array of string function OutputListAsIntegers: array of integer function OutputListAsReals: array of real function OutputListAsBooleans: array of boolean function OutputListAsChars: array of char function OutputListAsStrings: array of string function InputListSliceAsIntegers(a,b: integer): array of integer function InputListSliceAsReals(a,b: integer): array of real function InputListSliceAsBooleans(a,b: integer): array of boolean function InputListSliceAsChars(a,b: integer): array of char; function InputListSliceAsStrings(a,b: integer): array of string function OutputListSliceAsIntegers(a,b: integer): array of integer function OutputListSliceAsReals(a,b: integer): array of real function OutputListSliceAsBooleans(a,b: integer): array of boolean; function OutputListSliceAsChars(a,b: integer): array of char; function OutputListSliceAsStrings(a,b: integer): array of string