Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Да Паскаль это, при описании типов ставится именно знак равенства, а не присваивания.

Интересно, откуда у сына В 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 умеет компилировать и коды своих предшественников.

  1. Вы давно, видимо, в школе не были, если рассуждаете про ассемблер.
  2. 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 устарел. И в Microsoft считают так же.

QBasic — я лишь отметил, что он был хорош для своего времени и я тоже когда-то на нем писал. Но и только.


Коды из Вирта устарели, да, это так. Они несовременны, плохо оптимизируются и непригодны для параллельных вычислений. Но именно сами коды, а не алгоритмы, приведенные Н.Виртом! Поэтому их приходится немного перерабатывать с тем, чтобы использовать в современных парадигмах. Но и только.
Виртовский паскаль потому и оказался не у дел, что перестал развиваться.

странно, что впечатление только, я все примеры именно на нем приводил и сравнивал именно его с прочими языками. На мой взгляд для первого языка это идеал. Не случайно именно на нем начинают учить первоклашек в питерском DL Club, уже не первый год поставляющим стране призеров олимпиад. Три года PascalABС.NET — затем дальше идут, на C++. Не случайно официальный сайт этого языка недавно отмечал 6 миллионов скачивания дистрибутива.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность