Старую собаку не научишь новым штукам. (народное)
Так @Admin - директор воскресной компьютерной школы))
Старую собаку не научишь новым штукам. (народное)
Так @Admin - директор воскресной компьютерной школы))
Не надо усложнять. Я пишу этот код так:
begin
var (n, k) := ReadInteger2;
var ma := ReadArrInteger(n);
var (max1, max2) := (0, 0);
foreach var i in 1..n-k do
begin
var x := ReadInteger;
var r := i mod k;
if ma[r] + x > max1 +max2 then
(max1, max2) := (ma[r], x);
if x > ma[r] then
ma[r] := x
end;
Print(max1, max2)
end.
Что здесь сложного по сравнению с Питоном - ума не приложу. Единственное отличие - map
в Питоне рассматривается как заклинание. Потому что в Питоне нет достойного ввода по одному числу из строки - только всю строку целиком надо считывать.
Ну и как преподаватель я не могу с этим смириться - когда map появляется уже на первом занятии при вводе двух целых.
Я намеренно написал как можно ближе к питоновскому коду. Поскольку почему-то показалось, что @Danov сделал упор, что список лучше (?) динамического массива. И потом уже писал, что список тут ни разу не нужен.
Часть есть здесь: http://pascalabc.net/dokladi
Но там осколки.
Ещё выложу если интересно. Но там не то, что вы ожидаете. Мы не педагоги в первую очередь, где будет описано про дидактику и проведён статистический анализ на детях, изучающих PascalABC.NET и детях из контрольной группы.
Мы массово в течение более 20 лет готовим школьников с 6 класса к поступлению в ВУЗ на ИТ-шные профессии. Много школьников. Конечно, зовём на мехмат ЮФУ. Но жизнь - она многогранная - поступают в кучу мест. А потом выясняется, что в Компьютерной школе их учили лучше и современнее.
Вот давайте сразу сброшу вот это:
ЭРНО PABC 2016 основная.pdf (1,0 МБ)
Или это: Михалкович2017.pdf (463,9 КБ)
Михалкович2018.pdf (223,3 КБ)
Давайте еще вот это приведу ради хохмы: СИТО 2019 сопоставление с образцом.pdf (729,2 КБ)
Хотя мне лично больше нравится вот это: SitoPABC2015-2016.pdf (1,6 МБ)
Приветствую всех, у меня есть предложение, сделать темы для паскаля: “Темная” и “Стандарт” (к примеру) . Будет ли такая задумка когда нибудь реализована?
Эти игрища в кастомизацию с 2015 года идут Почему бы просто не воспользоваться поиском, прежде чем писать идеи?
спасибо. Но почему эту функцию не добавить в сами настройки ?
Проект открытый. Возьмите и добавьте. Разработчиков на данным момент - два человека. Поверьте, у них сейчас есть задачи куда поважнее раскрашивания интерфейсов.
Прошу добавить для decimal
(возможно, ещё для BigInteger
, но я не проверял, все ли есть у BigInteger
) во встроенные все подпрограммы, что есть у других типов и подходят для decimal
. Поскольку, скорее всего, у разработчиков
я прошу добавить, когда будет время.
Хотя, по моему, в PABCSystem это не так уж и нужно. Случаи где decimal придётся вводить с клавиатуры - это в довольно специфичных проектах, где лучше описать такую подпрограмму самостоятельно.
Мне кажется, забыли добавить ReadBigInteger(prompt: string): BigInteger
.
кто скажет, как мне настроить/включить альфа канал, для процедуры DrawImage? [модуль GraphWPF]
Поидее он всегда включён. Но, конечно, для этого исходное изображение должно иметь прозрачные пиксели.
Вы недавно удалили 2 файла, когда @ibond и @Admin одновременно сделали по коммиту в мастер, которые изменяли эти файлы.
Parsers\PascalABCParserNewSaushkin\ABCPascalYacc.cs
Parsers\PascalABCParserNewSaushkin\ABCPascal.cs
У вас может есть локальная версия этих файлов и пока вы сидите в мастере - вам не важно.
А у меня эти файлы удаляет при каждом прыжке между ветками. И без них проект не собирается.
Пожалуйста, или добавьте их назад, или сделайте так чтоб при сборке проекта вызывался этот .bat:
Parsers\PascalABCParserNewSaushkin\generateParserScanner.bat
.Да и ещё…
type
t1<T> = class
//Ошибка: Возвращаемое значение или параметр должны иметь тип t1<T>
// static function operator implicit(a: t1<byte>): t1<word> := new t1<word>;
end;
//Ошибка: extension-операторы преобразования типов допустимы только для классов из других сборок .NET
//function operator implicit(a: t1<byte>): t1<word>; extensionmethod := new t1<word>;
begin end.
То есть сейчас определить неявное преобразование между t1<byte>
и t1<word>
невозможно.
Может разрешите внутри класса?
В OpenCL в кернел можно передавать как буфер, так и значение из оперативки. Вот в OpenCLABC второе раньше было невозможно.
Сейчас решил сделать возможным, ввёл тип KernelArg
, к которому можно преобразовать указатель, запись или буфер. А определить преобразование CommandQueue<Buffer>
в CommandQueue<KernelArg>
оказывается нельзя.
Сергей, а почему распаковки кортежей нет? В чем тут идея?
begin
readarrinteger(readinteger)
.Combinations(2)
.Select(x->(x[0],x[1])) // ниже строчка не работает
.Where((a,b)->((a+b)mod 80 =0)and((a>50)or(b>50)))
.Print();
end.
А еще с Питона можно скопировать преобразования:
x,y = (3,5)
print(x,y)
x,y = [3,5]
print(x,y)
(x,y) = [3,5]
print(x,y)
x,y = [3,5,7][:2]
print(x,y)
Что мешает так писать?
begin
ReadArrInteger(ReadInteger)
.Combinations(2)
.Select(x -> (x[0], x[1]))
.Where(t -> ((t[0] + t[1]) mod 80 = 0) and ((t[0] > 50) or (t[1] > 50)))
.Print;
end.
Что до Питона - зачем его копировать? Оттуда и так взято все полезное))) Например, кортежное присваивание есть var (a,b,c) := (5,8,13); в все написанные Вами примеры легко моделируются (если они вообще в Паскале смысл имеют).
Мы на форуме общаемся не первый год по добавлению новшеств в язык, позиция разработчика была прежде такой: “Если Вам надо все, как в С++, просто пишите на С++)”. То же и о Питоне.
Вот идея именованных элементов кортежей уже давно витает в воздухе.
Я кажется понял в чем проблема именно в том случае. Where есть метод, где на вход лямбды подается элемент последовательности и его индекс
.Where(((x,y),i) -> (x+y) mod 80 = 0))
// или
.Where(((x,y)) -> (x+y) mod 80 = 0))
Скорее так нужно будет… Но даже C# этого не понимает
Я не понял, откуда индекс у элемента последовательности? Индекс есть у элемента массива, а у элемента последовательности понятия первого элемента, последнего, текущего и возможность перейти к следующему. ))
А это LINQ из .Net Select / Where поддерживают выдачу элемента, а также элемента и его индекса.