pascalabcnet/TestSuite/CompilationSamples/Tasks1Loops.pas

865 lines
24 KiB
ObjectPascal
Raw Permalink Normal View History

2023-08-14 00:32:18 +03:00
unit Tasks1Loops;
uses LightPT;
var AllTaskNames: array of string;
procedure CheckTaskT(name: string);
begin
ClearOutputListFromSpaces;
case name of
'LoopErr2': begin
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
TaskResult := ErrFix; // Это задача на исправление ошибок. Откомпилировалась 1 раз - и внеслась в базу
2023-08-14 00:32:18 +03:00
if OutputString.ToString = '*' then
ColoredMessage('Сотри ; после do!',MsgColorGray);
if OutputString.ToString = '*'*50 then
ColoredMessage('Молодец! И помни: нельзя ставить ; после do!',MsgColorGray);
end;
'LoopErr3': begin
TaskResult := ErrFix;
if OutputList.Count = 11 then
ColoredMessage('Используй begin end для объединения нескольких операторов в один!',MsgColorGray);
if OutputList.Count = 20 then
ColoredMessage('Молодец! Если в цикле - несколько действий, окайми их операторными скобками begin-end',MsgColorGray);
end;
'Loop_Arithm1': begin
var n := 10;
CheckData(InitialOutput := |cInt|*n);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutputAfterInitial(ArrGen(n,1,i->i+2));
2023-08-14 00:32:18 +03:00
end;
'Loop_Arithm2': begin
CheckData(Input := Empty);
var sq := ObjectList.New.AddArithm(10,19,-2).AddArithm(9,1.1,0.1);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'For1': begin
CheckData(Empty);
TaskResult := InitialTask;
ColoredMessage('Что лучше в данном случае: цикл loop или цикл for?',msgColorGray);
end;
'For1a': begin
var n := 10;
CheckData(InitialOutput := |cInt|*n);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
var sq := ObjectList.New.AddArithm(n,2,2).AddArithm(n,2,2);
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'For1b': begin
var n := 10;
CheckData(InitialOutput := |cInt|*n);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
var sq := ObjectList.New.AddArithm(n,1,2).AddArithm(n,1,2);
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'For1b_step': begin
ClearOutputListFromSpaces;
CheckData(Empty);
var sq := ObjectList.New.AddArithm(10,2,2).AddArithm(10,1,2);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'For1c': begin
ClearOutputListFromSpaces;
CheckData(Empty);
var sq := ObjectList.New.AddArithm(11,15,-1);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'For1d': begin
ClearOutputListFromSpaces;
CheckData(Empty);
var sq := ObjectList.New.AddArithm(10,20,-2);
CheckOutputSeq(sq);
end;
'For1e': begin
ClearOutputListFromSpaces;
CheckData(Empty);
var sq := ObjectList.New.AddArithm(10,5,5).AddArithm(7,40,-4);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'For1f': begin
ClearOutputListFromSpaces;
CheckData(Empty);
var sq := ObjectList.New.AddArithm(9,1.9,-0.1).AddArithm(9,1.9,-0.1);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'ForErr1': begin
TaskResult := ErrFix; // Задание на исправление ошибок
ColoredMessage('Всегда описывайте переменную i в заголовке цикла for',msgColorGray);
end;
'ForErr2': begin
TaskResult := ErrFix;
var a := OutputString.ToString.ToWords(NewLine);
ColoredMessage('Описывайте переменную i в заголовке цикла for: for var i',msgColorGray);
if a.Length < 2 then
ColoredMessage('Между циклами необходимо вызвать команду Println перехода на новую строку',msgColorRed);
end;
'ForErr3': begin
TaskResult := ErrFix;
ColoredMessage('Запомните: операторы не могут писаться до begin основной программы',msgColorGray);
end;
'ForErr4': begin
CheckData(Empty);
var sq := ObjectList.New.AddArithm(11,15,-1);
CheckOutputSeq(sq);
end;
'ForErr5': begin
CheckData(Empty);
//CheckInitialOutputValues('*');
CheckOutputSeq(ArrFill(50,'*'));
end;
'ForErr6': begin
TaskResult := ErrFix;
ColoredMessage('Если в цикле выполняется два и более действий, окаймите их begin end',msgColorGray);
end;
'ForErr7': begin
TaskResult := ErrFix;
ColoredMessage('В данном случае лучше использовать цикл loop',msgColorGray);
end;
'Tabl1': begin
CheckData(InitialOutput := |cInt|*20);
var sq := (1..10).SelectMany(x -> |x,x*x,x*x*x|);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'Tabl2': begin
CheckData(Empty);
var sq := (1..10).SelectMany(x -> |object(x),object(sqrt(x))|); // приводим к object поскольку типы разные
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'Tabl4': begin
CheckData(Empty);
var sq := PartitionPoints(1.1,1.9,8).SelectMany(x -> |x,x*x|);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'Sum1': begin
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
FilterOnlyNumbers;
2023-08-14 00:32:18 +03:00
// Частичные решения не проработаны. Они крайне редки конечно
TaskResult := PartialSolution; // Решение состоит в последовательном решении нескольких родственных задач
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
if CompareValuesWithOutput(4905) then // CompareValuesWithOutput используется именно для частичного решения
ColoredMessage('Отлично! Теперь найдите сумму квадратов всех двузначных чисел', MsgColorGray)
else if CompareValuesWithOutput(328065) then
TaskResult := Solved;
2023-08-14 00:32:18 +03:00
end;
'Sum1a': begin
FilterOnlyNumbers;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckData(Input := cInt*2);
2023-08-14 00:32:18 +03:00
var (a,b) := (Int(0),Int(1));
TestCount := 10;
GenerateTestData := tnum -> begin
var (a,b) := Random2(1..20);
if a>b then Swap(a,b);
InputList.AddTestData(|a,b|);
end;
CheckOutput((a..b).Sum);
end;
'Sum2': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput((11..99).Step(2).Sum);
end;
'Sum3': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput((1..9).Select(x->x*0.1+1.0).Sum);
end;
'Sum4': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput((1..9).Select(x->1/x).Sum);
end;
'Prod1': begin
TaskResult := PartialSolution;
FilterOnlyNumbers;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
// CompareValuesWithOutput - более низкоуровневая чем CheckOutput
// Она просто сравнивает значения с выводом и возвращает True/False
2023-08-14 00:32:18 +03:00
if CompareValuesWithOutput(3*3*3*3*3*3*3) then
ColoredMessage('Вычислите 4 в степени 6', MsgColorGray)
else if CompareValuesWithOutput(4*4*4*4*4*4) then
ColoredMessage('Вычислите 5 в степени 5', MsgColorGray)
else if CompareValuesWithOutput(5*5*5*5*5) then
TaskResult := Solved
else if not CompareValuesWithOutput(2*2*2*2*2) then
TaskResult := BadSolution
end;
'Prod2_Power': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput(2**3,3**7,4**6,5**5);
end;
'Prod3_Fact': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput(2*3*4*5*6*7,2*3*4*5*6*7*8,2*3*4*5*6*7*8*9*10);
end;
'Geom1': begin
FilterOnlyNumbers;
CheckData(InitialOutput := |cInt|*11);
var sq := ObjectList.New.AddGeom(15,1,3);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutputAfterInitial(sq);
2023-08-14 00:32:18 +03:00
end;
'Geom2': begin
FilterOnlyNumbers;
CheckData(Empty);
var sq := ObjectList.New.AddGeom(11,1,10);
sq.Add(integer.MaxValue);
if OutputList.Count = 11 then
ColoredMessage('Выведите integer.MaxValue - самое большое целое типа integer',MsgColorMagenta);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'Geom3': begin
FilterOnlyNumbers;
CheckData(Empty);
var sq := ObjectList.New.AddGeom(20,1.0,10.0);
sq.Add(real.MaxValue);
if OutputList.Count = 20 then
ColoredMessage('Выведите real.MaxValue - самое большое целое типа real',MsgColorMagenta);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'Geom4': begin
FilterOnlyNumbers;
CheckData(Empty);
var sq := ObjectList.New.AddGeom(8,1.0,0.999);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(sq);
2023-08-14 00:32:18 +03:00
end;
'Loop_If_1': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(InitialInput := |cInt|*n);
GenerateTests(10,tInt(1,100)*n);
var a := IntArr(n);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(a.Where(x->x.IsEven));
2023-08-14 00:32:18 +03:00
end;
'Loop_If_2': begin
var n := 10;
CheckData(Input := |cInt|*n);
TestCount := 10;
GenerateTestData := tnum -> begin
var x := ArrRandomInteger(n,1,100);
x[0] := 1;
x[2] := -1;
x[3] := 9;
x[4] := 10;
x[5] := 99;
x[6] := 100;
InputList.AddTestData(x);
end;
var lst := new ObjectList;
for var i:=0 to n-1 do
if Int(i) in 10..99 then
lst.Add(Int(i));
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'Loop_If_2a': begin
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(20,tInt(1,100)*n);
var lst := new ObjectList;
for var i:=0 to n-1 do
if Int(i).Divs(3) and Int(i).NotDivs(5) then
lst.Add(Int(i));
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'Loop_If_3': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(Input := |cInt|*n);
var lst := new ObjectList;
GenerateTests(10,tInt(1,100)*n);
for var i:=1 to n do
if i.IsEven then
lst.Add(Int(i-1));
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'Loop_If_4': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,100)*n);
var lst := new ObjectList;
for var i:=0 to n-1 do
if Int(i).IsEven then
lst.Add(i+1);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'Loop_If_5_Count': begin
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,100)*n);
var c := 0;
for var i:=0 to n-1 do
if Int(i).IsEven then
c += 1;
CheckOutput(c);
end;
'Loop_If_7_Count': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,6)*n);
var c := 0;
for var i:=0 to n-1 do
if Int(i) in 2..5 then
c += 1;
CheckOutput(c);
end;
'Loop_If_8_Count': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,10)*n);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
var c := 0;
2023-08-14 00:32:18 +03:00
for var i:=0 to n-1 do
if Int(i) not in 2..5 then
c += 1;
CheckOutput(c);
end;
'Loop_If_9_Count': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,100)*n);
var c := 0;
for var i:=0 to n-1 do
if (Int(i) in 10..99) and Int(i).IsOdd then
c += 1;
CheckOutput(c);
end;
'Loop_If_1_Sum': begin
FilterOnlyNumbersAndBools;
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,10)*n);
var s := 0;
for var i:=0 to n-1 do
if Int(i)<5 then
s += Int(i);
CheckOutput(s);
end;
'Loop_If_2_Sum': begin
FilterOnlyNumbersAndBools;
var N := Int(0);
CheckData(Input := |cInt|*(N+1));
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
TestCount := 5;
GenerateTestData := tnum -> begin
var N := Random(5, 10);
var a := ArrRandomInteger(N,1,10);
InputList.AddTestData(|N|+a);
end;
2023-08-14 00:32:18 +03:00
var s := 0;
for var i:=1 to N do
if Int(i).IsEven then
s += Int(i);
CheckOutput(s);
end;
'Зацикливание2': begin
FilterOnlyNumbers;
CheckOutputSeq(1..9);
if TaskResult = Solved then
ColoredMessage('Не ставьте ; после do!');
end;
'Wh1': begin
FilterOnlyNumbers;
CheckData(InitialOutput := |cInt|*18);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(Arr(1..9)*3);
2023-08-14 00:32:18 +03:00
end;
'Wh2': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutputSeq(ArrGen(10,1,x->x+2));
end;
'Wh3': begin
FilterOnlyNumbers;
CheckData(Empty);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(ArrGen(45,99,x->x-2));
2023-08-14 00:32:18 +03:00
end;
'Дюймы1': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutputSeq(ArrGen(7,17.49,x->x-2.51));
end;
'Дюймы2': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput(7);
end;
'Дюймы3': begin
FilterOnlyNumbers;
CheckData(Input := cRe * 2);
GenerateTests(10,tRe(2,10,1)*2);
CheckOutput(Trunc(Re(0)/Re(1)));
end;
'Дюймы4': begin
FilterOnlyNumbers;
CheckData(Input := cRe * 2);
CheckOutput(Re(0) - Trunc(Re(0)/Re(1)));
end;
'Sum1W': begin
FilterOnlyNumbers;
CheckData(InitialOutput := |cInt|);
CheckOutput(165,165);
end;
'Sum2W': begin
FilterOnlyNumbers;
CheckData(InitialOutput := |cInt|);
CheckOutput(385,385);
end;
'Sum3W': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput(1035);
end;
'Умножение1': begin
FilterOnlyNumbers;
CheckData(Empty);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(ArrGen(14,1,x->x*2));
2023-08-14 00:32:18 +03:00
end;
'Умножение2': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput(11);
end;
еление1': begin
FilterOnlyNumbers;
CheckData(Empty);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(ArrGen(6,26.5,x->x/2));
2023-08-14 00:32:18 +03:00
end;
еление2': begin
FilterOnlyNumbers;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckData(Empty);
2023-08-14 00:32:18 +03:00
CheckOutput(7);
end;
'Digits': begin
FilterOnlyNumbers;
CheckData(Empty);
CheckOutput(4,3,5,2,6,1,7);
end;
'Bank_ForLeaders': begin
FilterOnlyNumbers;
CheckData(Empty);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(ArrGen(9,109000.0,x->x*1.09));
2023-08-14 00:32:18 +03:00
end;
'Digits1': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(2,23,345,4567,56789,678901,7890123);
var c := Abs(Int(0));
var res := c.ToString.Select(cc->cc.ToDigit).Count;
CheckOutput(res);
end;
'Digits2': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(2,23,345,4567,56789,678901,7890123);
var c := Abs(Int(0));
var res := c.ToString.Select(cc->cc.ToDigit).Sum;
CheckOutput(res);
end;
'Digits3': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(2,23,345,4567,56789,678901,7890123);
var c := Abs(Int(0));
var res := c.ToString.Select(cc->cc.ToDigit).Count(x->x.IsEven);
CheckOutput(res);
end;
'Digits4': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(2,23,345,4567,56789,678901,7890123);
var c := Abs(Int(0));
var res := c.ToString.Select(cc->cc.ToDigit).Where(x->x.IsOdd).Sum;
CheckOutput(res);
end;
'Digits5': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(1,23,345,4567,56789,678901,7890123);
var c := Abs(Int(0));
var res := c.ToString.First.ToDigit;
CheckOutput(res);
end;
'BinNumSystem': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(23,14,481);
var x := Int(0);
var L := new List<integer>;
while x<>0 do
begin
L.Add(x mod 2);
x := x div 2;
end;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(L);
2023-08-14 00:32:18 +03:00
end;
'BinNumSystem2': begin
FilterOnlyNumbers;
CheckData(InitialInput := |cInt|);
GenerateTests(23,14,255);
var x := Int(0);
var L := new List<integer>;
while x<>0 do
begin
L.Add(x mod 2);
x := x div 2;
end;
CheckOutput(L.Count(x->x=1));
end;
'Difficult_Power2': begin
FilterOnlyNumbersAndBools;
CheckData(InitialInput := |cInt|);
GenerateTests(23,14,256,16);
var x := Int(0);
while x mod 2 = 0 do
x := x div 2;
CheckOutput(x = 1);
end;
'Min1': begin
CheckData(InitialInput := |cRe|*2);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
GenerateTests(10,tRe(1,100)*2);
2023-08-14 00:32:18 +03:00
CheckOutput(Min(Re(0),Re(1)),Max(Re(0),Re(1)));
end;
'Min2': begin
CheckData(InitialInput := |cRe|*2);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
GenerateTests(10,tRe(1,100)*2);
2023-08-14 00:32:18 +03:00
CheckOutput(Min(Re(0),Re(1)));
end;
'Min3': begin
CheckData(InitialInput := |cRe|*3);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
GenerateTests(10,tRe(1,100)*3);
2023-08-14 00:32:18 +03:00
CheckOutput(Min(Re(0),Re(1),Re(2)));
end;
'SeriesMin2': begin
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(10,tInt(1,100)*n);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
// Лучше var a := IntArr(n)
2023-08-14 00:32:18 +03:00
CheckOutput(InputListAsIntegers.Max - InputListAsIntegers.Min)
end;
'Break1': begin
var n := 10;
CheckData(Input := |cInt|*n);
GenerateTests(20,tInt(1,10)*n);
CheckOutput(3 in InputListAsIntegers);
end;
'Break2': begin
TestCount := 3;
GenerateTestData := tnum -> begin
case tnum of
1: InputList.AddTestData(|1,2,8,4,5,6,7,1,2,9|);
2: InputList.AddTestData(|1,1,3|);
3: InputList.AddTestData(|7,6,4,3|);
end;
end;
var n := 10;
var f := false;
for var i:=0 to n-1 do
begin
var x := Int(i);
if x = 3 then
begin
f := True;
break;
end;
end;
CheckOutput(f)
end;
'Break3': begin
var n := 10;
TestCount := 3;
GenerateTestData := tnum -> begin
case tnum of
1: InputList.AddTestData(|1,2,3,4,5,6,7,1,2,3|);
2: InputList.AddTestData(|1,1,9|);
3: InputList.AddTestData(|7,6,8|);
end;
end;
var f := 0;
for var i:=0 to n-1 do
begin
var x := Int(i);
if x >= 8 then
begin
f := x;
break;
end;
end;
CheckOutput(f)
end;
'Break4': begin
CheckData(Input := |cInt|);
GenerateTests(123,1023,134,11110);
var x := Int(0);
var h := False;
while x<>0 do
begin
var c := x mod 10;
if c = 0 then
begin
h := True;
break
end;
x := x div 10;
end;
CheckOutput(h)
end;
'BreakIntheMiddle1': begin
var i := 0;
var c := 0;
repeat
var x := Int(i);
i += 1;
if x = 0 then
break;
if x < 5 then
c += 1;
until False;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
TestCount := 10; // Это немного неудобно - надо не забыть присвоить!
2023-08-14 00:32:18 +03:00
GenerateTestData := tnum -> begin
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
var n := Random(7,12); // Разобраться, как работает в Test mode
2023-08-14 00:32:18 +03:00
var a := ArrRandomInteger(n,1,10);
a[^1] := 0;
InputList.AddTestData(a);
end;
CheckOutput(c)
end;
'BreakIntheMiddle2': begin
var i := 0;
var c := 0;
repeat
var x := Int(i);
i += 1;
if x = 0 then
break;
c += x;
until False;
TestCount := 10;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
//CheckData(Input := |cInt|*i);
2023-08-14 00:32:18 +03:00
GenerateTestData := tnum -> begin
var n := Random(7,12);
var a := ArrRandomInteger(n,1,10);
a[^1] := 0;
InputList.AddTestData(a);
end;
CheckOutput(c)
end;
'Divisors': begin
CheckData(Input := |cInt|);
GenerateTests(72,234,17,2);
var x := Int(0);
var L := new List<integer>;
for var i:=2 to x-1 do
if x mod i = 0 then
L.Add(i);
CheckOutputSeq(L);
end;
'SimpleNumbers': begin
CheckData(Input := |cInt|);
GenerateTests(72,234,17,2);
var x := Int(0);
var L := new List<integer>;
for var i:=2 to x-1 do
if x mod i = 0 then
L.Add(i);
CheckOutput(L.Count = 0);
end;
'сс1': begin
CheckOutputString((9*'*'+#13#10) * 5);
end;
'сс2': begin
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
// Уже можно использовать многострочную строку! Но лень переписывать. Работает.
2023-08-14 00:32:18 +03:00
CheckOutputString(9*'1'+#13#10 + 9*'2'+#13#10 + 9*'3'+#13#10 + 9*'4'+#13#10 + 9*'5'+#13#10)
end;
'сс3': begin
CheckOutputString(5*('123456789'+#13#10));
end;
'сс4': begin
CheckOutputString('012345'+#13#10 + '123456'+#13#10 + '234567'+#13#10 + '345678'+#13#10 + '456789'+#13#10 );
end;
'сс5': begin
CheckOutputString('12345'+#13#10 + '246810'+#13#10 + '3691215'+#13#10 + '48121620'+#13#10 + '510152025'+#13#10 );
end;
'сс6': begin
CheckOutputString(' 1 2 3 4 5'+#13#10 + ' 2 4 6 8 10'+#13#10 + ' 3 6 9 12 15'+#13#10 + ' 4 8 12 16 20'+#13#10 + ' 5 10 15 20 25'+#13#10 );
end;
'сс7': begin
var sb := new StringBuilder;
for var i:=1 to 19 do
begin
for var j:=1 to 19 do
sb.Append($'{(i*j),4}');
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'сс8': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to 5 do
sb.Append($'({i},{j}) ');
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'ссi1': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to i do
sb.Append('*');
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'ссi2': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to 2*i do
sb.Append('*');
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'ссi3': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to 2*i-1 do
sb.Append('*');
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'ссi4': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to 6-i do
sb.Append('*');
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'ссi5': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to i do
sb.Append(i);
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'ссi6': begin
var sb := new StringBuilder;
for var i:=1 to 5 do
begin
for var j:=1 to i do
sb.Append(j);
sb.Append(#13#10);
end;
CheckOutputString(sb.ToString);
end;
'Combinations': begin
CheckData(Empty);
var lst := ObjectList.New;
for var c := 'a' to 'z' do
for var i := 0 to 9 do
begin
lst.Add(c);
lst.Add(i);
end;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'Primes': begin
FilterOnlyNumbersAndBools;
CheckData(Empty);
var lst := ObjectList.New;
for var n := 2 to 1000 do
begin
var IsPrime := True;
for var i:=2 to Round(Sqrt(n)) do
if n mod i = 0 then
begin
IsPrime := False;
break;
end;
if IsPrime then
lst.Add(n);
end;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'Счастливые билеты': begin
FilterOnlyNumbersAndBools;
CheckData(Empty);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(55252);
2023-08-14 00:32:18 +03:00
end;
'1_ПрямоугольныеТреугольники': begin
FilterOnlyNumbers;
CheckData(Empty);
var lst := ObjectList.New;
for var a:=1 to 20 do
for var b:=1 to 20 do
for var c:=1 to 20 do
if (a*a + b*b = c*c) and (a<b) then
lst.AddRange(|a,b,c|);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'2_Перебор вариантов': begin
CheckData(Empty);
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(4,6,12,3);
2023-08-14 00:32:18 +03:00
end;
'ДесятичныеЧисла': begin
FilterOnlyNumbers;
CheckData(Empty);
var lst := ObjectList.New;
for var d1:=1 to 9 do
for var d2:=0 to 9 do
for var d3:=0 to 9 do
begin
var a := d1*100 + d2*10 + d3;
if (d1 + d2 + d3).Divs(3) and (d1<d2) and (d2<d3) then
lst.Add(a);
end;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
'ДвоичныеЧисла': begin
FilterOnlyNumbers;
CheckData(Empty);
var lst := ObjectList.New;
for var d1:=0 to 1 do
for var d2:=0 to 1 do
for var d3:=0 to 1 do
begin
var a := d1*4 + d2*2 + d3;
Lst.AddRange(|d1,d2,d3,a|);
end;
Async await merge (#3177) * s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
CheckOutput(lst);
2023-08-14 00:32:18 +03:00
end;
end;
end;
initialization
CheckTask := CheckTaskT;
AllTaskNames := Arr('LoopErr2','LoopErr3','Loop_Arithm1','Loop_Arithm2',
'For1','For1a','For1b','For1b_step','For1c','For1d','For1e','For1f',
'ForErr1','ForErr2','ForErr3','ForErr4','ForErr5','ForErr6','ForErr7',
'Tabl1','Tabl2','Tabl4','Sum1','Sum1a','Sum2','Sum3','Sum4','Prod1','Prod2_Power','Prod3_Fact',
'Geom1','Geom2','Geom3','Geom4',
'Loop_If_1','Loop_If_2','Loop_If_2a','Loop_If_3','Loop_If_4',
'Loop_If_5_Count','Loop_If_7_Count','Loop_If_8_Count','Loop_If_9_Count','Loop_If_1_Sum','Loop_If_2_Sum',
'Зацикливание2','Wh1','Wh2','Wh3','Дюймы1','Дюймы2','Дюймы3','Дюймы4','Sum1W','Sum2W','Sum3W',
'Умножение1','Умножение2',еление1',еление2','Digits','Bank_ForLeaders',
'Digits1','Digits2','Digits3','Digits4','Digits5',
'BinNumSystem','BinNumSystem2','Difficult_Power2',
'Min1','Min2','Min3','SeriesMin2',
'Break1','Break2','Break3','Break4','BreakIntheMiddle1','BreakIntheMiddle2',
'Divisors','SimpleNumbers',
'сс1','сс2','сс3','сс4','сс5','сс6','сс7','сс8',
'ссi1','ссi2','ссi3','ссi4','ссi5','ссi6',
'Combinations','Primes','1_ПрямоугольныеТреугольники','ДесятичныеЧисла','ДвоичныеЧисла' );
finalization
end.