Редактирование и вычитка книги

Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Может быть полезна студентам-первокурсникам и преподавателям информатики.

Модераторы: Oleg_D, Модераторы

Re: Редактирование и вычитка книги

Сообщение Vapaamies » 02.11.2012 01:43:38

Ура! Наконец-то, после долгого перерыва, продолжаем вычитку.

Во-первых, взяв новую версию и двигаясь к тому месту, где остановился, попутно обращал внимания на пропущенные ранее огрехи. Ну, или они сами собой появились, не знаю. :)
  • А кодировка? Это всего лишь часть работы программиста -- труд программиста -- не кодировка (encoding), а кодирование (coding). Кодировка -- только у символов.
  • отойдя от общепринятого порядка изложения «теории» и далее элементы языка не «с потолка свалились» -- кавычки, наши родные. Первые спорны (автор говорит о "теории", рассказывая о теории, -- издевается?), а вторые вообще не нужны. Панки -- такие панки. Ну, то есть образность... :)
  • Кавычки дальше (везде устойчивые выражения, и кавычки не нужны):
    • быть в «шкуре» новичка
    • для него, одинокого «бойца»
    • Отбросьте миф о «думающих» машинах

Нужно проверить поиском/заменой по всему тексту:
  • Написание MS-Windows через дефис. Нужно, как минимум, убрать дефис, а лучше и MS, как договаривались.

Фух, наконец-то добрались до шпионов. Снова кавычки:
  • Наш «шпионский» проект
  • Завершение «шпионского» проекта
  • мы готовы смастерить «шпионскую» программу
  • метод шифрования не так уж «крут»
  • отправимся на экскурсию по своему «кораблю» — среде программирования
  • обошли еще не все палубы этого «лайнера»
  • барабаня по клавишам в попытке «изваять» очередной проект
  • программа не «погибнет»
  • а ошибки мы «душим» всеми средствами
  • вы можете «разгуливать» по справочной системе, как по Интернету
  • переименовать исходный «английский» файл -- тут сомневаюсь, потому как просторечие
  • Отдохнув на «экскурсии», с новой силой набросимся на файлы
  • исполняла должность «электронного часового», охранявшего секретный объект
  • не спешите «потрошить» Пентагон
  • несложную «полицейскую» базу данных -- вероятней всего, и тут не нужны, потому что игривый стиль и так понятен из контекста. После потрошения Пентагона-то.
  • программа должна работать как «часовой»
  • решать задачу будем «в два счета»
  • план предстоящего «сражения», то есть блок-схемы алгоритмов
  • пишет туда заголовок таблицы, — так называемую «шапку»
  • когда мы «нащупали» конец строки, соорудим алгоритм обработки
  • Так вот где «собака порылась», — мы застряли
  • «Виновник» найден? — да
  • во второй версии «полицейской» базы данных
  • не ждите результатов на экране, — программа отработает «молча»

Запятые:
  • А при наличии файла, он будет очищен
  • Прежде всего, договоримся об именах файлов
  • В конце концов, вызывается процедура CryptFile
  • компилируется — значит, работает
  • настраивают двумя способами: в диалоговом окне, и вставкой директив
  • вместо благодарности, вы услышите совсем другие слова
  • Ввиду простоты алгоритма, не буду рисовать блок-схему
  • Во избежание путаницы, лучше учредить разумную систему обозначений
  • До сих пор мы пользовались ею для чтения строк, — и горя не знали -- тут и тире не нужно.
  • В этом алгоритме предусмотрен, также, и подсчет строк входного файла
  • И там и тут читается ряд чисел -- вставить запятую перед "и тут".
  • то есть, загружаются нулями

Почему файловые переменные в программе P_26_2 названы X1 и X2, а не InFile и OutFile? Ян Белецкий, помнится, в этом был очень последователен. Ах, Европа, Европа! :)

А вообще, видя большой листинг в учебнике (пусть даже и в электронной читалке), прямо-таки вспомнил, как сам учился программированию. Если бы не был корректором, наверняка бы прослезился. :)

Такая редкая грамматика:
  • Встретив в тексте упоминание вкладки «Generation code» поначалу подумал, что немецкий английский отличается от общепринятого, но, внимательно посмотрев на скриншот, увидел, что там всё же "Generated code" -- "сгенерированный код", а не "поколение «код»". :lol:
  • Сегодня никого не удивишь возможности нынешних IDE.
  • Схема главной программы ясна из выше сказанного.

Примеры БД:
  • В примерах БД почему-то совершенно не упоминается ни одна российская структура, что мне кажется непатриотичным. Ломать -- Пентагон, а строить -- что-то свое.
  • Другие примеры БД -- базы проводных и мобильных операторов, которые продают в метро, а также базы пользователей на форуме. Правда, уверенности, что школьник возьмется за Паскаль, уже будучи знакомым с вебом, нет.

Упущенные шутки:
  • "В лесу родилась елочка" с номерами строк похожа на табы. Можно предложить ученику взять гитару и попробовать сыграть по ним.
  • Есть небольшие островные страны, где номера автомобилей и вправду трехзначные. Нужно найти такую страну и упомянуть ее, сделав тем самым читателя шерифом дорожной полиции какой-нибудь Республики Кирибати.
  • Если самые высокие оценки -- у Быкова, то самые низкие должны быть у двоечника Медведева, если следовать биржевому жаргону.

Показалось странным, что лидирующее "a" в именах аргументов -- якобы от слова "аргумент". Всегда считал, что своего рода способ записи уникальных имен типа Name1 без использования цифр и одновременно отсылка к английскому неопределенному артиклю.
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 291
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 03.11.2012 12:04:29

Vapaamies писал(а):Ура! Наконец-то, после долгого перерыва, продолжаем вычитку.

Ура!
А кодировка?

И как я это проглядел? Удивительно.
отойдя от общепринятого порядка изложения «теории»

Заключая "теорию" в кавычки, я вот о чем думал. По моим представлениям (и википедия не возражает) теория -- это модель каких то сторон окружающей действительности. Есть физические теории, экономические, социальные и т.д. Язык программирования -- это инженерная конструкция, пусть и не осязаемая. Что-то в роде стиральной машины, холодильника и т.п. Поэтому описание языка, как мне думается, ближе к техническому руководству и на теорию не тянет. Но термин таки прижился, согласен.
Вообще, кавычки вещь довольно субъективная. Я сам при повторных чтениях то ставлю, то убираю их. Восприятие и от читающего зависит, улавливает-ли он иронию автоматом, или нужна подсказка в кавычках. Всё-таки я на 12-летних рассчитывал. Но со стороны видней, как говорится. По части стиля хотелось бы узнать мнение ещё кого-нибудь, мозолят кавычки глаза или не очень? А пока доверюсь вам, но и отвечать будем вместе. :)
Написание MS-Windows через дефис. Нужно, как минимум, убрать дефис, а лучше и MS, как договаривались.

А дядюшка Билл не обидится? По всей строгости тут и торговая марка полагается (и ещё в некоторых местах).
вместо благодарности, вы услышите совсем другие слова

В этой запятой сомневаюсь, а с остальными согласен, спасибо. Как видите, на самом деле лишних запятых у меня не было, только стояли они не в тех местах. :D
Почему файловые переменные в программе P_26_2 названы X1 и X2, а не InFile и OutFile?

Только для кратости. Но ваше предложение принимаю.
Если бы не был корректором, наверняка бы прослезился.

Не понял, эти листинги хорошо или плохо?
Такая редкая грамматика:

Ужасные опечатки! Исправляем.
В примерах БД почему-то совершенно не упоминается ни одна российская структура

А налоговая инспекция? Это же наше, святое! Есть даже день налогового инспектора (мытаря).
Правда, уверенности, что школьник возьмется за Паскаль, уже будучи знакомым с вебом, нет.

Точно, для программирования это уже потерянные души.
Если самые высокие оценки -- у Быкова, то самые низкие должны быть у двоечника Медведева, если следовать биржевому жаргону.

Интересная мысль, не подумал. :D
Показалось странным, что лидирующее "a" в именах аргументов -- якобы от слова "аргумент". Всегда считал, что своего рода способ записи уникальных имен типа Name1 без использования цифр и одновременно отсылка к английскому неопределенному артиклю.

А я об артикле никогда не думал. Вы, часом, не английский шпион? :D
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 06.11.2012 14:57:12

С подсказанными запятыми, кавычками и прочим разобрался, всё принято. Спасибо, сам бы я этих мелочей никогда не заметил. Новую редакцию пока не выкладываю, надеюсь на продолжение.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение Vapaamies » 20.11.2012 00:14:52

Пытался-пытался я найти время и настроение, чтобы продолжить вычитку и дойти хотя бы до конца очередной главы, но так и не получилось. Поскольку в прошлый раз вычитал полторы главы (или подзаголовка?), то сейчас решил сбросить наработанный материал до ближайшей границы. Времени с вычитки прошло достаточно, но надеюсь на свою память (в заметках на бумажке не все удается отразить). Возможно, после этого поста будут еще дополнения, если вспомню чего. Ну, и вопросы задавать не возбраняется, как обычно.

Кавычки:
  • REAL — «родной» для Паскаля
  • А фамилию S «склеим» из отдельных букв
  • Read (он не «видит» конца строки) -- можно бы исправить на "не видит", но я бы просто убрал кавычки, ибо понятно и так.
  • Строку выходного файла можно формировать «порциями»

Лишние запятые:
  • Для деления вещественных чисел, в Паскале есть другая операция
  • Запустив новый вариант программы, и открыв выходной файл
  • перед вами, так называемый научный формат

Прочее:
  • Но этого еще не достаточно. -- разве "недостаточно" не слитно?
  • Функция Eoln назначена следить за признаком конца текущей строки -- кем назначена? Термины, имеющие конкретный смысл в программировании, не стоит использовать как-то еще, чтобы не вносить путаницы. Тут речь о конкретном понятии -- функции, и ее описание должно быть математически четким, без лирики.
  • Увы! при чтении фамилий надо проявить терпение. -- снова придирка по поводу незаглавной буквы, которую вы наверняка спишете на авторский стиль. Голосовой разговор у нас так и не состоялся, а то я бы продемонстрировал, как читаются подобные места в текущей пунктуации.
  • был похож на настоящий классный журнал с фамилиями, как о том сказано в начале 30-й главы -- мне кажется не к месту "о том". Тут либо должно стоять "о нем", либо вообще убрать.
  • Для чтения отдельного слова в строке файла не годятся ни оператор Readln (он прочитает всю строку), ни оператор Read -- э-э-э, когда это Read и ReadLn стали операторами? Отставить Бейсик!

В тексте написано, что другие вещественные типы появились в Паскале с появлением персональных компьютеров. Это не совсем так.

Дело в том, что в то время, когда состоялся переход от Turbo Pascal 3.0 к 4.0, сопроцессоры 8087/80287 наконец-то подешевели настолько, что получили массовое распространение. Предвидя это, ведущими производителями железа был выработан и принят стандарт IEEE 754, унифицировавший двоичный формат чисел с плавающей запятой. Появился даже термин "число в формате IEEE", положивший конец разнобою в форматах и самопальным реализациям, к которой и относился тип Real Паскаля, придуманный Виртом задолго до всяких IEEE. Единый формат был добавлен и в компиляторы. Так в Turbo Pascal 4.0 появились типы Single, Double и Extended.

32-битные ОС для PC, первой из которых была Windows 95, получили распространение одновременно с процессорами Pentium, где сопроцессор уже находился на кристалле и потому присутствовал на всех машинах с Pentium. Вопрос об эмуляции не стоял, и в Delphi тип Real стал синонимом Double, совместимому с IEEE и реализуемому аппаратно -- командами сопроцессора. Надо полагать, что в FPC так же, поскольку компилятор 32-битный. Уточните по документации.

Для чтения-записи и обработки совсем уж старых двоичных данных, записанных старыми программами, в Delphi есть редко используемый формат Real48, двоично идентичный самопальному Real первых версий Turbo Pascal. Не знаю, есть ли он в FPC.

При первом описании научного формата и далее:
  • Не раскрываются термины "мантисса" и "порядок", не знакомые читателю ранее и наверняка не изучаемые в школе. Помню, что до знакомства с программируемым калькулятором я этих слов не знал.
  • Не дается расшифровка буквы e -- сокращения от "exponent" -- "степень".
  • Нигде не дается логическая расшифровка записи вида 6.022E23 как 6,022 · 10²³, из-за чего понятия мантиссы и порядка продолжают оставаться каббалистикой и далее. А ведь если увидеть число Авогадро в привычной записи, вопрос, почему эту несуразицу с E вдруг назвали научным форматом, отпадет сам собой.

Про "советское" именование файлов и переменных. Написание русских слов латиницей и нетипичные сокращения раздражают любого нормального программиста, я думаю. И если в СССР это оправдывалось незнанием английского и скудостью словарей, то сейчас отмазка не катит, как говорится. Раз уж мы решили ориентироваться на международный стиль с Caesar, продолжаем с Journal вместо Jurnal и FamilyName вместо Fam.

В английских анкетах, если не путаю, First Name -- обычное имя в нашем понимании, Second Name -- второе имя, как Мария в имени Анна-Мария, а фамилию или родовое имя обозначают либо как Surname, либо как Last Name, либо Family Name. Последнее мне кажется наиболее понятным одновременно всем и не вызывающим отторжения. Но именно как FamilyName, а не Family -- "семья", и не Fam -- сокращение от Familiya.

Далее в тексте, соответственно, должны быть ReadFamilyName и т. д.

Последнее соображение -- по поводу Symbol. Тут уже сказывается разница в культурном контексте. Англичанин или американец никогда не назовет символ родного алфавита словом symbol, только character. Symbol -- это либо небуквенный знак, либо греческая буква, обозначающая абстрактное понятие в математике или физике, как ∑, π или ρ. Именно поэтому соответствующий (ныне устаревший) шрифт в Windows называется Symbol, а написание через "игрек" -- «и» греческое -- напоминает о его заимствовании.

На сегодня всё. В этот раз получилось много "лирики", поэтому думаю, что достаточно.

Добавлено спустя 5 минут 33 секунды:
Oleg_D писал(а):Вы, часом, не английский шпион? :D

У меня ник финский. :lol:
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 291
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 20.11.2012 09:10:47

По кавычкам, запятым и прочим замечаниям согласен. Некоторые из них уже исправлены, с дня на день выложу новую редакцию.
Vapaamies писал(а):В тексте написано, что другие вещественные типы появились в Паскале с появлением персональных компьютеров. Это не совсем так.

Конечно. Но здесь не хотелось пускаться в слишком пространные рассуждения. Можно так: "другие вещественные типы появились в Паскале с появлением в персональных компьютерах математических сопроцессоров". И ещё добавить кое-что из ваших слов (в пределах бумажного пространства). Число Авогадро -- отличный пример.
По поводу англо- и американской грамматики. Вы правы, не спорю. Но я вынужден ориентироваться всё-таки на наших детишек. А им тяжело воспринимать длинные английские словосочетания, а тем более набирать их на клавиатуре. Думаю, что "Fam" будет восприниматься вполне адекватно. По этой причине отказаляся от "CaesarKey" и вернул "CKey". Прививать параллельно с программированием ещё какие-то знания -- цель хорошая, и я пытаюсь это делать не перегибая палку.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение Vapaamies » 20.11.2012 14:20:30

Oleg_D писал(а):Но я вынужден ориентироваться всё-таки на наших детишек. А им тяжело воспринимать длинные английские словосочетания, а тем более набирать их на клавиатуре.

Ваша книжка -- учебник по программированию для будущих программистов, за пределами школьной программы. Поэтому он должен отсеивать случайных людей, чтобы потом нам не приходилось их переучивать или даже отсеивать уже на производстве.
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 291
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 20.11.2012 15:41:53

Vapaamies писал(а):Ваша книжка -- учебник по программированию для будущих программистов, за пределами школьной программы. Поэтому он должен отсеивать случайных людей, чтобы потом нам не приходилось их переучивать или даже отсеивать уже на производстве.

Да, согласен, для будущих. А случайные люди её, пожалуй, и не осилят.
Что касается английского, то в разных школах дела обстоят по-разному, все это знают. В крупных городах, да в хороших школах -- неплохо, а где-то труба пониже и дым пожиже. На педагогических сайтах, где я пасусь, нередко обсуждают тему: полезно-ли русифицировать ЯП для детей? Многие склоняются к тому, что русификация облегчает начальный этап обучения. По мне, это уже другая крайность.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение Vapaamies » 22.11.2012 04:55:45

Oleg_D писал(а):На педагогических сайтах, где я пасусь, нередко обсуждают тему: полезно-ли русифицировать ЯП для детей?

Мне кажется, что они больше себе работу облегчают, нежели ученикам. Это я вам как человек, прошедший через все сита, скажу. Сколько себя помню, всегда было интересно изучать новые слова незнакомого языка, выходящие за рамки курса обычной советской школы, без углубленного изучения. Я именно в такой и учился. Музыка да компьютеры и стимулировали изучение английского.

Добавлено спустя 16 минут 20 секунд:
Oleg_D писал(а):с дня на день выложу новую редакцию.

Мне тогда как, ждать новой версии?
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 291
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 22.11.2012 08:40:39

Vapaamies писал(а):Мне тогда как, ждать новой версии?

Да, лучше отдохните денёк-другой. Надеюсь, что плотность ошибок в новой редакции понизится. :)
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение bormant » 23.11.2012 17:03:16

Oleg_D писал(а):
Vapaamies писал(а):Под конец еще раз замечу, что лучше пользоваться связкой Chr/Ord, а приведение типа Char/Byte оставить на будущее.

Chr/Ord – если не ошибаюсь, это единственные псевдофункции, введённые Виртом. А ещё тогда не было строк, модулей, ограничивался порядок секций и т.д. и т.д. Об ООП вообще молчу. Всё же мы привыкли к Борландовскому Паскалю, теперь это фактически стандарт, и я опираюсь в основном на него. К этой теме можно вернуться в 32-й главе, где она развёрнута более широко. Пока вроде бы никто не пугался и не жаловался на непонимание в этом вопросе.
Тогда попробую напугать и запутать ;) Приведение типа, прежде всего отличается от функции тем, что может быть использовано и в левой части выражения присваивания:
Код: Выделить всё
var
  c: char; b: byte;
begin
  byte(c) := 32; char(b) := ' ';
  writeln('"', c, '", ', b);
end.
Далее, хрестоматийные примеры с полусловами:
Код: Выделить всё
type
  WordRec = packed record Lo, Hi: Byte end;
  LongRec = packed record Lo, Hi: Word end;
var
  w: Word; l: LongInt;
...
  WordRec(w).Lo := 0;                { w := w and $FF00}
  Inc(WordRec(w).Hi);
  WordRec(LongRec(l).Hi).Hi := $AA;  { l := l and $00FFFFFF or $AA000000 }

B раз уж форум про fpc, есть у него дефектик в отношении chr/ord, не считает он их полностью магией компилятора, позволяя {1}, не позволяет {2}:
Код: Выделить всё
const
  a = chr(32);                   {1}
var
  b: set of chr(32)..chr(255);   {2}
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Редактирование и вычитка книги

Сообщение JetV97 » 02.12.2012 08:10:35

Очень хорошая книга. НО. Нашел ошибку с которой я не могу продолжать обучатся
Код: Выделить всё
v a r S : S t r i n g ;
B : B o o l e a n ;
b e g i n
Wr i t e l n ( ’ В в е д и т е “ 1 ” д л я T RU E и п р о ч е е – д л я F A L S E ’ ) ;
R e a d l n ( S ) ;
i f S = ’ 1 ’ t h e n
B : = t r u e
e l s e B : = f a l s e ;
e n d .

После введения единицы или прочего, ни true, ни false не появляются.
P.S. Не ругайтесь, я только до 13 главы прошел, а из-за этой ошибки :roll:
JetV97
новенький
 
Сообщения: 11
Зарегистрирован: 29.11.2012 15:28:11
Откуда: Россия, Москва

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 02.12.2012 11:51:41

Откуда у вас такой причудливый текст вразрядку?
Вот ваш работающий пример, скопируйте через буфер обмена и проверьте.
Код: Выделить всё
var S : String;
    B : Boolean;
begin
Writeln ('Введите "1" для TRUE и прочее для FALSE ' );
Readln ( S ) ;
if S = '1'
then B := true
else B := false;
Writeln (B);
Readln
end.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение bormant » 02.12.2012 13:06:01

А зачем в этом случае if ?
Код: Выделить всё
var
  c: char;
begin
  writeln ('Введите "1" для TRUE и прочее для FALSE ' );
  readln(c) ;
  writeln(c = '1');
  readln
end.
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Редактирование и вычитка книги

Сообщение Oleg_D » 02.12.2012 14:47:12

Ага, понял, пример взят с 88-й страницы книги, скопирован прямо из PDF, потому так странно и выглядит.
Можно будет добавить печать результата, а то действительно не совсем понятно.
bormant писал(а):А зачем в этом случае if ?

Этот вариант (без IF) рассматривается немного дальше.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Редактирование и вычитка книги

Сообщение mpeg » 03.12.2012 14:30:55

Vapaamies писал(а):
Oleg_D писал(а):Но я вынужден ориентироваться всё-таки на наших детишек.
А им тяжело воспринимать длинные английские словосочетания, а тем более набирать их на клавиатуре.

Ваша книжка -- учебник по программированию для будущих программистов, за пределами школьной программы. Поэтому он должен отсеивать случайных людей, чтобы потом нам не приходилось их переучивать или даже отсеивать уже на производстве.

Я думаю, что книга об основах программирования не должна облегчать работу начальника по производству или специалиста отдела кадров.
Может ещё и о морали и политически модных воззрениях нагрузку надо в Основы втиснуть? :mrgreen:

Изучение какого-либо человеческого языка на сегодня является не решённой теоретически педагогической задачей.
И заниматься партизанщиной вне рамок специального учебного курса и не педагогично и малопродуктивно.

Это не книга о приключениях Колобка, которая может взять на себя дополнительную нагрузку, кроме очевидной.ИМХО.
mpeg
новенький
 
Сообщения: 14
Зарегистрирован: 19.04.2012 15:29:05

Пред.След.

Вернуться в Книга "Песни о Паскале"

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru