Страница 5 из 26

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

СообщениеДобавлено: 16.01.2012 17:54:45
SSerge
Oleg_D писал(а):А вот на Висте не получается у меня. :(
У кого удалось на Висте и семерке? Поделитесь опытом.


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

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

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

Или пользоваться наконец FreePascal, в его консоли нет проблем с русификацией, ибо не DOS. Ж)

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

СообщениеДобавлено: 16.01.2012 18:11:31
Oleg_D
Vadim
SSerge
Да, Вы правы, пожалуй. Либо Free, либо виртуалка.

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

СообщениеДобавлено: 27.01.2012 13:52:12
Oleg_D
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

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

СообщениеДобавлено: 29.01.2012 08:21:42
Vadim
Отлично! :)

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

СообщениеДобавлено: 20.02.2012 16:43:27
Valeriy
Опечатка, Глава 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).
Заранее спасибо!

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

СообщениеДобавлено: 20.02.2012 17:40:07
Oleg_D
Valeriy писал(а):Опечатка, Глава 33 стр 239

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

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

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

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

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

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

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

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

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

СообщениеДобавлено: 23.02.2012 17:30:00
Paster Fob
Ну я так-то ещё и на других сайтах ищу задания,вот например
http://pascal.neru9.com/news.php там есть и видеоуроки и задачи.
http://pas1.ru/ здесь описание языка и примеры решения многих задач.

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

СообщениеДобавлено: 23.02.2012 21:52:34
minoshi
Доброго времени суток!
Ваша редакция №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 Цитата : "Автомобиль не роскошь, а средство передвижения - опрометчиво обронил советский Поэт". Фраза впервые появилась в "Антилопе Гну" Ильфа и Петрова, а они писатели, а не поэты. Поправьте меня, если я не прав.

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

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

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

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

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

Точно. Логическое отрицание часто применяется в последующих главах книги, поэтому надо понять, как оно действует.

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

СообщениеДобавлено: 24.02.2012 02:54:14
Vadim
Oleg_D
Можно подумать над оформлением отдельного задачника, где будут ссылки на соответствующую главу учебника и задачи для этой главы. ;)

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

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

Я пришел к тому же мнению, дело за малым - осуществить это намерение. :)

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

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