LightPT - убрал CheckOutputNew

TasksArr.pas, TasksStr.pas - правки
This commit is contained in:
Mikhalkovich Stanislav 2024-07-04 13:43:35 +03:00
parent 7f988c9bb2
commit 46f34dae13
3 changed files with 28 additions and 21 deletions

View file

@ -193,20 +193,21 @@ function ToObjArray(a: sequence of boolean): array of object;
{ Основные процедуры для проверки правильности ввода-вывода }
{=========================================================================}
// Самые часто используемые: CheckInput, CheckOutput, CheckOutputSeq
// Самые часто используемые: CheckOutput
// CheckInput заменено на CheckData
/// Проверить типы вводимых данных
/// Проверить типы вводимых данных. Пользуйтесь CheckData(Input := cInt * 2)
procedure CheckInput(a: array of System.Type);
/// Проверить значения при выводе
/// Проверить значения при выводе. Основной способ проверки
procedure CheckOutput(params arr: array of object);
/// Проверить значения при выводе. Сообщения ColoredMessage гасить. Нужно для повторных вызовов CheckOutput
procedure CheckOutputSilent(params arr: array of object);
/// Проверить значения при выводе
/// Проверить значения при выводе. Основной способ проверки
procedure CheckOutput(a: ObjectList);
/// Проверить значения при выводе. Сообщения ColoredMessage гасить. Нужно для повторных вызовов CheckOutput
procedure CheckOutputSilent(a: ObjectList);
/// Проверить, что данные не вводились
/// Проверить, что данные не вводились. Пользуйтесь CheckData(Empty)
procedure CheckInputIsEmpty;
/// Проверить, что помимо начального ввода других данных не вводилось
@ -253,9 +254,11 @@ procedure CheckOutputSeqSilent(a: sequence of boolean);
procedure CheckOutputSeqSilent(a: sequence of object);
/// Проверить последовательность значений при выводе. Не выводить сообщения ColoredMessages
procedure CheckOutputSeqSilent(a: sequence of word);
/// Проверить последовательность значений при выводе. Не выводить сообщения ColoredMessages
procedure CheckOutputSeqSilent(a: ObjectList);
/// Проверить вывод в виде строки
procedure CheckOutputString(str: string);
@ -271,17 +274,6 @@ function CompareArrValues(a,lst: array of object): boolean;
/// Сравнить значения с выводом
function CompareValuesWithOutput(params a: array of object): boolean;
// Для совместимости
procedure CheckOutputNew(params arr: array of object);
procedure CheckOutputSeqNew(a: sequence of integer);
procedure CheckOutputSeqNew(a: sequence of real);
procedure CheckOutputSeqNew(a: sequence of string);
procedure CheckOutputSeqNew(a: sequence of char);
procedure CheckOutputSeqNew(a: sequence of boolean);
procedure CheckOutputSeqNew(a: sequence of object);
procedure CheckOutputSeqNew(a: sequence of word);
procedure CheckOutputSeqNew(a: ObjectList);
{============================================================================================}
{ Подпрограммы для проверки начального ввода-вывода, представленного в заготовке задания }
{============================================================================================}
@ -559,7 +551,7 @@ procedure GenerateTests<T1,T2,T3>(params a: array of (T1,T2,T3));
procedure ConvertStringsToNumbersInOutputList;
/// Если в OutputList массивы, вытянуть их в единый список
procedure FlattenOutput;
/// Очистить выходной список от пробелов
/// Очистить выходной список от пробелов, возникающих в методах расширения типа a.Print. Очень редко очищать не надо при решении задач на символы с пробелами
procedure ClearOutputListFromSpaces;
/// Отфильтровать в выходном списке только числа
procedure FilterOnlyNumbers;
@ -2220,11 +2212,14 @@ procedure CheckOutputAfterInitialSeqSilent(seq: sequence of char); begin Silent
procedure CheckOutputAfterInitialSeqSilent(seq: sequence of object); begin Silent := True; CheckOutputAfterInitialSeq(seq); Silent := False; end;
procedure CheckOutputAfterInitialSeqSilent(seq: ObjectList); begin Silent := True; CheckOutputAfterInitialSeq(seq); Silent := False; end;
var OutputListIsClearedFromSpaces := False;
procedure ClearOutputListFromSpaces;
begin
if OutputListIsClearedFromSpaces then exit;
OutputList := OutputList.Where(s -> (not (s is string)) or ((s as string) <> ' ')).ToList;
OutputList := OutputList.Where(s -> (not (s is char)) or ((char(s)) <> ' ')).ToList;
OutputListIsClearedFromSpaces := True;
end;
procedure FilterOnlyNumbers;

View file

@ -387,7 +387,11 @@ begin
CheckData(Input := Empty);
CheckOutput(ArrGen(10,1,i->i*2).Sum);
end;
'ЗаполнениеСумма3_add': begin
CheckData(Input := |cInt|*1);
var n := Int;
CheckOutput(ArrGen(n,i -> (i+1)*(i+1)).Sum);
end;
// 'Arr_Transf1' 'Arr_Transf1a' 'Arr_Transf2' 'Arr_Transf3' 'Arr_Transf4' 'Arr_Transf5' 'Arr_Transf7' 'Arr_Transf8' 'Arr_Transf9'- задачник
'Arr_Transf6': begin
FilterOnlyNumbersAndBools;

View file

@ -44,7 +44,7 @@ begin
end;
'CharRange1': begin
CheckData(Input := Empty);
CheckOutput('0'..'9', 'a'..'z', 'а'..'я');
CheckOutput('0'..'9', 'a'..'z', 'А'..'Я');
end;
'CharRange2': begin
CheckData(Input := |cChar|);
@ -283,7 +283,7 @@ begin
end;
'StrSlice2': begin
CheckData(Input := Empty);
CheckOutputSeq(Arr('клад зарыт на юго западе', 'зашифрованное сообщение'));
CheckOutput('клад зарыт на юго западе', 'зашифрованное сообщение');
end;
'StrSlice4': begin
CheckData(Input := Empty);
@ -293,6 +293,14 @@ begin
CheckData(Input := Empty);
CheckOutput('оценка1', 'балл2', 'окно3');
end;
'Str_Number01': begin
CheckData(Input := Empty);
CheckOutput('25', '476', '2296');
end;
'Str_Number02': begin
CheckData(Input := Empty);
CheckOutput(25,476,3.1415,2.8);
end;
'Str_Number03': begin
CheckData(Input := Empty);
CheckOutput(386);
@ -326,6 +334,6 @@ initialization
'Pos1','Pos2','Delete1','Delete2','Delete3','Insert1','Insert2',
'StrChange1','StrChange2','StrBorder0','StrBorder1',
'StrSlice1','StrSlice2','StrSlice4',
'Str_Number0','Str_Number03','Str_Number04','Str_Number05','Str_Number06' );
'Str_Number0','Str_Number01','Str_Number02','Str_Number03','Str_Number04','Str_Number05','Str_Number06' );
finalization
end.