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

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

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

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

Сообщение Vadim » 24.02.2012 10:51:36

Padre_Mortius
Можно написать только общие принципы форматирования кода.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение anonimus » 24.02.2012 11:51:51

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

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

Сообщение Oleg_D » 24.02.2012 17:25:01

minoshi писал(а):1. Забей на блок-схемы

За что Вы их так? :) В блок-схемах нет ничего мудреного, а пользы - ой-ой-ой!. Когда я сталкиваюсь с запутаной проблемой, то малюю квадратики со стрелками, пока все не прояснится в голове. Простые блок-схемы - это правильные блок-схемы.
minoshi писал(а):стр 23 "Компьютеры породили миф о "думающих машина", - пропущена буква "х" в конце

Спасибо, исправляю.
minoshi писал(а):Глава 4 Ide freepascal - можно было предложить альтернативы, например Geany.

Я не применял. Говорят, что для новичков неплох, но это не полноценная IDE - не поддерживает отладку. Но, кому-то, может быть, понравится, так что выкладывайте где-нибудь свою инструкцию, обсудим.
minoshi писал(а):стр 40 все - таки "program" стоит упомянуть

Если найду место, то упомяну.
minoshi писал(а):стр 42 - Цитата : "программисты привыкли к этому слову - "печатать""

Вы тысячу раз правы, - в технических документах никто не позволит себе такой вольности. Но устная речь - иное дело. У нас на работе, к примеру, сплошь и рядом употребляют такие "инженерные" термины, как "штуковина", "фиговина", "плюшка", и мы прекрасно понимаем друг-друга. Утрирую слегка. :D В книге я придерживаюсь разговорного стиля, поэтому позволил себе учредить такую константу:
Код: Выделить всё
const  Печатать = 'Выводить информацию на экран или записывать в текстовый файл';

Это коротко и вполне ясно.
minoshi писал(а):стр 43 Цитата : "Существует ограничение на длину строки - не более 255 знаков"

Я рассматриваю только короткие строки. Если Ваш пример и сработает (не проверял), то все равно не имеет к этим типам строк никакого отношения.
minoshi писал(а):стр 47 - в облаке "Заголовок окна,имя файла" можно упомянуть, что за заголовок можно перемещать окно.

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

Читатель может пропустить задачку, где указана эта подсказочка, а главу точно не пропустит. А если и задачку решит и в главе разберется, - так слава ему! Пусть порадуется :D
minoshi писал(а):... упомянуть, что более подробно об readln говорится далее (на стр 60).

Можно и упомянуть, но я стараюсь избегать необязательных ссылок вперед.
minoshi писал(а):Очень рекомендую отдельным абзацем разжевать разницу между "=" и ":="

Разумно. Попытаюсь найти для этого место.
minoshi писал(а):стр 76 - Еще раз, неправда! Компилятор fpc не заявит "Error in statement"

Похоже, что это сообщение я взял от Borland Pascal, надо исправить.
minoshi писал(а):Может "Пароль, пожалуйста", "проходите, пожайлуста", "извините, проход закрыт"?

В армейских уставах многословие не принято. :D
minoshi писал(а):стр 86 Цитата : "Автомобиль не роскошь, а средство передвижения - опрометчиво обронил советский Поэт". Фраза впервые появилась в "Антилопе Гну" Ильфа и Петрова, а они писатели, а не поэты. Поправьте меня, если я не прав.

Вы правы :D Но в моей памяти почему-то отпечатался Владимир Владимирович (Маяковский, а Вы о ком подумали?). Впрочем, фраза уже не соответствует нашим городским реалиям. :D
Еще раз благодарю за внимание к моим побрехушкам!
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение minoshi » 25.02.2012 10:55:58

Oleg_D писал(а):
minoshi писал(а):... Geany.
Я не применял. Говорят, что для новичков неплох, но это не полноценная IDE - не поддерживает отладку. Но, кому-то, может быть, понравится, так что выкладывайте где-нибудь свою инструкцию, обсудим.
можно просто например дать вот эту ссылку
Oleg_D писал(а):
minoshi писал(а):стр 43 Цитата : "Существует ограничение на длину строки - не более 255 знаков"

Я рассматриваю только короткие строки. Если Ваш пример и сработает (не проверял), то все равно не имеет к этим типам строк никакого отношения.
Здесь Вы четко говорите, что строка (тип STRING) не более 255 символов, а это неправда, что не солидно для учебника. Просто выкиньте эту фразу.
Код сработает :
Код: Выделить всё
[user1@~]$ echo "begin writeln('=START=');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'); writeln('=END=');end." > a1.pas ; fpc a1.pas ; ./a1
Free Pascal Compiler version 2.6.0 [2012/01/02] for i386
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling a1.pas
Linking a1
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
1 lines compiled, 0.1 sec
=START=
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=
[user1@~]$

Oleg_D писал(а):
minoshi писал(а):Может "Пароль, пожалуйста", "проходите, пожайлуста", "извините, проход закрыт"?
В армейских уставах многословие не принято. :D
Да и вежливость тоже ;)
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

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

Сообщение Oleg_D » 25.02.2012 14:20:56

minoshi писал(а):Здесь Вы четко говорите, что строка (тип STRING) не более 255 символов, а это неправда, что не солидно для учебника. Просто выкиньте эту фразу.

Выкинуть легко. Только как Вы объясните новичку, отчего не идет компиляция, если он по какой-то причине вставит длинную строку в свою программку. Мало ли что в его творческую голову придет? Он ведь в IDE-ешке работает, а не в командной строке. Кстати, согласно хелпам, в режимах FPC и TP по умолчанию String - это короткие строки.
minoshi писал(а):Может "Пароль, пожалуйста", "проходите, пожайлуста", "извините, проход закрыт"?В армейских уставах многословие не принято. Да и вежливость тоже

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

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

Сообщение Widowmaker » 25.02.2012 15:02:10

Для линукса ещё есть богатый разными кодировками и подсветками редактор Kate ( требуется KDE ) : http://www.kate-editor.org . Слегка извратившись, его вполне можно настроить как RAD для консольных приложений. :)
И ещё ( сугубое ИМХО ): нелишне было бы в книге сделать акцент на СПО, в идеале пропитав её всю тонким ядом опенсорсного соблазна. :) Признаться, меня несколько удивил выбор довольно замшелого турбопаскаля в качестве основного средства обучения. Помню его образца 87-89 годов, когда он был вполне себе "колесом квадратным". :) 7-я версия, опять же сугубое ИМХО, не слишком далеко от той стародавней ушла.
А вообще-то "настоящий хтмл ваяеццо только в нотепаде"... :lol:
Аватара пользователя
Widowmaker
новенький
 
Сообщения: 37
Зарегистрирован: 27.04.2011 18:32:04

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

Сообщение Valeriy » 26.02.2012 16:22:30

Глава 36 стр 260:
Код: Выделить всё
var R, S1, S2, S3 : set of 1..250;
begin
  S1:= [ 2, 11, 4, 13 ];     { 1-й кружок }
  S2:= [ 9, 17, 12, 11, 3,, 5, 18 ];  { 2-й кружок }
  S3:= [ 14, 2, 13, 15, 20 ];    { 3-й кружок }
  R:= [1..250] – (S1 + S2 + S3);  { R – множество уклонившихся }
end.

В множестве S2:= [ 9, 17, 12, 11, 3,, 5, 18 ]; между 3,, 5 лишняя
запятая.
---------------------------------------------
Также я пытаюсь уложить в голове программу P_37_2 Глава 37 стр 264, а
именно механизм вывода окна для ввода текста с клавиатуры. Вот как я
пытаюсь это проанализировать:
Код: Выделить всё
Assign (F, '');
Reset(F);
While not Eoln (F) do begin
Real (F, k);

Раз мы не задали путь к читаемому файлу в стоке - Assign (F, ''); то
программа пытаясь прочесть данные из файла которого не существует -
строка Real (F, k); не находит этот файл и открывает окно для ввода
данных с клавиатуры чтобы затем их прочесть (как бы создаёт виртуальный
файл)...
Не знаю, верно ли я понял этот механизм?
Извините за крючкотворчество.
Заранее спасибо!
Valeriy
новенький
 
Сообщения: 14
Зарегистрирован: 02.09.2011 06:13:57

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

Сообщение Oleg_D » 26.02.2012 18:24:25

Valeriy писал(а):В множестве S2:= [ 9, 17, 12, 11, 3,, 5, 18 ]; между 3,, 5 лишняя запятая.

Спасибо, я уже знаю об этой опечатке. И вот еще одна на стр. 239
Код: Выделить всё
Type   TMonth : (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
А должно быть:
Type   TMonth = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);

Valeriy писал(а):Также я пытаюсь уложить в голове программу P_37_2 Глава 37 стр 264

Объяснение на стр. 263
Код: Выделить всё
Теперь взгляните на оператор Assign(F,''), – он назначает файловой
переменной пустое имя файла. Этот прием используют для связывания файловой
переменной с экраном дисплея (при выводе данных), либо с клавиатурой (при
вводе). Когда вам потребуется вывести результаты не на экран, а в дисковый файл,
достаточно будет указать нужное имя файла, не меняя процедуры WriteSet.
Примечание. Этот прием не работает в Pascal ABCNet.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение Valeriy » 27.02.2012 12:01:14

Может кому это покажется смешным, но я при разборке каждой программы, особенно когда пошли более сложные, пытаюсь писать свой коментарий. С помощью отладчика смотрю за работой программы шаг за шагом и пытаюсь описать каждый шаг своими словами. Пока я это не опишу у меня в голове ничего не укладывается.
Вот пример описания программы { P_37_4 – решение директорской задачи, вариант 2 }. Может кому будет интересно.
Входной файл у меня имеет путь - c:\infile.txt
А выходной - c:\outfile.txt

Вот описание:
В стр - Readln(FileIn, N); читается первая срока входного файла - c:\infile.txt и N принимает значение N=20.
S:= [].
Затем с помощью двух циклов - while not Eof (FileIn) do и - While not Eoln(aFile) do начинается чтение всего входного файла, строка за строкой, но уже со второй строки, так как первую мы уже прочли до начала действия этих циклов. По окончании чтения входного файла этими двумя циклами, множество S принимает значение S:=[2..5, 9, 11..15, 17..18, 20]. Затем программа переходит к строке R:= [1..N] – S; которая принимает вид R:=[1..20]-[2..5, 9, 11..15, 17..18, 20]. И после операции вычитания множество R принимает значение R:=[1, 6..8, 10, 16, 19].
Valeriy
новенький
 
Сообщения: 14
Зарегистрирован: 02.09.2011 06:13:57

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

Сообщение Oleg_D » 27.02.2012 12:13:49

Valeriy писал(а):С помощью отладчика смотрю за работой программы шаг за шагом и пытаюсь описать каждый шаг своими словами.

Хороший метод. И комментарий вроде бы верный. :)
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение Brainenjii » 27.02.2012 12:22:15

офтопну: есть методика - сначала описываешь словами, что хочешь сделать, потом превращаешь эти слова в комментарии и только тогда начинаешь их реализовывать. Сам себя так научить делать не могу, но плюсы оценил.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение Oleg_D » 27.02.2012 12:30:43

Brainenjii писал(а):офтопну: есть методика - сначала описываешь словами, что хочешь сделать, потом превращаешь эти слова в комментарии и только тогда начинаешь их реализовывать. Сам себя так научить делать не могу, но плюсы оценил.

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

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

Сообщение Valeriy » 27.02.2012 13:29:19

На странице 137 Табл. 1 в пояснении к пункту меню «Run» Trace into по
моему не хватает двух букв:

Выполняет одну строку программы (шаг). Если в
строке есть вызов процедуры, то останов
происходит на входе в нее, – так можно «войти»
внутрь процедуры и следить за ходом её
выполнения.

Вместо 'останов' должно быть 'остановка'

-----------------------------------------
Без отладчика я сроду бы не разобрался в сложных местах программ.
Особенно в какие моменты меняются данные в переменных.
Ещё бы разобраться что означают пункты Until return и Run Directory в
меню отладчика. В книге их описания по моему нет.
Valeriy
новенький
 
Сообщения: 14
Зарегистрирован: 02.09.2011 06:13:57

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

Сообщение Oleg_D » 27.02.2012 13:59:16

Valeriy писал(а):Ещё бы разобраться что означают пункты Until return и Run Directory в меню отладчика.

Смотрим справку по FP:
Until return
Runs the current procedure until it exits. - исполнять до выхода из текущей процедуры. Имеет смысл при трассировке внутри процедур.
Run directory
Set the working directory to change to when executing the program. - смена текущей директории в момент запуска программы. То есть, текущая директория при разработке может быть одной, а при запуске - другой.
-------
Valeriy писал(а):Вместо 'останов' должно быть 'остановка'

Слово "останов" употребимо, вот две цитаты из словарей.
Код: Выделить всё
В программировании, то́чка остано́ва (англ. breakpoint) — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика (одновременно с этим, программа сама может использовать точки ОСТАНОВА для своих нужд).
ru.wikipedia.org


Код: Выделить всё
... или машинного ОСТАНОВА, когда машина выполняет предписание об остановке..
krugosvet.ru›Энциклопедия Кругосвет
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение Brainenjii » 27.02.2012 14:36:25

...разбирается в готовой программе...

офтопну второй раз:
Изображение
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Пред.След.

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

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

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

Рейтинг@Mail.ru