PascalABC.NET версия 3.6

А если не боятся последовательностей:

begin
  var a := ReadArrInteger(ReadInteger);
  a.SelectMany((x1,i)->a.Skip(i+1).Select(x2->(x1,x2)))
  .Count(t-> ( (t[0]+t[1]) mod 10 = 0 ) and ( t[0]*t[1] mod 7 = 0 ) )
  .Println;
end.

Исходные данные фиксированы. Мы не имеем права их пересматривать. Первым числом идет N и далее N положительных чисел.

Вы смысле? Что вы называете пересматриванием?

А… даже я сходу не оценил смысл:

var a := ReadArrInteger(ReadInteger);

Понял примерно так:

var a = ReadLine().Split().Select(x=>int.Parse(x)).ToArray();

т.е. без n

Во-первых, он PascalАВС.NЕТ. Знали бы Вы, сколько уже было копий сломано с этими наименованиями. Потому что до 2008 года был Pascal АВС - интерпретатор Turbo Pascal, написанный под Windows. Во-вторых, конечно же, кто здесь не будет рад поддержке этого, несомненно достойного программного продукта? Но беда в том, что @Sun_Serega совершенно прав, когда пишет

Я начал смотреть Ваш стрим и вот лично мое мнение от первых десяти минут просмотра - “какой-то дурацкий PascalАВС придумали, зачем на него время тратить, если он ничего нового не дает?”. Поэтому лучше “давайте жить дружно”, может быть, Вам перед стримом есть смысл пока что с нами консультироваться?

Боже, не надо, я же так спать не смогу. .ConvertAll !!!

2 лайка

Вот поэтому все мои попытки так писать в книге мои рецензенты “запинали”. И спасибо им за это: отучили меня писать по-дурному. Как надо - я ответил Вам на стриме.

Поэтому лучше “давайте жить дружно”, может быть, Вам перед стримом есть смысл пока что с нами консультироваться?

Только за этим тут. Иначе бы остался в своей песочнице.

Проблема с ЕГЭ в том, что ребята хотят всё быстро и сразу, и без сложностей. Поэтому многие сразу в Python уходят и верят в магию range(N) не задумываясь о сущности генераторов.

Пытался увлечь 10й класс и рассказать им C# на примерах, но в 10м большинство отдыхает, а в 11м уже некогда вникать. Уже ботают русский, математику и физику с информатикой. И всё пропускают через фильтр “будет на экзамене?”

Заранее обречено на крах. Порог вхождения в язык высок. Ниже, чем у С++, но все равно высок. Задайтесь вопросом: сколько школьников из класса в среднем пойдут “в программисты”? Так если пойдут, они все равно будут C# с нуля учить. А остальным оно зачем?

Практически ВСЕ хорошее, что есть в Питоне, есть и тут. В том числе Range.

Кстати переход с PascalABC.NET на C# невероятно лёгок

1 лайк

Так во многом для этого он и писался.

1 лайк

В этом и проблема. Если PascalABCnet изучать с нуля, тогда можно и C# с нуля. А по мне так смысл PascalABCnet в промежуточном языке для тех кто уже знает Pascal

Нет, не для тех кто знает другой паскаль, а для тех - кто начинает программировать. В C# порог вхождения больше чем в PascalABCNet.

1 лайк

Еще раз: разный порог вхождения в язык. Говоря об изучении “с нуля”, давайте все же иметь в виду конечную цель. На PascalАВС.NЕТ на самом деле проще научиться писать, чем на том же FreePascal, если изучается язык в качестве первого. Если школьники уже нормально пишут на Turbo/Free Pascal - в 10-11 классе массово переучивать их поздно и бессмысленно.

Моя паства просит классический Pascal (

Поэтому, придется продолжить использовать минимум из PascalABC.Net

Ссылка на голосование: https://vk.com/inf_intensive?w=wall-142628541_1046

Тогда мы вам ничем не поможем. Тут как вы понимаете форум PascalABC.NET.

Могу пройтись по вашему видео и рассказать, что на наш взгляд изменить в смысле лучшего соответствия PascalABC.NET.

Поскольку мы сами учим школьников в массовых количествах, то предлагать сильно навороченные конструкции разумеется не буду.

Станислав Станиславович, с интересом выслушаю Ваши рекомендации. Кроме того, осознаю, что у меня в группе любителей классического Pascal больше, чем в среднем по популяции:

“опрос посетителей сайта показал, что у всех жителей Земли есть интернет”

PS: Ребятам понравился ReadArrInteger

И сделаете большую ошибку. В школьном объеме язык практически полностью совместим со всеми старыми “паскалями” - возьмите за основу Turbo Pascal и на нем “кормите паству”, раз они сами себе злобные буратинки. Паскаль с += - уже не классический паскаль, чего уж тут лукавить?

В противном случае то один, то другой юный падаван будет время от времени открывать новую конструкцию и рассказывать всем, что “купил кеды, потому что они красивее”. А Вам придется все это комментировать и разъяснять.

Нет, просто больше ленивых, которым неохота что-либо новое учить. Либо, это прагматичные одиннадцатиклассники, которые понимают, что коней на переправе не меняют.

Обычно я показываю разные фишки PascalABC.Net. Когда ребятам всё понятно, показываю, что можно было бы еще и так (var, for var…, readInteger, print и даже yield). И уже потом часть возмущается и просят вернуть всё назад.

Нет, просто больше ленивых, которым неохота что-либо новое учить. Либо, это прагматичные одиннадцатиклассники, которые понимают, что коней на переправе не меняют.

Оба утверждения верны. Ленивых и прагматичных много. Значительная часть неосознанно выбирает ЕГЭ по Информатике. Много играли и решили “пойти в компьютерное направление”.

Поговорите про это с @Admin. Он все же руководитель детской компьютерной школы. Возможно, его слова будут для Вас более убедительными. Дети свободно работают с PascalАВС.NЕТ, даже не подозревая до поры, что бывают какие-то там “статические” массивы, а переменные надо описывать до того, как пишешь саму программу (хм, а где же их брать. если программы еще нет?)

В случае с Вашей аудиторией срабатывает известное “Старую собаку не обучишь новым трюкам”. Соболезную.

1 лайк