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

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

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

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение SSerge » 16.01.2012 17:54:45

Oleg_D писал(а):А вот на Висте не получается у меня. :(
У кого удалось на Висте и семерке? Поделитесь опытом.


Не работает на Windows 7.
Интереса ради посмотрел инет - превалирующая точка зрения, что начиная с Висты, фичу выключили напрочь.
Официалы MS вроде как рекомендуют для Windows 7 следующее: запустить "XP Mode" (виртуализатор такой), а уж из него добыть консоль. Проверить никак не могу, потому что этот самый виртуализатор может быть только на Pro и Ultimate, у меня версия ниже.

Народ, кстати константирует с ужосом, что rk.com под семеркой тоже не работает, наконец то :)

Так что правильный рецепт - для древностей типа BP7 в Висте/7 - ставить DOSBOX, русифицировать его окно стандартным для DOS способом - и заодно это решит проблемы с Runtime 200/Runtime 3 при запуске.

Или пользоваться наконец FreePascal, в его консоли нет проблем с русификацией, ибо не DOS. Ж)
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Oleg_D » 16.01.2012 18:11:31

Vadim
SSerge
Да, Вы правы, пожалуй. Либо Free, либо виртуалка.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Oleg_D » 27.01.2012 13:52:12

2012-01-25 выложена 9-я редакция книги Песни о Паскале

Нумерация страниц не изменилась.
Исправлены мелкие ошибки и добавлено 40 задач.
Обновлен файл с решениями.
Обновлен архив с исходными текстами программ

Исправлены ошибки на следующих страницах

Код: Выделить всё
Глава   Страница
24    156
28    188
31    216
33    237
Прилож. А  545

Добавлено 40 задач к следующим главам

Код: Выделить всё
Глава   Страница
13   95
14   100
15   105
16   110
17   115
18   120
19   126
20   135
24   162
25   170
26   178
27   185
30   209
32   229
33   240
37   267
46   357
49   389
52   412
53   420
54   434
59   495
60   500
61   519
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Vadim » 29.01.2012 08:21:42

Отлично! :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Valeriy » 20.02.2012 16:43:27

Опечатка, Глава 33 стр 239
Код: Выделить всё
Type TMonth : (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);

: вместо =

И ещё, объясните пожайлуста, в этом же примере в строке Writeln ( SizeOf(m) ); { 1 }, единица, это объём занимаемой памяти?
Я откомпилировал во FreePascal такой текст:
Код: Выделить всё
Type TMonth = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
      Var m : TMonth;
begin
Writeln ( SizeOf(m) );
readln
end.

И результат получился (4).
Заранее спасибо!
Valeriy
новенький
 
Сообщения: 14
Зарегистрирован: 02.09.2011 06:13:57

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Oleg_D » 20.02.2012 17:40:07

Valeriy писал(а):Опечатка, Глава 33 стр 239

Спасибо за подсказку, подчищу в следующей редакции.
Valeriy писал(а):И результат получился (4).

Результат зависит от настройки компилятора:
Options --> Compiler --> Compiler Mode :
1) Turbo Pascal и Delphi дают 1
2) Free Pascal Dialect дает 4
В первом случае экономней расходуется память, но страдает быстродействие, а во втором случае - наоборот.
ps
Современные процессоры быстрее работают с 4-байтовыми словами, чем с байтами.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение anonimus » 23.02.2012 13:16:05

Здравствуйте,спасибо за книгу. В целом всё относительно понятно написано. Единственно,что напрягает-малое количество задач для закрепления. Одна-две типовые задачи в секции "слабо" это маловато. Не каверзных вопросов,а именно задач. Именно на практике ведь набивается рука и лучше запоминается то,что было прочитано. Приходится придумывать самому,что не очень удобно и эффективно. Пробовал поискать задачники в интернете,но они все расчитаны на хоть какое то знание языка и для работы с этой книгой не подходят.
Вот пример двух хороших задач в одной главе:
"В) Пусть ваша программа запросит три числа: A, B и C, а затем напечатает
большее из трех чисел.
Г) В стене прорублено прямоугольное отверстие со сторонами A и B. Пусть
ваша программа разберется, пройдет ли в него кирпич с ребрами X, Y, Z."
Обе заставляют подумать и применить полученные знания на практике,что дает большее понимание материала.К тому же имеют различные варианты решения. Очень хотелось бы,чтобы подобных задач было больше.
anonimus
незнакомец
 
Сообщения: 5
Зарегистрирован: 23.02.2012 12:47:20

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Oleg_D » 23.02.2012 14:00:45

Уважаемый anonimus, спасибо за оценку. По части задач я каюсь словами классика: "признаю свою вину: степень, тяжесть, глубину...". В 9-й редакции добавил еще 40 задач, но и этого мало. Если и добавлю в дальнейшем задачи, то немного - не хочу нарушать разбивку на страницы. Вот отдельный задачник можно бы сделать, - есть такое желание, но сроков не назову. А пока рекомендую ссылку, где много простых задач для начинающих:
http://ptaskbook.com/ru/tasks/index.php
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение anonimus » 23.02.2012 14:51:37

Спасибо,посмотрю. В общем то я об отдельном задачнике и говорил,куда можно вынести вообще все задачи и вопросы с разбивкой на главы. Задачник,привязанный к книге был бы очень полезен. Пусть даже для начала по 5-6 разнотипных задач на главу.
anonimus
незнакомец
 
Сообщения: 5
Зарегистрирован: 23.02.2012 12:47:20

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Paster Fob » 23.02.2012 17:30:00

Ну я так-то ещё и на других сайтах ищу задания,вот например
http://pascal.neru9.com/news.php там есть и видеоуроки и задачи.
http://pas1.ru/ здесь описание языка и примеры решения многих задач.
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение minoshi » 23.02.2012 21:52:34

Доброго времени суток!
Ваша редакция №9, мои мысли вслух, так что внимания на этот пост можете не обращать. Кое-что уже упоминалось, но я делал пометки до прочтения темы. Начал читать главу 13.

1. Забей на блок-схемы (или вынеси их в отдельную главу, куда нибудь в конец). Ведь книга не для учеников и студентов! Реально блок-схемы используются только в больших проектах, в маленьких программах нет смысла их использовать. а значит упоминание блок-схем только отвлечет читателя.

стр 23 "Компьютеры породили миф о "думающих машина", - пропущена буква "х" в конце

Глава 4 Ide freepascal - можно было предложить альтернативы, например Geany. Достаточно удобная штука. Если хотите могу сам написать как устанавливать и настраивать geany для pascal. Но я жадная сволочь, потребую взамен своего упоминания в книге :)

стр 40 все - таки "program" стоит упомянуть, с уточнением, что в современных версиях его использовать не обязательно. Увидит ваш читатель код программы, где есть "program" и как минимум потратит время на поиски, чтобы понять что значит это слово. Ведь книга пишется, для тех кто ранее с паскалем дела не имел и не у каждого есть учитель, не так ли?

стр 42 - Цитата : "программисты привыкли к этому слову - "печатать"". Неправда! Мы привыкли к словосочетанию "вывести на экран". Так было во времена ms-dos и
turbopascal. Или "вывести на консоль" - это когда я стал работать с линуксом и fpc.
Под "печатать" понималось или распечатывание на принтере, либо сам процесс набора текста на клавиатуре, т.е. действия человека, но не программы.

стр 43 Цитата : "Существует ограничение на длину строки - не более 255 знаков". Хм. Попробуйте выполнить в freepascal (ведь Вы рекомендуете freepascal, не так ли?)
Код: Выделить всё
begin
writeln('d gsdkflgsdkfgl sdk;g dsgdfgjhds fghkdjg sdjg djghd fgjskdhgjdfhg jdsg dfjhgsfgh fdsghkdfhkgjsd hfgjfdhkgsjdhg sdgdghs dghkdsjgh fgksjdfghjfdhgksdfgkjdfhgkdsfgjksdgjsdhg jsdhgfgjdfjkgh dsjghksd gdjfkg sdkjghdfjkh gskdghsdhgsdjkfgh skdjfgjsdghkjsdhgskdjfhgkjsdgjdfskhsj ggh jsdfk hg');
end.
другое дело, что такую строку нельзя набрать в freepascal IDE, но можно, например, - в текстовом редакторе, а потом в командной строке скомпилировать и запустить.

стр 47 - в облаке "Заголовок окна,имя файла" можно упомянуть, что за заголовок можно перемещать окно.

Глава 7 стр 50 - странно со стороны автора предположить, что пользователь напишет 5 раз writeln не разделенных знаком ";", т.к. на стр 45 в самом конце страницы Вы пишите, цитата : "Между процедурами должен стоять разделитель - точка с запятой (;)."

стр 52 - Цитата : "Действует процедура Readln .... "Enter" ". Эту фразу стоит переписать, т.к. может сложиться впечатление, что в readln можно нажать только ENTER. Зачем вводить в заблуждение? Может упомянуть, что более подробно об readln говорится далее (на стр 60).

стр 56 Говоря о константах НЕОБХОДИМО упомянуть, что значение константы неизменно, в теле программы изменение значения константы повлечет ошибку компиляции. Если это не упомянуть, то как читатель будет решать третью задачу из группы задач под буквой Б на стр 62(там где const pele= ....и далее ... readln(pele)....)? Он получит ошибку, но причину ее возникновения может не понять. Кстати ответов на эту группу задач в ответнике нет. Так и задумано?

стр 61 Стоит сказать, что вывести на экран "Здравствуй, <имя>" можно еще и так writeln('Здравствуй, ' + name); Впрочем, о сцеплении Вы говорите на стр 65.

стр 62 В ответах к главе 8 есть ответ на вопрос В, а в книге самого вопроса под этой буквой нет :)

стр 64 Вы впервые упомянули оператор присваивания. Очень рекомендую отдельным абзацем разжевать разницу между "=" и ":=" (Знак ":=" - для присвоения значения переменной, а знак "=" используется для сравнения и определения констант. На эту фразу вешаю копирайт). Ведь целевая аудитория книги - это те, кто ранее вообще не программировал, но что-то еще помнит из математики. Блин, я помню как на уроках по информатике в 6 классе учитель минут 5 дотошно объяснял, что для ЭВМ "присвоение" и "сравнение" - это две абсолютно разные операции (в отличие от математики, где и для сравнения, и для присвоения используется только знак "="). И то после этого ученики поначалу путались.

стр 76 - Еще раз, неправда! Компилятор fpc не заявит "Error in statement", он заявит :
Код: Выделить всё
pr1.pas(6,1) Fatal: Syntax error, ";" expected but "ELSE" found
Fatal: Compilation aborted


стр 77 как вариант оформления программы
Код: Выделить всё
var s : string;
begin
  writeln('Пароль?'); readln(S);
  if s = 'pascal'
  then begin
       writeln('Распахнуть ворота');
       writeln('Оркестр музыку');
       writeln('Проходите');
       end
  else begin
       writeln('Тревога!');
       writeln('Задержать его');
       end;
  writeln('Нажмите Enter');Readln;
end.
парные begin и end имеют одинаковые отступы, при достаточно большом количестве вложенных блоков - все прекрасно читается. Кстати, Вы пользуетесь этим же принципом в своих примерах, но пример на данной странице не типичен для Вас, да и нормально читается только с подчеркнутыми begin..end, без подчеркивания текст сливается.

стр 80 я бы упомянул, что внутри repeat .. until не нужно ставить begin .. end. А то получается, что только что, в разделе выше про if..then..else Вы научили читателя, что в группы операторов нужно заключать в begin..end, а тут, на тебе, begin..end отсутствуют.

стр 83 - в качестве стёба : "Пароль", "проходите", "стойте" - ну очень вежливый часовой :). Может "Пароль, пожалуйста", "проходите, пожайлуста", "извините, проход закрыт"?

стр 86 Цитата : "Автомобиль не роскошь, а средство передвижения - опрометчиво обронил советский Поэт". Фраза впервые появилась в "Антилопе Гну" Ильфа и Петрова, а они писатели, а не поэты. Поправьте меня, если я не прав.
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Oleg_D » 23.02.2012 23:18:26

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

Да, именно так и хочется сделать, но проблема со временем, - его всегда не хватает.
Paster Fob писал(а):Ну я так-то ещё и на других сайтах ищу задания,вот например

Спасибо, эти ссылочки многим пригодятся.
minoshi писал(а):Ваша редакция №9, мои мысли вслух

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

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

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Vadim » 24.02.2012 02:54:14

Oleg_D
Можно подумать над оформлением отдельного задачника, где будут ссылки на соответствующую главу учебника и задачи для этой главы. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Oleg_D » 24.02.2012 09:27:51

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

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

Re: "Песни о Паскале" - для школьников и начинающих

Сообщение Padre_Mortius » 24.02.2012 10:21:01

Небольшое замечание по поводу оформления кода. Если мне память не изменяет, то для Дельфей был принят своего рода негласный стандарт по написанию кода, на основе которого был написан Jedi Code Formatter. Может стоит все-таки унифицировать этот момент и объяснить правильность оформления кода сразу, иначе потом получаем в коде такую кашу, что пока не прогонишь через форматирование ничего не понятно.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Пред.След.

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

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

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

Рейтинг@Mail.ru