Обсуждение:Учебник по программированию: различия между версиями

Содержимое страницы недоступно на других языках.
Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Метка: possible spambot (testing)
Нет описания правки
Строка 5: Строка 5:
----
----
=== <span style="color:green">'''Предложения по улучшению учебника'''</span> ===
=== <span style="color:green">'''Предложения по улучшению учебника'''</span> ===

== О просьбах ==

<blockquote>Просьба не вносить никаких изменений в этот учебник! Это пособие для начинающих.</blockquote>

Отмечу, что [[Викиучебник:Что такое Викиучебник|цель проекта Викиучебник]] — способствовать ''совместной'' разработке учебного (инструктирующего) материала. (О чем упоминает и [[заглавная страница]]: «Здесь в вики-среде совместно пишется образовательная литература…»)

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

Некоторые из замеченных неточностей:
* отсутствие завершающих утверждения <code>;</code> во многих примерах кода;
* Perl чувствителен к регистру не только переменных, но и операторов и имен функций; как следствие, оператор <code>'''I'''f</code> не будет верно воспринят — требуется <code>'''i'''f</code>; аналогично и функция (''не'' оператор!) <code>'''p'''rint</code>;
* ''[ч]тобы символ <code>В</code> не воспринимается [sic] как управляющий ставится знак <code>\</code> (обратной косой черты).'' — разве символ <code>В</code> когда-либо понимается Perl как управляющий?? напротив, <code>\</code> используется для того, чтобы ''сделать'' [[w:Перевод строки|управляющий код]] из следующего за ним символа <code>n</code>.

Касаемо оформления, — использование явных <code>style=</code>, с одной стороны, усложняет правку (опять же, — Викиучебник посвящен ''совместной'' работе), но что хуже — может быть помехой просмотру. Так, некоторые пользователи Викиучебника могут выбрать отличный от умолчания стиль оформления (например: с использованием <span style="color: #282;">темно-зеленого</span> цвета фона), в результате чего нынешние <span style="color: green;">зеленые</span> заголовки окажутся <span style="color: green; background-color: #282;">трудночитаемыми.</span>

Также не очень удачно смотрятся фрагменты, оформленные ведущими пробелами. Во-первых, поскольку содержащийся в таких фрагментах текст не разбивается на строки, длина строки может превысить ширину окна у конкретного пользователя. Во-вторых, в отличие от ведущих пробелов, использование <code>&lt;source lang="perl" /&gt;</code> дает также и подсветку синтаксиса.

Наконец, поскольку предполагается (!) совместная работа, авторство желательно указать не в тексте учебника, а в «истории» — для чего достаточно зарегистрироваться и, внося изменения, не забывать представляться системе. <small>(Напомню, что регистрация — общая для всех проектов [[foundation:|Фонда.]])</small>

— [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 18:21, 14 декабря 2013 (UTC)

== Почему я прошу не вносить никаких исправлений в мой учебник ==

Я знаю, что Вики-учебник это онлайн текстовый редактор. Но я прошу не править мой учебник потому, что: многие не знают Perl (я выучил его с начала сентября).
[[Служебная:Вклад/85.26.241.180|85.26.241.180]] 09:33, 15 декабря 2013 (UTC)

: [[Викиучебник:Что такое Викиучебник|Викиучебник]] — отнюдь не «онлайн текстовый редактор», но (как уже упомянул выше) — ресурс для ''совместной'' разработки учебного (инструктирующего) материала. Это одна из причин, почему для внесения изменений в Викиучебник не необходима какая бы то ни было регистрация — мы считаем, что ''любой'' материал здесь может содержать неточности и явные ошибки, и, дабы способствовать их устранению, возможность внести исправления и улучшения должна быть предоставлена любому желающему.

: В отношении «многие не знают Perl» — не ясно, как это может быть причиной не вносить исправления в разрабатываемый учебник? Тем более, в случае очевидных неточностей. К примеру, выполним код одного из примеров:
<source lang="perl">
$a = "оператор";
$b = "print";
print $a . $b; # результат: оператор print
</source>

: Результат:
$ perl -e '$a = "оператор"; $b = "print"; print $a . $b;'
операторprint

: Действительно, ни <code>$a</code>, ни <code>$b</code>, ни вызов функции <code>print</code> не содержат пробелов. Откуда бы им взяться в выводе?

: Исправленная мной ранее форма <code>print = "текст"</code> также является синтаксически неверной:
$ perl -e 'print = "текст";'
Can't modify print in scalar assignment at -e line 1, near ""текст";"
Execution of -e aborted due to compilation errors.

: Кроме того, остаются пожелания к оформлению: использование <code>&lt;source lang="perl" /&gt;</code> для оформления фрагментов Perl-кода, исключение «лишних» (мешающих просмотру) <code><nowiki>'''<span />'''</nowiki></code> из заголовков, etc. — такие проблемы с ''оформлением'' не составило бы труда устранить, пожалуй, никому из более или менее опытных редакторов Викиучебника, совершенно никак не затрагивая ''содержание.'' Не ясно, почему такие правки могли бы вызывать возражения?

: — [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 10:42, 15 декабря 2013 (UTC)

== [[{{SUBJECTPAGENAME}}#Perl|Perl]] ==

: <small>Перенесено из [[Обсуждение участника:Ivan Shmakov#Темы учебников]].</small>

Кроме того, в <del>той же главе,</del><ins>разделе [[{{SUBJECTPAGENAME}}#Perl|Perl]],</ins> оператор <code>&</code> назван синонимом <code>and</code>, хотя это (очевидно) не так; cf.:
<source lang="perl">
print ((58 and 110), " ", ("Hello" and "World"), "\n");
## → 110 World
print ((58 & 110), " ", ("Hello" & "World"), "\n");
## → 42 @e`ld
</source>

В частном случае, когда каждый из операндов заведомо равен 0 или 1, результат <code>($a & $b)</code> действительно совпадет с <code>($a and $b)</code>. Тем не менее, в общем случае это не так, да и типичным является применение оператора <code>and</code> в качестве условного — <code>do_we_have_a_problem_p () and die ("Houston, we have a problem.")</code>, в то время как <code>&</code> в этом контексте не имеет смысла.

— [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 14:09, 24 января 2014 (UTC)

== Смысл данного учебника ==

Я, честно, не очень понимаю смысл существования данного учебника. Во-первых, многие учебники по языкам программирования уже существуют: [[PHP]], [[Perl]], [[C Sharp]], [[Python]] и др. Это получается дублирование информации; можно же просто дополнять старые. Во-вторых, такой учебник по разным языкам в будущем сложно будет читать — ведь если продолжать, то объём текста и статьи будет чрезмерный. К тому же даже не представляю себе реальную книгу, в которой были бы описаны столь разные языки. --<font color="#0080E0">[[Участник:Brateevsky|Brateevsky]]</font>&nbsp;{<font color="#E00000">[[Обсуждение участника:Brateevsky|talk]]</font>} 12:22, 28 февраля 2014 (UTC)

: Не нахожу причин, по которым в проекте не может существовать более одного учебника по теме; при том лишь условии, что дублирование ''текста'' при этом невелико.

: Проблему объема можно решить создав подстраницы для отдельных разделов. (Тем более, что данный учебник — не единственный «одностраничный» в проекте.) Что хуже, существует проблема категоризации — при таком подходе, учебник можно отнести лишь к наиболее общей тематической категории ([[:Категория:Языки программирования|«языки программирования»]]), в то время как потенциальный читатель наверняка начнет поиск материала с ''частных.''

: Наконец, перечисленные проблемы можно решить в «рабочем порядке»; в частности — дублируя «устоявшийся» материал в более специализированных учебниках. Другое дело, что в материале допущен ряд ошибок, включая оформительские (например: отказ от использования элемента <code>&lt;source /&gt;</code> для оформления фрагментов кода), типографические (использование не принятых в русскоязычной типографике [http://kovodstvo.ru/sections/104/ кавычек] и дефисов вместо [http://kovodstvo.ru/sections/97 тире]), орфографические (''Java script'' и ''Post script'' вместо [[w:JavaScript|JavaScript]] и [[w:PostScript|PostScript]]), и фактические (<q>Как и во всех науках счет начинается с нуля.</q>)

: — [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 08:36, 1 марта 2014 (UTC)

Я отвечу так. Искать разные книги для изучения программирования может затянуться на долго и поэтому я собираю языки программирования в один учебник. Удалять не стоит. Это же труды человека. Было ли бы вам приятно, если бы Вы напечатали книгу в одном экземплере, а его порвали? {{UnsignedIP2| 2014-03-02T05:23:23|85.26.241.216}}

: Во-первых, хочу напомнить о необходимости завершать комментарии четырьмя тильдами (<code><nowiki>~~~~</nowiki></code>) для автоматической подстановки «идентификатора» участника и временной отметки.

: Во-вторых, — об удалении речь не идет. (В противном случае было бы начато новое обсуждение в разделе [[Викиучебник:К удалению]] и на странице был бы размещен шаблон {{tlp|К удалению|{{#time:Y-m-d}}}}, приглашающий всех заинтересованных лиц принять участие в этом обсуждении. К тому же, даже при удалении материал не будет потерян; так, легко обнаруживается [https://web.archive.org/web/*/https:{{fullurl:{{SUBJECTPAGENAME}}}} копия] учебника в [[w:Архив Интернета|Архиве Internet.]])

: С другой стороны, не могу не отметить, что оставление [{{fullurl:LaTeX/Абсолютным новичкам|diff=prev&oldid=88181}} такого рода] пометок в «библиотечных» книгах также не будет приятно ни авторам, ни читателям, ни «библиотекарям».

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

: — [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 07:16, 2 марта 2014 (UTC)

== [[{{SUBJECTPAGENAME}}#QBasic|QBasic]] ==

В разделе замечен ряд фактических ошибок.

<blockquote>QBasic — это язык программирования для персональных компьютеров.</blockquote>
На деле, [[w:QBasic|QBasic]] является одной из ''многих реализаций'' языка [[w:Бейсик|Бейсик]] (и, возможно, ''диалектом'' этого языка.)

Поскольку разработка QBasic прекращена еще в прошлом веке, едва ли найдется причина использовать его сегодня. Тем более, что существуют [[w:Свободной программное обеспечение|свободные]] совместимые реализации, как, например, [[w:en:QB64|QB64]] и [[w:FreeBASIC|FreeBASIC.]]

<blockquote>… все операторы записываются в коде программы заглавными буквами. Конечно, все кроме оператора присвоения (<code>=</code>).</blockquote>
… а также операторов «больше» (<code>&gt;</code>), «сложить» (<code>+</code>), … Кроме того, нет и ''необходимости'' записывать «буквенные» операторы заглавными — на работу программы это не повлияет. (Хотя встроенный в QBasic редактор и настойчив в приведении имен таких операторов к верхнему регистру.)

Да, оператор («операция») <code>=</code> называется оператором [[w:Присваивание|присваивания.]]

<blockquote>Переменные в QBasic — это чаще всего один символ с присвоенным ему значением.</blockquote>
Как и в других диалектах Бейсика, имена ''строковых'' переменных состоят по меньшей мере из ''двух'' символов, последним из которых должен быть <code>$</code> (<code>a$</code>, <code>name$</code>, etc.) Кроме того, для имен ''целочисленных'' переменных предусмотрен суффикс <code>%</code> (<code>a%</code>), etc.

Наконец, беглый просмотр кода по ссылкам с http://games.freebasic.net/BASICGaming/Issue9/ не подтверждает тезиса, что <q>Переменные в QBasic — это чаще всего один символ</q> — многосимвольные переменные в данной конкретной выборке, похоже, используются весьма широко.

— [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 16:26, 5 марта 2014 (UTC)

Спасибо за список ошибок в главе QBasic. Кстати, можешь оформить все примеры кода синим цветом. То есть так:
<span style="color:royalblue">'''Код примера'''</span>
[[Служебная:Вклад/37.29.88.110|37.29.88.110]] 13:54, 7 марта 2014 (UTC)

<div style="margin-left: 1.6em;" >
Прошу прощения? Зачем оформлять примеры кода ''одним'' цветом, если можно использовать «контекстную» подсветку?

<source lang="freebasic">
INPUT "Who are you? "; name$
PRINT "You are: "; name$
</source>

— [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 14:17, 7 марта 2014 (UTC)
</div>

Ладно оформи примеры кода контекстной подсветкой. Если можешь оформи код еще и полужирным шрифтом. У меня еще к тебе есть просьба. Посмотри код MINI CONSOL'S GAME CENTER. У меня IDLE выдает ошибку. [[Служебная:Вклад/85.26.241.162|85.26.241.162]] 03:14, 8 марта 2014 (UTC)

== Синтаксис и грамматика ==
Просьба участников Викиучебника посмотреть учебник на наличие синтаксических и грамматических ошибок. Список ошибок пишите тут:
{| class="wikitable sortable"
|-
! Ошибка !! Глава !! Параграф
|-
| Текст ячейки || Текст ячейки || Текст ячейки
|-
| Текст ячейки || Текст ячейки || Текст ячейки
|-
| Текст ячейки || Текст ячейки || Текст ячейки
|}
== Отзывы ==
Насколько Вы пока оцениваете мой учебник??? Ответ давайте в %. [[Служебная:Вклад/85.26.241.24|85.26.241.24]] 11:43, 11 апреля 2014 (UTC)

== Добавление неоправданных ссылок ==

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

FTR, некоторые из таких правок:
* [{{fullurl:PHP|diff=prev&oldid=90235}} 90235] — «обманная» ссылка, — из текста ссылки не очевидно, что данная ссылка ведет на страницу другого учебника;
* [{{fullurl:AJAX|diff=prev&oldid=90168}} 90168] — аналогично; кроме того, нигде на целевой странице ссылки не упоминается AJAX;
* [{{fullurl:Учебник по созданию сайтов|diff=prev&oldid=90157}} 90157] — результирующий учебник [[Викиучебник:Критерии быстрого удаления#Уч3|состоит только из ссылок;]]
* [{{fullurl:Введение в язык Scheme для школьников|diff=prev&oldid=90136}} 90136] — во-первых, этой правкой сделана недействительной [[Викиучебник:Вандализм|еще одна]] существующая ссылка на учебник [[Лисп]]; во-вторых, нигде на целевой странице ссылки не упоминается ни Scheme, ни Lisp, ни даже функциональное программирование.

— [[User:Ivan Shmakov|Ivan Shmakov]] ([[User talk:Ivan Shmakov|о]] ▞ [[Special:Contributions/Ivan Shmakov|в]]) 07:41, 20 апреля 2014 (UTC)

Насколько интересно изложен материал в моем учебнике???

Версия от 12:02, 22 апреля 2014

TGP - глобальный проект программирование

Внимание! Все обсуждения удаляются постепенно. Для того, чтобы не засорить страницу обсуждения этого учебника. Если тем болше пяти, то первая удаляется. Это правила проекта TGP. Немного о проекте.


Этот проект создан для обучения новичков с профессиональным программированием. То есть программированием графических интерфейсов и создания своих сайтов и игровых движков.


Предложения по улучшению учебника