Интересно, откуда у сына В Pascal ABC, снятый разработчиками с поддержки в 2007 году (14 лет прошло)? С 2007 года идет PascalABC.NET и это совсем другой язык, его люто ненавидят все, кто пишут на Python, С++ и С#, потому что в нем есть практически все лучшее и из Python, и из C#, и из Haskell, но он в синтаксисе Паскаля, проще, лаконичнее и нагляднее для новичка.
Вы странное пишете. Что такое есть в PyCharm (кроме изнурительно долгого старта), чего нет в PascalABC.NET, только в PascalABC.NET сообщения компилятора внятно и на русском языке? Литература по этому языку тоже есть. Материалов школьного уровня по C# и C++ мало потому, что массово изучать эти языки в качестве первых - безумие.
Для начала, это интерпретируемый язык. "Вызывалка для пакетов". На нем можно обрабатывать какие-то данные, но во многих случаях он окажется бесполезен. Так что по одному языку, к тому же пока что мало распространенному, решать, какими должны быть индексы в массивах, по меньшей мере некорректно.
Школьнику много что полезно. Но дяди и тети из высоких кабинетов решили, что образованием можно управлять так же, как любым бизнес-процессом. В результате чего последовали реформы образования, его "оптимизиция" и т.д. Так что если в рамках существующей часовой сетки изучать ассемблер и устройство персонального компьютера на уровне, позволяющем ассемблром пользоваться, нужно начинать в восьмом классе и как раз к окончанию школы будет шанс завершить эту тему.
И давно Ассемблер считается хорошим инструментом для понимания алгоритмов? Для понимания основ построения компьютера — да, но тут и С подойдет. Но объяснять алгоритм той же сортировки в ассемблерных кодах в школе — это абсурд. Н.Вирт для того и писал Паскаль, чтобы на нем было удобно алгоритмы описывать, так что пусть QBasic тут в сторонке бамбук покурит.
Что до Ваших методов решения какого-то класса задач — вполне вероятно, что они работают лучше общих методов, но так всегда было, что частное решение эффективнее общего для частного же случая.
Под конец — цитатка из романа В.Михайлова "Тогда придите и рассудим". Сами преломите ее к использованию Ассемблера в школьной информатике.
Благодарю вас, — сказал Первый с тем же неподвижным лицом, когда Форама закончил — закончил как-то неубедительно, не на высокой ноте: почувствовал все холодеющее отношение слушателей к его мыслям и к нему самому. — Благодарю. Разумеется, мы примем во внимание все ваши суждения. Однако мы внимательно слушали вас и полагались на вашу эрудицию, пока речь шла о научных категориях. В области же применения этих категорий к реальной жизни мы привыкли придерживаться наших собственных методов, продиктованных опытом и традициями. Надеюсь, это вас не обидит...
Да, я был прав в своем предположении: вопросами изучения информатики в школе Вы не интересовались очень давно. Школа и в лучшие свои годы была ориентирована на середнячков, а сейчас ее ориентир те, кто в советское время еле-еле мог рассчитывать на троечку. Какой там Ассемблер!… это фантастика.
Для Делфи писали… когда это писали, в каком году? В 2010-м, издание 5-е, исправленное и дополненное, где вершиной творения был процессор Pentium 2? Когда 16 Гб оперативной памяти стоили почти как как подержаный автомобиль? Кого сейчас интересует сортировка 100 чисел в списке? Сейчас десять миллионов чисел в списке располагаются в оперативной памяти и сортируются за 0.4 секунды:
##
var L := ArrRandom(10000000, -1000, 1000).ToList;
Milliseconds;
Sort(L);
var t := MillisecondsDelta/1000;
t.Print // 0.388 c
Ну кому интересно в таких условиях мучиться с кодами часами, чтобы три микросекунды выгадать?
СЛАУ решить размером 8? Ну давайте писать свои библиотеки, может выгадаем пару микросекунд на решении… Я не знаю, что там за Интеловская библиотека, в PascalABC.NET есть написанная мной NumLibABC — библиотека численных методов. Там СЛАУ можно решать несколькими методами и большая их часть портирована на Паскаль из научных фортрановских библиотек, имеющих мировое признание. И кому может прийти в голову писать собственное решение? Хотите, можем сравнить, давайте свой код, PascalABC.NET умеет компилировать и коды своих предшественников.
Вы давно, видимо, в школе не были, если рассуждаете про ассемблер.
Sort можно дать вначале, а затем рассказывать, как оно устроено внутри, разбирать и реализовывать алгоритмы сортировки. Можно наоборот — начать с алгоритмов, а потом дальше везде писать Sort, не заставляя детей тратить время на тупое копирование кода каждый раз, когда сортировка понадобится.
Это и есть настоящая мультипарадигменность, когда в зависимости от цели можно выбирать способ реализации.
Да ну, помилуйте, какие семафоры, это же еще у Дейкстры в 60-х годах. В .NET есть готовые библиотеки, а в PascalABC.NET языковые средства для работы с ними.
Вангую: в любом варианте Ваш код будет достаточно длинным. А на PascalABC.NET я могу написать решение еще короче, в одну строку даже, но оно станет куда менее прозрачным. Тут важно знать меру.
Вы не видите по коду? Целочисленный массив из n элементов (n > 10 и вводится с клавиатуры) заполняется случайными целыми числами из интервала [-99;99]. Найти среднее арифметическое элементов массива, делящихся без остатка хотя бы на 5, или на 2.
Ну как доказать, что устарели...? Я что-то не видел у Вирта в Паскале команд, обеспечивающих параллельное вычисление )))
В том же PascalABC.NET средства для параллельных вычислений имеются и даже идут примеры в поставке.
Ага, Вы еще про Оксиджен не рассказали.
И — я там выше, под Ваш вопрос привел коды на виртовском паскале и PascalABC. Можете написать на ОО Паскаль, сравним ))
Давайте сравним решение простейшей задачи на виртовском паскале и PascalABC.NET.
program Sample;
const
m = 100;
var
i, n, k, s: integer;
a: array[1..m] of integer;
begin
Write('n = ');
Readln(n);
Randomize;
k := 0;
s := 0;
for i := 1 to n do
begin
a[i] := Random(199) - 100;
Write(a[i], ' ');
if (a[i] mod 5 = 0) or (a[i] mod 2 = 0) then
begin
s := s + a[i];
Inc(k)
end
end;
Writeln;
Write(s / k)
end.
И вот второй код
##
var n := ReadInteger('n =');
var a := ArrRandom(n, -99, 99);
a.Println.Where(t -> t.DivsAny(5, 2)).Average.Print
Код на QBasic можете сами написать))
Обучать начинающих можно либо сразу второму коду, либо первому коду и умению привести его ко второму. Тут смотря какая цель аудитории.
QBasic — я лишь отметил, что он был хорош для своего времени и я тоже когда-то на нем писал. Но и только.
Коды из Вирта устарели, да, это так. Они несовременны, плохо оптимизируются и непригодны для параллельных вычислений. Но именно сами коды, а не алгоритмы, приведенные Н.Виртом! Поэтому их приходится немного перерабатывать с тем, чтобы использовать в современных парадигмах. Но и только.
Виртовский паскаль потому и оказался не у дел, что перестал развиваться.
странно, что впечатление только, я все примеры именно на нем приводил и сравнивал именно его с прочими языками. На мой взгляд для первого языка это идеал. Не случайно именно на нем начинают учить первоклашек в питерском DL Club, уже не первый год поставляющим стране призеров олимпиад. Три года PascalABС.NET — затем дальше идут, на C++. Не случайно официальный сайт этого языка недавно отмечал 6 миллионов скачивания дистрибутива.
Да Паскаль это, при описании типов ставится именно знак равенства, а не присваивания.
Интересно, откуда у сына В Pascal ABC, снятый разработчиками с поддержки в 2007 году (14 лет прошло)? С 2007 года идет PascalABC.NET и это совсем другой язык, его люто ненавидят все, кто пишут на Python, С++ и С#, потому что в нем есть практически все лучшее и из Python, и из C#, и из Haskell, но он в синтаксисе Паскаля, проще, лаконичнее и нагляднее для новичка.
Вы странное пишете. Что такое есть в PyCharm (кроме изнурительно долгого старта), чего нет в PascalABC.NET, только в PascalABC.NET сообщения компилятора внятно и на русском языке? Литература по этому языку тоже есть. Материалов школьного уровня по C# и C++ мало потому, что массово изучать эти языки в качестве первых - безумие.
А можно узнать, в каком языке по-Вашему среда разработки "достойная"? И, заодно, что именно Вы разработывать предлагаете?
Для начала, это интерпретируемый язык. "Вызывалка для пакетов". На нем можно обрабатывать какие-то данные, но во многих случаях он окажется бесполезен. Так что по одному языку, к тому же пока что мало распространенному, решать, какими должны быть индексы в массивах, по меньшей мере некорректно.
Вот и я надеюсь.
Школьнику много что полезно. Но дяди и тети из высоких кабинетов решили, что образованием можно управлять так же, как любым бизнес-процессом. В результате чего последовали реформы образования, его "оптимизиция" и т.д. Так что если в рамках существующей часовой сетки изучать ассемблер и устройство персонального компьютера на уровне, позволяющем ассемблром пользоваться, нужно начинать в восьмом классе и как раз к окончанию школы будет шанс завершить эту тему.
И давно Ассемблер считается хорошим инструментом для понимания алгоритмов? Для понимания основ построения компьютера — да, но тут и С подойдет. Но объяснять алгоритм той же сортировки в ассемблерных кодах в школе — это абсурд. Н.Вирт для того и писал Паскаль, чтобы на нем было удобно алгоритмы описывать, так что пусть QBasic тут в сторонке бамбук покурит.
Что до Ваших методов решения какого-то класса задач — вполне вероятно, что они работают лучше общих методов, но так всегда было, что частное решение эффективнее общего для частного же случая.
Под конец — цитатка из романа В.Михайлова "Тогда придите и рассудим". Сами преломите ее к использованию Ассемблера в школьной информатике.
Да, я был прав в своем предположении: вопросами изучения информатики в школе Вы не интересовались очень давно. Школа и в лучшие свои годы была ориентирована на середнячков, а сейчас ее ориентир те, кто в советское время еле-еле мог рассчитывать на троечку. Какой там Ассемблер!… это фантастика.
Для Делфи писали… когда это писали, в каком году? В 2010-м, издание 5-е, исправленное и дополненное, где вершиной творения был процессор Pentium 2? Когда 16 Гб оперативной памяти стоили почти как как подержаный автомобиль? Кого сейчас интересует сортировка 100 чисел в списке? Сейчас десять миллионов чисел в списке располагаются в оперативной памяти и сортируются за 0.4 секунды:
Ну кому интересно в таких условиях мучиться с кодами часами, чтобы три микросекунды выгадать?
СЛАУ решить размером 8? Ну давайте писать свои библиотеки, может выгадаем пару микросекунд на решении… Я не знаю, что там за Интеловская библиотека, в PascalABC.NET есть написанная мной NumLibABC — библиотека численных методов. Там СЛАУ можно решать несколькими методами и большая их часть портирована на Паскаль из научных фортрановских библиотек, имеющих мировое признание. И кому может прийти в голову писать собственное решение? Хотите, можем сравнить, давайте свой код, PascalABC.NET умеет компилировать и коды своих предшественников.
Это и есть настоящая мультипарадигменность, когда в зависимости от цели можно выбирать способ реализации.
Да ну, помилуйте, какие семафоры, это же еще у Дейкстры в 60-х годах. В .NET есть готовые библиотеки, а в PascalABC.NET языковые средства для работы с ними.
Я и написал, что в зависимости от цели, можено сразу писать или короткий или сначала длинный и учить на нем писать короткий.
Вангую: в любом варианте Ваш код будет достаточно длинным. А на PascalABC.NET я могу написать решение еще короче, в одну строку даже, но оно станет куда менее прозрачным. Тут важно знать меру.
Вы не видите по коду? Целочисленный массив из n элементов (n > 10 и вводится с клавиатуры) заполняется случайными целыми числами из интервала [-99;99]. Найти среднее арифметическое элементов массива, делящихся без остатка хотя бы на 5, или на 2.
Ну как доказать, что устарели...? Я что-то не видел у Вирта в Паскале команд, обеспечивающих параллельное вычисление )))
В том же PascalABC.NET средства для параллельных вычислений имеются и даже идут примеры в поставке.
Ага, Вы еще про Оксиджен не рассказали.
И — я там выше, под Ваш вопрос привел коды на виртовском паскале и PascalABC. Можете написать на ОО Паскаль, сравним ))
Давайте сравним решение простейшей задачи на виртовском паскале и PascalABC.NET.
И вот второй код
Код на QBasic можете сами написать))
Обучать начинающих можно либо сразу второму коду, либо первому коду и умению привести его ко второму. Тут смотря какая цель аудитории.
Я уже ответил, QBasic устарел. И в Microsoft считают так же.
QBasic — я лишь отметил, что он был хорош для своего времени и я тоже когда-то на нем писал. Но и только.
Коды из Вирта устарели, да, это так. Они несовременны, плохо оптимизируются и непригодны для параллельных вычислений. Но именно сами коды, а не алгоритмы, приведенные Н.Виртом! Поэтому их приходится немного перерабатывать с тем, чтобы использовать в современных парадигмах. Но и только.
Виртовский паскаль потому и оказался не у дел, что перестал развиваться.
странно, что впечатление только, я все примеры именно на нем приводил и сравнивал именно его с прочими языками. На мой взгляд для первого языка это идеал. Не случайно именно на нем начинают учить первоклашек в питерском DL Club, уже не первый год поставляющим стране призеров олимпиад. Три года PascalABС.NET — затем дальше идут, на C++. Не случайно официальный сайт этого языка недавно отмечал 6 миллионов скачивания дистрибутива.