Более ранние версии доступны для скачивания, можно диффнуть руками. ЕМНИП, первая версия читается не очень хорошо. Последняя компактная (которую можно обозреть в одиночку) — до добавления сети, 0.12
В паскале, знаете ли, тоже есть указатели, структуры.
Это значит, что ими можно пользоваться, но не значит, что нужно.
Если в Си мне надо передать переменную, которая будет изменяться, в процедуру, я должен разобраться с указателями. И использовать вырвиглазный дереференс для простого присвоения. Там попутно идет арифметика, Сишное представление массива как указателя на ячейку и т.д. В Паскале же переменная просто передается вовнутрь, нужно указать спецификатор «var» перед именем и все. В некоторых языках, том же Basic, все параметры по умолчанию сквозные — это еще лучше при обучении.
Отнюдь.
Вам никто не запрещает взять современный Дельфи и написать консольное приложение без ООП. Нет принуждения к парадигме — хочешь, используй наглядное процедурное, хочешь — ООП, хочешь — смешивай.
begin/end — вкусовщина — меня, например, тошнит от фигурных скобок в Си, но я не выпячиваю это как «недостаток».
Что плохого в секции var? Во всех старых языках переменные объявляются в начале процедуры, до использования. Говорить о том, что «если выделять ближе к месту использования, то нагляднее» не приходится — хорошим тоном считается там, где это возможно, сокращение размера процедур, так что секция var все равно перед глазами.
Нужно различать разные диалекты П. ООП (действительно, хороший) есть в Турбо-Паскале, интерфейсы (вот тут надо уточнить, какие именно имеются в виду) есть в Дельфи.
подключение библиотеки ввода-вывода, без понятий «ввод-вывод», «библиотека», «подключение библиотеки» в отрасли делать нечего.
Хм… можно вспомнить, прости господи, Basic. Только не надо ставить минусы, потому что не нравится этот язык — я просто привел пример.
2) int — целое число, целые числа проходят максимум в шестом классе общеобразовательной школы, кстати, тогда же проходят и дробные числа (float)
Одно дело — знать, что такое целое и дробное, другое — понимать, почему типы разные для целого и дробного. На этапе обучения самым азам — это лишняя деталь. Достаточно понимать, что есть, скажем, «число» и «строка».
2) arr[10] — выделение памяти под 10 ящичков с числами, без понятия «выделение памяти» (хоть на стеке, хоть в куче) в отрасли делать нечего.
При чем тут отрасль? Могу тогда вам сказать, что без знания ассемблера (мнемокодов), машинного языка (бинарник), детального понимания электроники на уровне проектирования кристалла — в отрасли делать нечего.
Напомню, разговор шел об обучении азам, начиная с алгоритмизации. На зачем козе баян при обучении алгоритмизации вдаваться в детали реализации массива в конкретном языке? Есть другие, в которых массив можно создать динамически.
5) Потому что в «int sum = 0» происходит создание ящика и запись туда значения, а в «int i» — только создание ящика (закрепляем понятия «выделение памяти», «оператор присваивания»)
При обучении азам, алгоритмизации «создание ящика» — ненужная деталь. Это слишком низкий уровень. Для первичного обучения достаточно «у нас есть ящик i, в нем будет лежать номер ячейки, с которой мы работаем». И «укажем, что начинаем с ячейки 0», как отдельный шаг.
Обязательный явный возврат значений вырабатывает полезную привычку не забывать писать return
… который нужен именно в Си.
P.S. Хотелось бы видеть подобную программу на любом другом хоть как-то типизируемом (на JS я тоже могу однострочник написать, ага) ЯП, мне тоже хочется покритиковать немножко ;)
OK, чисто в порядке бреда (массив списком нельзя инициализировать):
dim i, sum, element
for i = 0 to 9
read element
sum = sum + element
next i
print "Your sum is:"; sum
data 0,1,2,3,4,5,6,7,8,9
dim нужен только для типизации (можно указать AS INTEGER), так можно и опустить.
Что по вашему должна была сделать автор романа? 10 лет проработать железнодорожником, а потом книгу писать?
Здесь не 10 лет, здесь полная чушь.
Хоть какое-то представление иметь о том, о чем пишешь. Получается же как обычно: разбирается в еде, питье и красивой жизни, а когда доходит до описания чего-то реального, садится в лужу.
Как всегда, ни за что.
Хватит этих баек из перестроечного Огонька про расстреливающего тирана.
Есть приговоры судов, есть приведение их в исполнение.
Что странно, но те, кто остался в живых, смогли, например, в 1935 году запустить в Москве метрополитен с нуля с автоматизацией и системой блокировок. О чем, скажем, французы не могли и мечтать.
Так, для справки:
Наши проекты на Delphi (1.5 и 1.8 млн строк) компилируются за 38 и 18с соответственно (разница из-за разницы в сложности связей) на холодном кеше, и это полный ребилд. Если компилировать только измененные модули + линковка, вообще мгновенно, секунд 5-7.
Что такое «отдельный менеджер»? Что подразумевается под физическими изменениями? Почему габаритные — не физические? Без подколки, просто привык считать, что ф. движок просчитывает все, что связано и с положением в пространстве, и изменением положения, размерами — все, что связано с законами механики и пр. Задачка вида «было у нас 2 шара, они столкнулись и где нам их рисовать через 3 секунды после столкновения?» — вполне себе для ф. движка.
www.kernel.org/pub/linux/kernel/Historic/old-versions
Именно поэтому Embarcadero регулярно выпускает новый Delphi. Потому что он мертв.
Это значит, что ими можно пользоваться, но не значит, что нужно.
Если в Си мне надо передать переменную, которая будет изменяться, в процедуру, я должен разобраться с указателями. И использовать вырвиглазный дереференс для простого присвоения. Там попутно идет арифметика, Сишное представление массива как указателя на ячейку и т.д. В Паскале же переменная просто передается вовнутрь, нужно указать спецификатор «var» перед именем и все. В некоторых языках, том же Basic, все параметры по умолчанию сквозные — это еще лучше при обучении.
Вам никто не запрещает взять современный Дельфи и написать консольное приложение без ООП. Нет принуждения к парадигме — хочешь, используй наглядное процедурное, хочешь — ООП, хочешь — смешивай.
Что плохого в секции var? Во всех старых языках переменные объявляются в начале процедуры, до использования. Говорить о том, что «если выделять ближе к месту использования, то нагляднее» не приходится — хорошим тоном считается там, где это возможно, сокращение размера процедур, так что секция var все равно перед глазами.
Это значит, что ими можно пользоваться.
А вот строки в Паскале «из коробки» — бесценно при обучении, в сравнении с костылем Си.
Хм… можно вспомнить, прости господи, Basic. Только не надо ставить минусы, потому что не нравится этот язык — я просто привел пример.
Одно дело — знать, что такое целое и дробное, другое — понимать, почему типы разные для целого и дробного. На этапе обучения самым азам — это лишняя деталь. Достаточно понимать, что есть, скажем, «число» и «строка».
При чем тут отрасль? Могу тогда вам сказать, что без знания ассемблера (мнемокодов), машинного языка (бинарник), детального понимания электроники на уровне проектирования кристалла — в отрасли делать нечего.
Напомню, разговор шел об обучении азам, начиная с алгоритмизации.
Назачемкозе баянпри обучении алгоритмизации вдаваться в детали реализации массива в конкретном языке? Есть другие, в которых массив можно создать динамически.При обучении азам, алгоритмизации «создание ящика» — ненужная деталь. Это слишком низкий уровень. Для первичного обучения достаточно «у нас есть ящик i, в нем будет лежать номер ячейки, с которой мы работаем». И «укажем, что начинаем с ячейки 0», как отдельный шаг.
… который нужен именно в Си.
OK, чисто в порядке бреда (массив списком нельзя инициализировать):
dim нужен только для типизации (можно указать AS INTEGER), так можно и опустить.
Для обучения — Паскаль, например.
en.wikipedia.org/wiki/List_of_German_rail_accidents
Вот Великобритания:
en.wikipedia.org/wiki/List_of_rail_accidents_in_the_United_Kingdom
Посмотрите те же годы. Нет, надо выдернуть короткую неполную статью по США — посмотрите на этих совков, ага.
Здесь не 10 лет, здесь полная чушь.
Хоть какое-то представление иметь о том, о чем пишешь. Получается же как обычно: разбирается в еде, питье и красивой жизни, а когда доходит до описания чего-то реального, садится в лужу.
Хватит этих баек из перестроечного Огонька про расстреливающего тирана.
Есть приговоры судов, есть приведение их в исполнение.
Что странно, но те, кто остался в живых, смогли, например, в 1935 году запустить в Москве метрополитен с нуля с автоматизацией и системой блокировок. О чем, скажем, французы не могли и мечтать.
Статья в вики — ерунда, список по штатам — неполный, это легко проверяется гуглением.
Можете сравнить, например, с Францией, а не США:
fr.wikipedia.org/wiki/Liste_des_accidents_ferroviaires_en_France_au_XXIe_si%C3%A8cle
Наши проекты на Delphi (1.5 и 1.8 млн строк) компилируются за 38 и 18с соответственно (разница из-за разницы в сложности связей) на холодном кеше, и это полный ребилд. Если компилировать только измененные модули + линковка, вообще мгновенно, секунд 5-7.