Программирование: введение в профессию. Издание 2,9 (электронное)
АннотацияУчебник «Программирование: введение в профессию» ориентирован на самостоятельное изучение и предполагает использование систем семейства Unix (в т.ч. Linux) в роли сквозной среды для обучения. Скачать книгу
Дополнительные файлыФайл mv stud_io_inc stud_io.inc ErrataТом I
Том II
![]() |
Программирование: введение в профессиюпояснениеВы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям. Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда. Андрей Михайлович Столяров в библиотеке Мошкова |
☞ From Михаил (unverified) Sat Apr 26 16:18:41 2025 UTC
Том 2, стр. 8
В дополнение к предыдущему комментарию (можно слить воедино). Четвертый абзац мелкого текста:
> ; во-вторых. личный авторитет отдельный лиц,
Точка вместо запятой.
ответить
Re: Том 2, стр. 8
Есть такое, благодарю.
ответить
☞ From Михаил (unverified) Sat Apr 26 15:59:28 2025 UTC
Том 2, стр. 8
Начало второго абзаца:
> его рождение в виде "наколенной поделки" даёт себя знать
Должно быть "даёт о себе знать"?
Третий абзац:
> К счастью, Си для вас будет не первым языком программирования, так что вы уже избегли части опасностей, ...
Должно быть "избежали"?
ответить
Re: Том 2, стр. 8
Ни то, ни другое не является ошибкой, а рекомендации я не принимаю принципиально. Прошу больше не отнимать у меня время подобными домыслами.
ответить
☞ From ScrollLock (unverified) Mon Apr 21 22:13:19 2025 UTC
Мощности множеств
Стр. 58 тома 1: "примером такой бесконечности может послужить множество всех множеств действительных чисел" (его мощность обозначают алеф-2)". Насколько я знаю, какой именно алеф там - зависит от используемой аксиоматики, в т.ч. от того, истинна, ложна или недоказуема в ней континуум-гипотеза.
ответить
Re: Мощности множеств
Факт, недочистил это дело. Спасибо.
ответить
☞ From sbcf (unverified) Mon Apr 21 18:05:44 2025 UTC
немного занудства касательно названий ПО (т.1, стр.38)
Андрей Викторович, всех благ вам.
Простите за "тупые" замечания, возможно в книге всё верно, то есть написание соответствует вашим авторским "традициям". А может редактор недосмотрел.
Поэтому на всякий случай перечислю:
MSWord - понятно, но как-то непривычно, что MS и Word без пробела
Unix-подобных, и в тоже время unix-системами - выглядит непоследовательно с точки зрения большой буквы в названии Unix/unix. А ещё на просторах сети часто встречается сленговое "*nix" - типа избавились от такого вопроса.
Ну и редактор vim - его название у вас совпадает с командой вызова (отличаются только шрифтом). Это не согласуется с другими редакторами в книге (Nano, Joe - который вроде JOE по официальному сайту), и с самим редактором Vim (как он назван в программе и на его сайте).
Ну и "на закуску": Таблица 1.5. Наиболее употребительные команды редактора joe
Вот такие "пироги", как говорится, или у меня в голове "каша" - а у редакторов не было замечаний. Тогда не серчайте - мелочь, а глаз зацепился, чтение очень увлекло в мир Linux, излагаемый вами.
ответить
Re: немного занудства касательно названий ПО (т.1, стр.38)
Ну окей, правда, это всё уже в вышедших томах, так что придётся подождать теперь следующего релиза. А так, похоже, Vim с большой буквы, JOE всеми большими, nano — наоборот всеми маленькими. Ну и MS Word — хрен бы с ним, пусть там будет пробел.
Что до редакторов, то таковых в подготовке книги не участвовало.
Кстати, *nix — это не про большую/маленькую, это про всякие minix и xenix, а заодно и про все остальные. Но вот как раз-таки Unix-like — это "похожие на Unix" (конкретный Unix, имя собственное), а unix-системы — ну, тут словом "unix" обозначен скорее тип систем, т.е. это уже нарицательное. Так что тут, пардон, останусь при своём авторском начертании :)
ответить
☞ From RCgoff (unverified) Mon Apr 21 09:41:52 2025 UTC
Триггер
Я электронщик, и меня триггерит то, как в первом томе изображена схема лампового триггера. В издании 2.9 это схема на странице 22 (Рис.1.1). Во-первых, там, где сходятся несколько проводников и между ними есть электрический контакт, должна быть жирная точка. На даном рисунке это все пересечения, кроме центрального перекрестья. Во-вторых, чтобы триггер действительно переключался, чтобы лампы запирались, потенциал сетки должен быть ниже потенциала катода. Поэтому либо катод должен быть заземлен, а два резистора и выключатель должны быть подключены к отрицательному напряжению, либо в цепи катодов должны стоять сопротивления смещения.
См. Книгу Бонч-Бруевич М.А. "Применение электронных ламп в экспериментальной физике", 3-е изд, 1955. Рис. 4.70 и 4.72.
ответить
Re: Триггер
Так-с, ну допустим.
> там, где сходятся несколько проводников и между ними есть электрический контакт, должна быть жирная точка.
Это не проблема.
> Поэтому либо катод должен быть заземлен, а два резистора и выключатель должны быть подключены к отрицательному напряжению, либо в цепи катодов должны стоять сопротивления смещения.
Поскольку я не электронщик, всё это описание мне ничем не поможет.
> См. Книгу Бонч-Бруевич М.А
Где я её возьму, пардон?
В общем ситуация тут довольно простая: чтобы схему исправить, мне нужны более конструктивные рекомендации.
ответить
Re: Re: Триггер
>Где я её возьму, пардон?
https://publ.lib.ru/ARCHIVES/B/BONCH-BRUEVICH_Aleksey_Mihaylovich_(fizik)/_Bonch-Bruevich_A.M..html
ответить
Re: Re: Re: Триггер
Скачал, посмотрел. Ну, рисунок 4.72 вообще непонятен как целое, т.е., возможно, электронщикам там что-то и понятно, мне — нет, и целевой аудитории моей книги, соответственно, тоже нет. Что касается рис. 4.70, то там "земля" и "минус" представляют собой разные сущности, я, честно говоря, такого до сей поры нигде и никогда не видел. Выключателей там нет, в тексте упоминается "внешнее воздействие", но не говорится, как конкретно его осуществить.
Что со всем этим делать — не вполне понятно. Я подумаю, не убрать ли этот рисунок из книги вообще. Исправить его на основании той информации, которую вы мне предоставили, я возможности не вижу.
ответить
Re: Re: Re: Re: Триггер
На рис 4.70 земля - это провод с напряжением 0в, а минус - с отрицательным (к примеру, -10в). Напряжение можно отсчитывать от разных точек. В этом смысле "земля" играет роль начала отсчета. Нуля. Выключатели должны быть помещены параллельно резисторам R2, как и на Вашей схеме в книге
ответить
Re: Триггер
Я прекрасно понимаю, что там что значит, ваш новый комментарий не содержит никакой новой информации для меня. Помещать в книгу схему, на которой минус и земля не одно и то же, я не буду.
ответить
Re: Re: Re: Re: Триггер
> там "земля" и "минус" представляют собой разные сущности, я, честно говоря, такого до сей поры нигде и никогда не видел.
Если эта реплика относилась не к схеме триггера, а в целом к электронике, то, наверное, два самых близких электронщику примера - это уровни сигналов в интерфейсе RS232 и номенклатура питающих напряжений на разъеме ATX блока питания компьютера.
На разъеме блока питания среди прочих есть и земля, и минус 12 вольт, и это разные сущности.
В интерфейсе RS232 логический 1 это минус 12в, а логический 0 это плюс 12в. Но в числе линий интерфейса есть и земля с напряжением 0в. И на электрическую схему преобразования уровней сигналов в уровни RS232 от источника должно приходить три линии питания: +12, земля/общий и -12в.
ответить
Re: Триггер
Про rs232 я мог бы и сам вспомнить, старый становлюсь, видимо. Остальное для меня новость.
ответить
Re: Re: Триггер
>Это не проблема.
Это проблема, т.к. в текщем варианте у вас на схеме не различаются ситуации "пересечение проводов без электрического контакта между ними" и "пересечение проводов с контактом между ними, т.е. соединение проводов"
ответить
Re: Re: Re: Триггер
Это не проблема в том смысле, что точки мне в соответствующих местах поставить особого труда не составит.
ответить
☞ From RandomName (unverified) Sat Apr 19 17:31:44 2025 UTC
Рыба с обложки
Хочу похвалить обложки книг, они довольно забавны и метафоричны. Но есть вопрос, а что на них обозначает рыба? С багом, костылями и прочим всё понятно, но вот то, какое отношение крылатая рыба имеет к программированию, никак понять не могу, а она так-то на каждой книге есть...
ответить
Re: Рыба с обложки
Вот уж как раз рыба-то, которая мало того что с крылышками, так ещё и с лапами — к программированию имеет отношение самое прямое.
ответить
☞ From ScrollLock (unverified) Sat Apr 19 17:18:20 2025 UTC
Утверждения о качестве rand
Здравствуйте!
На стр. 80 второго тома утверждается, что "в целом псевдослучайные числа имеют распределение, достаточно близкое к равномерному". Но для реализации функции rand из glibc наблюдаются довольно грубые отклонения от равномерности, делающие её совершенно непригодной не только для паролей, но и для научных и инженерных расчётов. Её старшие биты проваливают gap test из TAOCP2 с почти вековой историей. Если отслеживать интервалы (число членов последовательности) между псевдослучайными числами, старшие 10 бит которых равны 0, то картина получается очень далёкой от теоретической. Это очень легко воспроизвести с помощью вот такой короткой программы на ANSI C. Она строит гистограмму длин интервалов, рассчитывает статистику из критерия Пирсона и переводит её в нормально распределённую величину z (mu=0, sigma=1). Она очень упрощена, совсем не блещет стилем, не совсем точно обрабатывает некоторые граничные случаи, а нужный ГПСЧ выбирается редактированием строки. И на совсем уж ужасных генераторах программа может зависнуть. Но сравнить rand() и /dev/urandom с её помощью можно. Написано для 32-битного int и 31 или 32-битного выхода rand().
Результаты выполнения программы на Lubuntu 22.04.5 LTS:
Видно, что rand() тест не проходит, а /dev/urandom - проходит. Более того, /dev/urandom оказался БЫСТРЕЕ rand(), т.к. внутри rand() есть мьютексы. Правда, в методе Монте-Карло /dev/urandom использовать нельзя, т.к. он невоспроизводим. Также очень грубые отклонения от равномерности для функции rand из glibc можно выявить тестами вроде одномерного Birthday Spacings, а также BCFN из PractRand. Первый из них вообще можно чуть ли не на IBM PC XT реализовать. В musl генератор другой и gap test проходит, но для его "разоблачения" оказывается снова достаточно IBM PC XT и другого теста.
Также ссылка [2] ведёт на второе издание книги Numerical Recipes, ГПСЧ из которого столь же ужасны, как и в функции rand(). Есть более новое третье издание, в котором один из рекомендованных генераторов оказался пригоден в качестве генератора общего назначения (и нет, это не RC4).
ответить
Re: Утверждения о качестве rand
Честно говоря, во всём этом мне интересным кажется только расплата за мьютексы.
ответить
Re: Re: Утверждения о качестве rand
Да тут вообще всё феерично. Производительность rand с мьютексами получается около 8 cpb (тактов на байт). Аналогичный генератор без мьютексов, но сляпанный "на скорую руку" - меньше 1 cpb. Зачем они там - не ясно, потокобезопасность от rand вроде бы не требуется, а для параллельных вычислений никакие мьютексы в ГПСЧ никто в здравом уме использовать не будет.
Нормальные ГПСЧ на той же машине с поддержкой AVX2: AES128-CTR аппаратный: 2 cpb, AES128-CTR программный - 7-8 cpb. ChaCha12 - 1 cpb, LEA128-CTR - 1.4 cpb, Threefish256-CTR - 2.2 cpb. Они же прекрасно подходят для параллельных вычислений, т.к. каждому процессу/потоку дают диапазон номеров членов последовательности - и всё. "Хакерские" (от слова bithack) генераторы приемлемого качества: xoroshiro128++ - 0.20 cpb, pcg64_xsl_rr - 0.35 cpb, SFC64 - 0.15-0.20 cpb, mlfib - 0.55 cpb, Philox - 1 cpb.
Т.е. из-за мьютексов скорость работы функции rand() стала существенно медленнее некоторых блочных шифров, и это при очень низком качестве. А ведь шифры мы заменяем на всякие хакерские трюки (иногда даже времён ENIAC) именно ради скорости и простоты.
ответить
☞ From Robert (unverified) Sat Apr 19 14:16:01 2025 UTC
Предположительно ошибка
Том 1, стр. 191, конец 2-го абзаца параграфа 3.3.6. Написано:
Имеется ли в виду во втором предложении изначальное (сразу после вызова подпрограммы) значение ESP? Если нет, то здесь ошибка, ведь если поместить в стек локальные четырёхбайтные перменные, то значение ESP изменится и эти переменные будут доступны по адресам [esp], [esp+4] и т. д.
ответить
Re: Предположительно ошибка
> Имеется ли в виду во втором предложении изначальное (сразу после вызова подпрограммы) значение ESP?
Естественно. Из контекста это очевидно, не?
ответить
☞ From Egor (unverified) Mon Apr 14 08:53:20 2025 UTC
Синтаксические ошибки в примере
Внизу страницы 136, пример удаления всех отрицательных значений из списка содержит ошибки в операторах:
while first <> nil then
и
if first^.data < 0 do
.А остаток примера убежал на другую страницу.
ответить
Re: Синтаксические ошибки в примере
Ага, ну вот и начались ошибки, внесённые при подготовке версии 2.9. Спасибо, вы совершенно правы.
> убежал на другую страницу.
В этом я как раз никакого криминала не вижу. Сверстать так, чтобы тексты программ никогда не переносились между страницами — может, и можно, но лично я не возьмусь.
ответить
☞ From anon (unverified) Sun Apr 13 21:33:34 2025 UTC
Том 2, стр. 84, п. 4.11.3, строка 12
На FreeBSD указанная команда
man attr
к желаемому результату не приводит, вместо неё нужная страница ищется черезman curs_attr
.ответить
Re: Том 2, стр. 84, п. 4.11.3, строка 12
И что? Учесть все подобные нюансы невозможно.
ответить
☞ From Robert (unverified) Mon Mar 31 08:38:55 2025 UTC
Предположительно ошибка
На стр. 189 в первом предложении параграфа 3.3.1 написано:
Ранее в книге (стр. 134, параграф 2.10.5) было объяснено, что называть стек (а также очередь) структурой данных - некорректно.
ответить
Re: Предположительно ошибка
Вы просто выдернули половину фразы из контекста. Термин "стек", разумеется, не соответствует какой-то конкретной структуре данных, и не обозначает никакую структуру данных, но при этом стек всегда реализуется какой-то структурой данных. Что, заметим, написано и здесь (если не обрывать цитирование на половине предложения, как это сделали вы), и в параграфе 2.10.5.
ответить
☞ From Иван aka technocrat (unverified) Thu Mar 6 12:28:30 2025 UTC
offtop
Андрей Викторович, здравствуйте!
Несколько минут назад узнал о выходе электронного издания книги и хочу сказать, что Вы глыба!
Простите меня, если метафора Вам не понравится.
Я 74-го года рождения, программирование для меня некоторая страсть, но профессионально я не смог сделать это своим занятием, кривая жизни увела в сторону.
It doesn't matter.
Это не Ваша проблема.
Не хватает слов для выражения чувств возврата к 90-м, того "духа" пионерии в электронике и в вычислительной технике, восхищения от Вашего энтузиазма, профессионализма, преданности делу, в конце-концов от того, как Вы перекидываете мост между "тогда" и "сегодня".
Будьте здоровы и успехов Вам во всём!
P.S.
Как-то я писал Вам комментарий, в попытке указать на какую-то ошибку в издании и прошу простить за это, она была неуместныой и неудачной.
Тот комментарий Вы, скорее всего "похоронили" и это хорошо.
ответить
Re: offtop
Вот смотрю на это и не знаю, как реагировать. Какое "тогда", какое ещё "сегодня"? Если я только понимаю, про какой исторический период идёт речь, господствовал тогда омерзительный MSDOS, нормальные операционки на обычных компах только-только появлялись, публика про них и не знала толком. Ну, возможно, в те времена не было долбаной вебни, но было бы крайне странно думать, что сейчас кроме вебни нет вообще ничего.
ответить
Re: Re: offtop
Интересный момент: даже сама M$ не рассматривала DOS как что-то, что придёт надолго, они рассчитывали, что эта убогая хрень побудит людей покупать Unix-подобную Xenix, которую нельзя было поставить на PC с завода из-за разногласий между IBM (делавшей PC) и AT&T (которой принадлежали права на Unix). И успешно с этим продолбались, понятное дело. А всё почему? А потому что нехрен прибивать ОС к железу гвоздями -- DOS шёл на любом PC любого производителя as is, а Xenix каждый производитель должен был адаптировать к каждой своей модели PC, и разумеется, самой IBM эта процедура вообще была недоступна.
ответить
Re: offtop
Это конфликтует с моим пониманием истории. До сей поры мне встречалась только такая версия, что Билл Гейтс для MSDOS придумал модель per copy, т.е. вместо того, чтобы лицензировать её IBM за какую-то единовременную сумму, он потребовал, если не ошибаюсь, два бакса за каждый устанавливаемый экземпляр, и с этого началась копирастическая "революция" (ну или революция без кавычек, но в самом поганом смысле слова) в области софта. Упоминание Xenix в окрестностях этой истории я вижу впервые, да и при чём тут MS, на Xenix'е деньги бы зарабатывали не они.
ответить
Re: Re: offtop
Это верно, но не противоречит тому, что юзеру за его же деньги предоставляют в составе компа "троянского коня", который призван побудить его открыть кошелёк ещё раз, и на этот раз пошире, чтобы получить софт получше. Xenix лицензировалась точно так же, per copy (это для неё придумали изначально, ещё до дел с IBM), но значительно дороже, с отдельным вариантом для многопользовательских машин и без возможности купить копию у самой M$. Современная стратегия продаж винды это что-то среднее между таковыми для DOS и для Xenix.
Эта история не очень популярна, поскольку ломает простой и понятный полусказочный сюжет про гениального продажника. Точно так же, как ура-патриоты предпочитают рисовать образ непобедимой армии, а не изучать историю и военное дело, маркетологи рисуют образ акул бизнеса, перекраивающих мир одним решением. Ведь эти образы куда лучше продаются.
ответить
offtop
Если производитель написал для своего PC процедуры ввода и вывода на CON:, чтения и записи секторов дискеты, собрал BIOS (IO.SYS) https://raw.githubusercontent.com/microsoft/MS-DOS/refs/heads/main/v1.25/source/IO.ASM прилагаемым ассемблером и позаботился о процедуре IPL.
ответить
Re: offtop
Под PC здесь имелся в виду не абы какой персональный компьютер, а IBM PC-совместимый персональный компьютер, уже достаточно давно под PC имеют в виду именно это. Без указанных вами особенностей совместимым компьютер бы не был.
ответить
Re: offtop
Gary Kildall:
UNIX1985. Computer Chronicles
У IBM в первой половине 1980-х были машинки с XENIX на мотороловских 68k с 32-разрядной архитектурой. И не только у IBM
ответить
Re: Re: offtop
Судя по тексту, Килдалл говорил о персоналках прошедшей эпохи, когда UNIX уже был, но никто и не думал ставить его на персоналки, то есть, про 1970-е годы, примерно времена процессора Intel 8080. На самом первом IBM PC с Intel 8088 Xenix ещё как работал. А писался он вообще для 18-разрядного PDP-7, у которого даже процессора не было, и памяти от десятка до сотни килобайт.
Мало ли, что там у IBM было, у них и сейчас много всякого есть интересного. На PC-то этого не было.
ответить
Re: Re: Re: offtop
> Xenix ещё как работал. А писался он вообще для 18-разрядного PDP-7
Кто, пардон, для PDP-7 писался? Xenix? Что-то сдаётся мне, к моменту появления Xenix если где ещё и были живые PDP-7, то разве что в музеях.
ответить
Re: Re: Re: Re: offtop
Возможно, что-то я напутал, и не для PDP-7, а для PDP-11. Но на 11 она работала уже совершенно точно.
ответить
Re: offtop
На PDP-7 Томпсон развлекался со своими игрушками, и типа "заодно операционку написал". Она к тому времени (начало семидесятых) была уже безнадёжно морально устаревшей, зато на конкретный экземпляр никто, кроме Томпсона, не претендовал. Ну, типа, тот самый первый Unix, который ещё Unics.
В PDP-11 верю, почему нет. Её и наштамповали экземпляров примерно в 5000 (прописью: пять тысяч) раз больше, и изрядно позднее сделали, и клонов у неё было — когда я на бейсике БК0010 свой стартрек писал, не подозревал, что эта штуковина у меня на столе где-то в глубине души таки тоже PDP11.
ответить
☞ From Саша (unverified) Mon Mar 3 18:39:24 2025 UTC
Содержание
В новом издании «Содержание» подписано как (второе) «Оглавление». Интересно, как так вышло.
ответить
Re: Содержание
Очень просто вышло, закомментарил лишнего. Спасибо за сообщение.
ответить
☞ From NorD (unverified) Mon Feb 17 08:00:08 2025 UTC
Процедуры reset/rewrite
Здравствуйте, Андрей Викторович! Объясните, пожалуйста, следующий момент в Вашей книге: В 2.9.3 "Типизированные файлы" 1-го тома указано, что для режима "только запись" нужно в переменную filemode внести значение 1 и использовать процедуру reset. При этом выше по тексту книги написано, что переменная filemode влияет на процедуру reset, но не влияет на процедуру rewrite. Далее в главе 2.9.4 "Блочный ввод-вывод" в коде примера block_cp.pas перед открытием файла dest на запись мы заносим в переменную filemode 1 и используем процедуру rewrite, хотя это противоречит ранее изложенному. Правильно я понимаю, что в данном случае всё-таки должна применяться процедура reset? P.S. Спасибо Вам за книги и удачи в Ваших начинаниях.
ответить
Re: Процедуры reset/rewrite
Нет, там по смыслу нужна именно rewrite, а вот заносить какое-то значение в filemode перед её вызовом не нужно. Это должно было исчезнуть из примера при подготовке второго издания, но, как видим, не исчезло.
ответить
☞ From G (unverified) Fri Feb 7 10:36:53 2025 UTC
Файлы
А где файлы с примерами?
ответить
Re: Файлы
Законный вопрос.
До какой-то степени можно продолжать использовать архив примеров от второго издания, но, если честно, это так себе решение, поскольку в тексте книги многие примеры кода подверглись заметному редактированию. Придётся мне с этим что-нибудь придумать.
Технически проблема в том, что архив примеров один на все три тома, и там ожидаются, естественно, дальнейшие изменения по мере подготовки оставшихся двух томов. В общем, надо подумать, в каком виде это всё теперь публиковать.
ответить
Re: Re: Файлы
Редактирование в плане исправление опечаток и ошибок или какие-то примеры были основательно переработаны для большей наглядности?
ответить
Re: Re: Re: Файлы
В примерах конкретно к первому тому самое заметное изменение — в полноэкранных программах коды кнопок раньше (увы мне) присутствовали в виде чисел прямо в коде. Сейчас они вынесены в именованные константы.
В примерах к остальным двум томам, возможно, будут более серьёзные изменения; в частности, я планирую избавиться от идиотского (комитетского) sig_atomic_t.
ответить
☞ From Руслан (unverified) Tue Jan 28 21:12:52 2025 UTC
Задачник
Андрей Викторович, подскажите, задачник для второго издания учебника применим к новому изданию?
ответить
Re: Задачник
Не вижу, каким образом он мог бы стать "неприменим". Насколько я помню, ссылок на трёхтомник по номерам страниц в задачнике всё-таки нет, номера параграфов не изменились.
ответить
☞ From a (unverified) Mon Jan 27 10:59:37 2025 UTC
Errata
В издании 2.9 в 1 томе на странице 36 есть сноска номер 21. В ней слово "ps" должно быть напечатано другим шрифтом.
ответить
Re: Errata
Есть такое, благодарю
ответить
☞ From Алексей Л. (unverified) Mon Jan 27 07:20:54 2025 UTC
Печать издания 2.9
Издание 2.9 очень сложно распечатать, т.к. там что-то не то с размерами страниц :(
ответить
Re: Печать издания 2.9
http://www.stolyarov.info/node/427#cmt3
ответить
☞ From Anonymous (unverified) Sat Jan 25 02:30:44 2025 UTC
Том 1, стр 44
Я вас надеюсь не сильно заспамил комментариями? Комментарии/ошибки/неточности лучше в одном комменте или отдельно?
> При выполнении заданий практикума
Видно, что скопировано из методички без редактирования. Можно конечно так и оставить, но немного некрасиво.
Кстати и часть про логин в линуксе через putty или иксы где-то раньше тоже мне показалась странной, но я только сейчас осознал, что она тоже скопирована из какой-то методички без изменений. Там речь идёт о дисплейном классе, а в книге вроде как предполагается самостоятельно установленный линукс.
Ну и до кучи, echo "" "$3" "$2" "$1" можно было бы заменить на printf, чтобы избежать неаккуратного пробела, но я думаю то за ошибку не считается, так что я не стал писать сразу.
ответить
Re: Том 1, стр 44
> Комментарии/ошибки/неточности лучше в одном комменте или отдельно?
Лучше отдельно. Далеко не всегда есть достаточно времени, чтобы обработать целиком поступившую простыню.
> Видно, что скопировано из методички без редактирования.
Есть такое, да. Это всё изначально пришло отсюда, там даже основная проблема не в том, в классе всё происходит или дома, а в том, что текст чёрт-те как написан, в 2009 году я ещё недостаточно насобачился на такие тексты. В планах стоит перетряхнуть весь этот текст целиком.
> можно было бы заменить на printf
Простите, вы что, издеваетесь? Посмотрите внимательно на окрестности этого фрагмента и прикиньте, как будет выглядеть, если туда впендюрить ещё и рассказ про printf(1) (особенно учитывая, что текст ориентирован на людей, не имеющих никакого представления о Си).
ответить
☞ From Anonymous (unverified) Fri Jan 24 22:02:21 2025 UTC
Том 1, стр 38
VI — это шесть римскими цифрами, а редактор таки vi
ответить
Re: Том 1, стр 38
Согласен, спасибо.
ответить
☞ From Anonymous (unverified) Thu Jan 23 01:22:16 2025 UTC
Том 1, стр 27
> flash-брелке
По идее правильно будет с буквой о, flash-брелоке. Я тоже удивился, что оно так склоняется, но вот так.
ответить
Re: Том 1, стр 27
"Брелоке" это старая норма, из времён, когда слово "брелок" ещё не укрепилось в русском языке, и подчинялось его правилам лишь условно. В настоящее время оба варианта официально определены, как равноправные, а неофициально вариант, где "о" не выпадает, уже почти стал архаизмом.
ответить
☞ From anon (unverified) Tue Jan 21 19:22:48 2025 UTC
Изменения в издании 2.9
Извините, а какие есть ключевые изменения в новом издании?
ответить
Re: Изменения в издании 2.9
"Ключевых" нет. В основном исправлены ошибки из эрраты. Из нового — доработаны некоторые параграфы про оформление кода, особенно 2.12.9 и 2.12.10. Ну и ещё много где есть по одному-два абзаца, всего не вспомнить.
ответить
Re: Re: Изменения в издании 2.9
Хорошо, спасибо
ответить
☞ From Anonymous (unverified) Fri Jan 17 04:56:40 2025 UTC
Стр 23, том 1
"без малого полвека" — уже не "без малого", а чуток больше полвека. Декабрь 1974 — появление Альтаира 8800, то есть ровно полвека - декабрь 2024.
ответить
Полвека ПК
Альтаир 8800 - ещё не привычный прибор, а нечто среднее между игрушечным однобитным Kenbak'ом и настольными миниЭВМ (в том числе и для "персонального", хоть и не домашнего, использования), которыми в 1970 уже никого не удивишь.
Изобретатель Kenbak'а со своим изобретением
Конечно, Альтаир запустил микрокомпьютерный хайп, который привёл в том числе и к
взлёту бизнеса трёх корпораций на буквы A, D и Мпоявлению ПК в привычном виде.ответить
Re: Полвека ПК
Альтаир уже вполне себе ПК. Я довольно долго ковырялся на эмуляторе с ним. Хотя IMSAI 8080 пожалуй лучше.
ответить
☞ From Anonymous (unverified) Thu Jan 16 16:57:24 2025 UTC
Адресная арифметика в паскале
На странице 14 написано "за исключением разве что адресной арифметики" в отношении паскаля, но в гостевой книге есть примеры с таковой на паскале.
Интересно, адресная арифметика появилась только в Free Pascal или в TP и Delphi уже была?
ответить
Re: Адресная арифметика в паскале
Насколько я помню, в TP 7.0 честной адресной арифметики ещё не было, хотя, например, динамические массивы, от которых сишностью пасёт на километр, были уже в 5.0.
Так или иначе, на том этапе обучения, на который рассчитана паскалевская часть книги, адресная арифметика скорее вредоносна. Придумать такие задачи, которые невозможно было бы решить без списков, при этом имея динамические массивы (хоть в каком их варианте), и при этом достаточно простые для начинающих, лично я не возьмусь; следовательно, если обучаемому дать доступ хоть к адресной арифметике "по-честному", хоть к тем динамическим массивам, которые тянутся ещё с TP 5.0, если не раньше — то всё, нормально работать с указателями он никогда уже не научится.
ответить
Re: Re: Адресная арифметика в паскале
Проблема с динамическим массивом понятна - если массив может ресайзить сама RTL, то нет особой мотивации изучать, как это делать вручную, но с адресной арифметикой в чём проблема?
Если ученик додумается, скажем, выделять при необходимости вдвое больше памяти и копировать массив в новую область памяти, а потом забывать старую, это тоже требует понимания указателя как идеи. Хотя я и не предлагаю специально этому учить раньше времени.
ответить
Re: Re: Re: Адресная арифметика в паскале
> Если ученик додумается, скажем, выделять при необходимости вдвое больше памяти и копировать массив в новую область памяти, а потом забывать старую, это тоже требует понимания указателя как идеи.
Нет, не требует. Скажем так, я видел людей, делающих вот это вот не задумываясь, но при этом натурально паникующих при виде списка или дерева. А вот человека, легко обращающегося со списками, но при этом испытывающего проблемы с массивами динамически определяемой длины, я не видел ни разу.
ответить
Re: Адресная арифметика в паскале
Адресная арифметика с
PChar
появилась в TP/BP7 и TPW вместе сPChar
, если мне не изменяет память.Борландовский странноватый пример к
StrEnd()
:function StrEnd(Str: PChar): PChar;
TP7.0 Programmer's Reference (9.9M)
ответить
Re: Адресная арифметика в паскале
Тут да, я вполне могу ошибаться. Дело в том, что я TP осваивал на версии 5.5, активно писал (за деньги) на 6.0, "семёрка" у меня была, но я, скорее всего, не использовал от неё новые возможности, поскольку к моменту её появления (в смысле у меня, а не вообще в природе) все мои проекты на Паскале уже существовали, новых я не начинал. Поэтому если там что-то такое появилось, я мог просто не обратить внимания.
ответить
Re: Re: Адресная арифметика в паскале
Между 6.0 и 7.0 вышел такой "новый" продукт под названием Turbo Pascal for Windows 1.0(и 1.5)
В нём, похоже, и появилось это расширение для удобства прямого вызова функций 16-разрядного WinAPI. Вместе с фирменным борландовским стилем кнопочек, которые рисовала BWCC.DLL
ответить
☞ From Anonymous (unverified) Wed Jan 15 13:52:47 2025 UTC
Второе издание, которое вы держите в руках
На странице 17 в параграфе "Структура книги и используемые обозначения" во втором абзаце написано: "Второе издание, которые вы держите в руках...", хотя речь идёт про электронное издание 2.9.
ответить
☞ From Anonymous (unverified) Wed Jan 15 11:49:08 2025 UTC
Аннотация
На второй странице учебника в аннотации дважды повторяется: "Первый том учебника содержит три части, охватывающие базис знаний о программировании как виде деятельности" в конце первого и начале второго абзацев.
В прошлом издании фраза была только в первом абзаце, поэтому, возможно, оно было добавлено во второй абзац случайно.
ответить
Re: Аннотация
Есть такое, да. Чуть позже заведу страничку для эрраты.
ответить