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

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

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

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

Сообщение Vadim » 27.04.2012 11:56:52

Oleg_D
Ну, как скажете, учитель. Вы - единственный светоч знаний и вам виднее. :)
Лично я использую именно длинные строки (Huge String ;) ) по той простой причине, что при работе с WinAPI они переводятся в PChar одним движением пальца. Во всех остальных случаях действительно по-барабану, длинные строки или короткие.
Однако, совсем иной подход к строкам будет при использовании Lazarus, т.к. там используются UTF-8-строки. При этом, казалось бы, небольшая длина строки может запросто вылезть за пределы 255 байт. Учтите это. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение tema » 27.04.2012 12:04:51

Да вы что! Никаких опций компилятора. В папке bin вашего fpc создайте блокнотом файл a.pas где напишите
Код: Выделить всё
begin
writeln('11111111111111111....');
end.

хоть на 500 символов. Потом в этой папке в консоли введите: fpc a.pas и запустите получившийся .exe
Блокнотом потому, что IDE не даст просто написать длинную строку.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение Oleg_D » 27.04.2012 12:06:52

Vadim писал(а):Ну, как скажете, учитель. Вы - единственный светоч знаний и вам виднее.

Кто бы сомневался? :D
Вообще, строки в широком смысле - не простая тема, тем более, если собрать о них все, что касается разных компиляторов и операционок. Потому я и ограничился самым простым видом строк, близким к массивам. В профессиональной работе Вы пользуетесь тем, что лучше подходит, - это понятно.
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение tema » 27.04.2012 12:08:49

Oleg_D писал(а):Вот, к примеру, можно было бы во 2-й главе наговорить и про двоичный, и про 16-ричный коды. Только зачем? Здесь ребёнок не поймет ни того, ни другого, но почувствует себя дураком. То есть, некоторые мои умолчания, недоговорки и упрощения имеют сугубо дидактическую причину. Или те же определения информации и алгоритмов, - здесь тоже упрощаю до соответсвующего уровня.

Можно и не говорить вообще, но нельзя говорить неправильно. У Вас там на скриншоте код шестнадцатиричный. Вы же называете его двоичным - это неправильно.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение Oleg_D » 27.04.2012 12:53:36

tema писал(а):Можно и не говорить вообще, но нельзя говорить неправильно. У Вас там на скриншоте код шестнадцатиричный. Вы же называете его двоичным - это неправильно.

Да, тут поправлю, уже примерно знаю как, спасибо!

Добавлено спустя 6 минут 13 секунд:
Мне очень помогают внимательные читатели. Сам-то я уже сотню раз перечитал всё вдоль и поперек, при этом не замечая очевидных огрехов. :(
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение tema » 27.04.2012 13:40:05

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

Я догадываюсь о чём Вы. Тогда хотябы сделайте это в первых упоминаниях и там, где есть запас по свободному месту в начальных главах. Это очень важный момент.
В 8й главе место есть, чтобы поправить
Код: Выделить всё
const Имя_константы = Значение_константы;

Код: Выделить всё
Const C1 = ’Мой повелитель!’;

Код: Выделить всё
const Line = ’---------------------------’;

и т.д. на
Код: Выделить всё
const
  Имя_константы = Значение_константы;

Код: Выделить всё
const
  C1 = ’Мой повелитель!’;

Код: Выделить всё
const
  Line = ’---------------------------’;

и т.д.

Добавлено спустя 2 минуты 19 секунд:
Но даже если и не уместится лучше пожертвовать одной страницей для точного понимания. Тем более не вижу проблем в смещении страниц - нумерация у Вас автоматическая, оглавление тоже автоматическое средствами ворда...

Добавлено спустя 6 минут 17 секунд:
Vadim писал(а):
Код: Выделить всё
{$mode objfpc}{$H+}

и не забывайте все новые файлы компилить именно с этими опциями. ;) Тогда строка любой длины выведется целиком.
Вариант №2.
Чтобы не записывать это каждый раз, лучше включить эти опции в конфигурационный файл компилятора - fpc.cfg:
-Mobjfpc
-Sh

тогда режим длинных строк будет работать по умолчанию.

Я специально проверил конфиги. У меня ничего этого не указано. В коде я тоже не указывал ничего дополнительно. Всё работает и без этого.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение Oleg_D » 27.04.2012 14:14:19

tema писал(а):Я догадываюсь о чём Вы. Тогда хотябы сделайте это в первых упоминаниях и там, где есть запас по свободному месту в начальных главах. Это очень важный момент.

Да, постараюсь заострить на этом внимание. В оправдание замечу, что в более поздних главах приводится много кода, где секции Const, Type, Var содержат по нескольку элементов. Надеюсь, эти примеры как-то помогут.
tema писал(а):Тем более не вижу проблем в смещении страниц - нумерация у Вас автоматическая, оглавление тоже автоматическое средствами ворда...

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

Добавлено спустя 15 минут 5 секунд:
Кстати, давно известно, что на бумаге все читается не так, как на экране. Сам-то я с экраном работаю, здесь трудней заметить свои грешки.
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение bormant » 27.04.2012 20:58:52

tema писал(а):Можно и не говорить вообще, но нельзя говорить неправильно. У Вас там на скриншоте код шестнадцатиричный. Вы же называете его двоичным - это неправильно.

Посылка правильная, но вывод неверный.
На скриншоте двоичный код в шестнадцатеричном представлении.

Двоичный он из-за системы счисления, применяемой в современных ЭВМ (привет, "Сетунь"). А от представления (16/8/2/64) эта сущность не меняется.

ps. Плюс устоявшееся терминология в противопоставлении "текстовый файл" <--> "двоичный файл", за неимением лучшего.
pps. http://ru.wikipedia.org/wiki/%D0%94%D0% ... 0%B9%D0%BB
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

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

Сообщение tema » 28.04.2012 01:12:17

bormant писал(а):На скриншоте двоичный код в шестнадцатеричном представлении.

Это бред. С таким же успехом я могу написать, что там десятичный код в шестнадцатиричном представлении. Или там вообще символы в шестнадцатиричном представлении.
Чтобы говорить о чём-то в каком-то представлении надо увидеть и то и это.

Всё остальное верно я с этим и не спорю и ничего против этого я не говорил, но "устоявшееся" это у кого угодно только не у школьников. Поэтому если говорить о двоичном коде нужно показать именно двоичный код. Если говорить о щестнадцатиричном представлении двоичного кода нужно показать двоичный и шестнадцатиричный и показать как их друг в друга переводить.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение Oleg_D » 28.04.2012 08:42:30

Чтобы не вносить смуту в неокрепшие умы, могу исправить так:
-----
Но, согласитесь, в отличие от загадочного машинного кода, здесь чувствуется возможность что-то понять.
...
Процессор компьютера «понимает» лишь язык своих кодов, в котором трудно разобраться человеку.
-----
Остальные правки сделаю и прокомментирую немного позже.
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение Vadim » 28.04.2012 13:19:06

tema писал(а):Это бред. С таким же успехом я могу написать, что там десятичный код в шестнадцатиричном представлении.

А вот это уж точно бред. :D
Видимо Вы не знакомы с историе компьютеров и программирования раз так говорите. "Двоичный код" - устоявшийся термин, идёт ещё с тех пор, когда коды просматривали именно в двоичном представлении. Так что Ваша претензия не по адресу. ;) Автор книги использует общеупотребительные термины и правильно делает, иначе на каждое слово в книге придётся издавать ещё одну книгу с подробными объяснениями, а что же автор имел в виду.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение tema » 28.04.2012 13:34:01

Угу точно не знаком. Поэтому так и говорю. Вот я тупица, а ещё преподаватель информатики. Гнать меня надо.
Причём тут, блин, история?
Мы говорим о правильном понимании терминов детьми!
2 Oleg_D
Отлично, мне нравится :)
Про двоичные коды и двоичные файлы можно рассказать отдельно :)
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение Oleg_D » 28.04.2012 13:42:18

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

Добавлено спустя 2 минуты 21 секунду:
Oleg_D писал(а):Про двоичные коды и двоичные файлы можно рассказать отдельно

Это аж в главе 47 будет.
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

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

Сообщение Mr.Smart » 28.04.2012 15:12:35

off top
Действительно, термин "компьютерщик" у обычных людей устоялся....
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

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

Сообщение Paster Fob » 30.04.2012 15:59:15

Добрый вечер.Решаю задачи из раздела "а слабо?" глава 40.Посмотрите как я решил задачи г) и д).
Код: Выделить всё
type tarray=array[1..100] of integer;
     tset=set of byte;

procedure minimum(amas:tarray;ai,an:byte);
begin
  an:=255;
  for ai:=1 to 100 do begin
    if amas[ai]<an then
      an:=amas[ai];
  end;
  for ai:=1 to 100 do
    if amas[ai]=an then
      writeln('минимальное  ',an,'  индекс  ',ai);
end;

procedure maximum(amas:tarray;ai,an:byte);
begin
  an:=0;
  for ai:=1 to 100 do begin
    if amas[ai]>an then
      an:=amas[ai];
  end;
  for ai:=1 to 100 do
    if amas[ai]=an then
      writeln('максимальное  ',an,'  индекс  ',ai);
end;

var mas:tarray;sn:tset;
    i,n:byte;

begin
  sn:=[];i:=1;
  randomize;
  while i<=100 do begin
    n:=random(256);
      if not(n in sn) then begin
        sn:=sn+[n];
        mas[i]:=n;
        inc(i);
      end;
  end;
  minimum(mas,i,n);
  maximum(mas,i,n);
  readln
end.

Надеюсь,всё правильно сделал.
Последний раз редактировалось Paster Fob 30.04.2012 17:29:38, всего редактировалось 1 раз.
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Пред.След.

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

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

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

Рейтинг@Mail.ru