Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [Отзыв о книге] А. Васильев. "C#. Объектно-ориентированное программирование.

Ответить
Настройки темы
Разное - [Отзыв о книге] А. Васильев. "C#. Объектно-ориентированное программирование.

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Изображения
Тип файла: jpg IMG103.jpg
(162.4 Kb, 22 просмотров)
Я откровенно не знал, как мне начать писать отзыв. Т.к. краткий вариант будет очень краток, а полный вариант, по скромным прикидкам, займет страниц 10-15 далеко не радужных по смыслу комментариев.

Что я могу сказать про книгу... Хорошая книга, примерно по ошибке на страницу.
Действительно. Редкая страница осталось без отметки на полях. А там где их нет, с лихвой компенсировалась ранее накопленными. (Особенно ближе к концу книги)
Единственное, что оправдывает предложенный стиль подачи материала -- это возрастная группа читателей -- 8-9 класс средней школы.
Книга не реализована полностью. Значительная часть работы выполнена, идеи положенные в основу изложения объектно-ориентированного программирования(ООП) имеют право на жизнь. Но предстоит дополнительная работа по улучшению материала и доведению его до правильности "по формальному признаку". Основная идея -- изучить ООП на основе примеров. Но реализация содержит массу логических ошибок.
Только сегодня узнал более подробную информацию об авторе. В 2008 году защитил докторскую диссертацию "Корреляционные свойства многокомпонентных жидкостей" по специальностям "01.04.02 - теоретическая физика" и "01.04.14 - теплофизика и молекулярная физика" . Докторская работа написана за 8 лет, что очень достойно.
Автор "физик", этим я склонен обусловить все допущенные им ошибки изложения материала.

Все. Хороший отзыв заканчивается. Дальше идет разбор ошибок.
Перечислю основные.
Красных строк нет как класс. Т.е. вообще нет! Даже не знаю, на кого списывать.
Лишние, пустые слова, я о них просто не говорю. Их -- много.
стр 40 "Текстовые значения (литералы) ..." пропущена буква.
Часто используется термин "утилита", без его определения. Вообще следует заметить, что с определениями в книге достаточно сложно. Нет приписки о том, что исходный код следует читать вместе с англо-русским словарем.
Еще чаще используется выражение -- военная хитрость.
Иногда встречается откровенное вранье.
стр 42. "Консоль -- это такое окно, выдержанное в темных тонах, которое вызывает ностальгию по старым добрым временам операционной системы MS-DOS". Добуквенно! Сбербанк рыдает, продажа билетов на самолеты, в театры и пр. встали намертво, кассы в магазинах остановлены и народ остался голодный, админы безутешны!
стр 60. "Перегрузка методов -- весьма полезный и перспективный механизм, который позволяет создавать очень гибкие и эффективные методы."
Я вот из этого что понять должен?!
стр 108 и далее. Блок схемы. Просто из рук вон плохо. Понятие составного оператора -- определено в примечании. Блок схемы не соотв. требованиям ГОСТ. В продолжении того, далее то тексту не одной схемы нет. Т.е. блок схемами определяются только операторы цикла, условия и многовариантного выбора case. Ссылки и другие понятия "кричащие" о блок-схеме, остались без них (какие-нибудь там делегаты и пр.).
стр 136. Совет про функции sin и cos. Ни слова про радианы!
стр 145. Появилась идея сначала рассказать об идее программы, а затем привести ее код. Да, кстати, на следующем примере это стало традицией("традиционно"), а затем, как и любая традиция -- умерла. (стр. 24 "Идея представлена в листинге 1.1." -- код хорошо документирован на C# ? (c))
стр 151. Красивое заблуждение про Стивена Хокинга и про соотношение кол-ва формул с читателями.
стр 152 phi = arcsin() противоречит стр 154 и коду phi = Math.Acos(cosinus).
стр 160. Дримз кам тру!
стр 170. Если число не является действительным, то нужно проверить ...
стр 187. Thin -> this
стр 193. Делегаты. "Чтобы все это легче было понять, можно провести некоторую аналогию. Объявление делегата сродни описанию класса, а реализация делегата(создание экземпляра делегата) соответствует созданию объекта класса. Итак, приступим к делу."Это просто шедевр! Всем все понятно стало?! P.S. Блок схем - нет.
стр 208. Новая единица измерения -- поинт. Я не шучу! "Координаты определяются в поинтах по отношения к левому верхнему углу формы."
стр 218. Два шедевра, даже без уточнения термина "гибкий программный код" и выводов о всезнайке - авторе книги(лекторе и т.п.)
стр 240. Таблица итерационных значений переменных цикла? Не, не! Не слышали!

Про логику создания классов -- отдельный разговор. Сдавай студент мне такую работу, ему бы пришлось долго объяснять что, как, зачем и почему.
Вообще с логикой в книге сложно. И это печально.

Ну и напоследок надо улыбнуться.
Надпись на последнем форзаце "Большое внимание уделяется созданию программ с графическим интерфейсом."
В прикрепленном файле я пальцами держу страницы, в которых используются консольные программы. Края книг посвящены целиком графике. (Справедливости ради, в середине книге есть небольшие вкрапления графического интерфейса). Вы что, издеваетесь!?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:56, 24-09-2012

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Обалденно Вроде не О'рейли писало, а ошибки схожи с теми, что я писал в рецензии одной из своих книг
Все таки, как мне кажется, лучше известных мастеров, того же Шилдта, никто не напишет книг по C#. Даже для школьников.
В общем - зачетно

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 04:56, 25-09-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемый lxa85! Спасибо, что обратили внимание на нашу книгу. Позволю себе прокомментировать Ваши замечания.

Красных строк нет как класс. Т.е. вообще нет! Даже не знаю, на кого списывать.

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

Лишние, пустые слова, я о них просто не говорю. Их -- много.

Книга написана живым языком, чтобы ее было легче читать современным читателям. Видимо Вы являетесь сторонником классических учебников-справочников

стр 40 "Текстовые значения (литералы) ..." пропущена буква.

Спасибо, при допечатке исправим

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

Данная книга не является учебником, она знакомит читателей с ООП в Си. Все листинги содержат подробные комментарии.

Еще чаще используется выражение -- военная хитрость.
Иногда встречается откровенное вранье.
стр 42. "Консоль -- это такое окно, выдержанное в темных тонах, которое вызывает ностальгию по старым добрым временам операционной системы MS-DOS". Добуквенно! Сбербанк рыдает, продажа билетов на самолеты, в театры и пр. встали намертво, кассы в магазинах остановлены и народ остался голодный, админы безутешны!


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

стр 60. "Перегрузка методов -- весьма полезный и перспективный механизм, который позволяет создавать очень гибкие и эффективные методы."
Я вот из этого что понять должен?!


Это не определение перегрузки, а вводное предложение, начинающее соответствующий раздел. Далее в тексте автор подробно рассказывает о том, что такое перегрузка методов.

стр 108 и далее. Блок схемы. Просто из рук вон плохо. Понятие составного оператора -- определено в примечании. Блок схемы не соотв. требованиям ГОСТ. В продолжении того, далее то тексту не одной схемы нет. Т.е. блок схемами определяются только операторы цикла, условия и многовариантного выбора case. Ссылки и другие понятия "кричащие" о блок-схеме, остались без них (какие-нибудь там делегаты и пр.).

Данные схемы и не должны соответствовать требованиям ГОСТа, это схемы поясняющие различия условных операторов.
Хочу заметить, что если точка стоит перед скобкой, после скобки не надо ставить точку.

стр 136. Совет про функции sin и cos. Ни слова про радианы!

В данном разделе речь идет про массивы, совет информирует читателя о том, что функции синуса и косинуса вызываются из библиотечного класса Math.

стр 145. Появилась идея сначала рассказать об идее программы, а затем привести ее код. Да, кстати, на следующем примере это стало традицией("традиционно"), а затем, как и любая традиция -- умерла. (стр. 24 "Идея представлена в листинге 1.1." -- код хорошо документирован на C# ? (c))

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

стр 151. Красивое заблуждение про Стивена Хокинга и про соотношение кол-ва формул с читателями.

Это авторское примечание, которое содержит рассуждения на тему того, как математические трудности отпугивают читателей (с отсылкой на аналогичную но неточную цитату, часто приписываемую Хокингу). Подводка к краткой справке для читателей по поводу векторных формул, описывающих декартово пространство.

стр 152 phi = arcsin() противоречит стр 154 и коду phi = Math.Acos(cosinus).

Спасибо, передадим автору и поправим при допечатке

стр 160. Дримз кам тру!

Шутка в авторской врезке. Нынешние начинающие программисты прекрасно знают популярные англоязычные слоганы.

стр 170. Если число не является действительным, то нужно проверить ...

Вы пытаетесь перенести в русский язык программистскую конструкцию if-then. Использованный в тексте вариант «Если число не является действительным, нам нужно проверить…» не является ошибкой, просто это более личное обращение к читателю.

стр 187. Thin -> this

Спасибо, при допечатке исправим

стр 193. Делегаты. "Чтобы все это легче было понять, можно провести некоторую аналогию. Объявление делегата сродни описанию класса, а реализация делегата(создание экземпляра делегата) соответствует созданию объекта класса. Итак, приступим к делу."Это просто шедевр! Всем все понятно стало?! P.S. Блок схем - нет.

Далее в данном разделе приведены подробные разъяснения о том что такое делегат

стр 208. Новая единица измерения -- поинт. Я не шучу! "Координаты определяются в поинтах по отношения к левому верхнему углу формы."

Действительно сленговое выражение в примечании автора. Но данное примечание не вводит новую единицу измерения, а информирует читателя, что «Горизонтальная координата отсчитывается вправо, а вертикальная — вниз»

стр 218. Два шедевра, даже без уточнения термина "гибкий программный код" и выводов о всезнайке - авторе книги(лекторе и т.п.)

Автор старается говорить о сложном максимально просто. Поэтому и приводит шуточный пример намеренного усложнения при изложении материала, как способ повышения собственной значимости.

стр 240. Таблица итерационных значений переменных цикла? Не, не! Не слышали!

Автор так и начинает врезку-комментарий «На всякий случай приведем краткие пояснения по поводу вычисления результата при определении метода GetNumber() в классах Factorial и Fibonacci.»

Про логику создания классов -- отдельный разговор. Сдавай студент мне такую работу, ему бы пришлось долго объяснять что, как, зачем и почему.
Вообще с логикой в книге сложно. И это печально.


Данная книга не является учебником или учебным пособием. Это Учебный курс, который позволяет читателю самостоятельно познакомиться с ООП в Си.

Надпись на последнем форзаце "Большое внимание уделяется созданию программ с графическим интерфейсом."
В прикрепленном файле я пальцами держу страницы, в которых используются консольные программы. Края книг посвящены целиком графике. (Справедливости ради, в середине книге есть небольшие вкрапления графического интерфейса). Вы что, издеваетесь!?


В данной книге есть «Глава 8. Приложение с графическим интерфейсом: учебный проект», которая содержит основные сведения о графических интерфейсах и финальный раздел «Вместо заключения. Графический конструктор», в котором рассматривается создание приложения с использованием среды разработки Visual C# Express 2010

Отправлено: 13:13, 04-12-2012 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Serdobol, Ммм... Как бы правильно сказать. Хороший учебник отличается от плохого, тем, что плохой изобилует абстрактными выражениями, заумными выражениями "ни о чём", вроде как и сказали, а подумать, так ничего не понятно. Я учил программирование по книгам Дейтелов, причём всё что у меня было под рукой это книга, тетрадка и ручка. Все решения заданий и задач, которые я делал на тетрадке работали после того как перебил их на комп, работали. Бывали конечно ошибки, но не оттого что я не понял тему. В книге было 1150 страниц, примерно 1 ошибка, грамматическая на 550 страниц. И одна опечатка в листинге кода, одна и не критичная, в комментарии.

P.S. Даже по выпискам автора, которые привёл lxa85, я бы точно не стал читать эту книгу.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:12, 04-12-2012 | #4


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Цитата Serdobol:
Хочу заметить, что если точка стоит перед скобкой, после скобки не надо ставить точку. »
Не соглашусь с вами. В тексте использовано сокращение слова "прочее", после сокращения стоит точка. После окончания предложения также стоит точка.

Источник
Цитата:
В предложениях со скобками запятая всегда ставится после скобок (как здесь), если закрывающей скобкой заканчивается предложение, то точка ставится после скобок (как здесь). (Если предложение полностью заключено в скобки, то точка ставится перед закрывающей скобкой.)
Цитата Serdobol:
стр 208. Новая единица измерения -- поинт. Я не шучу! "Координаты определяются в поинтах по отношения к левому верхнему углу формы."
Действительно сленговое выражение в примечании автора. Но данное примечание не вводит новую единицу измерения, а информирует читателя, что «Горизонтальная координата отсчитывается вправо, а вертикальная — вниз» »
Так может всё-таки стоит указывать человеческим языком что: «Горизонтальная координата отсчитывается вправо, а вертикальная — вниз» ? И не стоит учить читателя сленговым выражениям? Давайте тогда азы "быдлячих" наречий и основы мата будем излагать в учебниках для первоклашек?

Цитата Serdobol:
Данная книга не является учебником или учебным пособием. »
Цитата Serdobol:
Это Учебный курс »
Логика? Не, не! Не слышали!

Вы позиционируете книгу как учебный курс но сами же открещиваетесь от комментариев практикующего преподавателя. Извините, но грош-цена такой книге!

Однажды на конкурсе "Учитель года" мне один из преподавателей рассказывал, как он физику в школе преподаёт в виде сказок! Мне стало грустно и за педагога и за учеников. Школьник не получит должного уровня образования, а его учитель будет выглядеть как старый клоун - и смеяться стыдно, и жалко человека до глубины души за его наивную глупость. Все негуманитарные предметы должны излагаться стройно и чётко, отвлекаясь только на проведение аналогий с жизнью и разжёвывание сложных моментов.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:30, 04-12-2012 | #5


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: txt C#.txt
(10.3 Kb, 11 просмотров)

Кровь, кровь, кровь!!!
Serdobol, книга Алексея Васильева вновь стала моей настольной книгой, и я готовлю расширенный список замечаний и подробными комментариями.
Прошу набраться терпения, ведь предстоит комментировать почти каждую страницу.
Я буду прикреплять комментарии по главам. Конечным файлом прикреплю ответы на Ваши ответы на мои замечания.

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

Я такой, потому что школьники, изучив учебный курс, попадут на лекции в ВУЗы. Тут затрагиваются достаточно фундаментальные понятия об образовании, к которым я отношусь достаточно ревностно.
Часть замечаний -- придирки. Более важные я отмечу сиволом *, **, *** по степени моего возмущения.

Оглавление и Вступление

Оглавление:
"Несколько слов об ООП".
Вопрос о допустимости применения ранее не определенных сокращений задан в справочное бюро "грамота.ру".
Ответ:
"Вопрос очень обширен, Вы можете найти подробные рекомендации по оформлению сокращений и оглавлений в книге А. Э. Мильчина "Справочник издателя и автора". Книга есть в Интернете в электронном виде."

стр. 7
"У прогрессивного человечества, форпостом которого является армия программистов, есть такие чудесные языки программирования, как С++ и Java. На первый взгляд может показаться, что этого вполне достаточно. Но не все так просто."
Первое предложение содежит неявное принижение одних и возвеличивание других. Хотя мы помним, что "все профессии важны, все професии нужны".
Списываем на пробуждение интереса у читателя. Т.к. значимость показать надо, ведь в противном случае и нечего было писать книгу.
"Но не всё так просто." Конечно не просто! Есть отдельное направление науки (паспорт специальности 05.13.11) занимающейся разработкой языков программирования.
Т.е. начало хорошо бы переформулировать.

стр. 8
"Идеологически и синтаксически язык С# близок к С++ и Java. Во всяком случае, если читатель знаком хотя бы с одним из них, он найдет для себя много знакомых пассажей."
Пассаж -- (устаревшее выражение) отдельное место в тексте книги, статьи, речи.

Краткий курс истории языкознания
"В начале был язык программирования, и это был язык C. Затем появился язык С++, который стал расширением языка С до объектно-ориентированной парадигмы. Другими словами, в языке С++ появилась возможность использовать все ужасные атрибуты объектно-ориентированного программирования (сокращенно ООП): классы, объекты, наследование и многое другое. Поэтому С++ во многом стал "законодателем моды" и задал стиль на годы вперед."

Стиль задал язык Си. Т.к. являлся изначально "высокоуровневым ассемблером" или "языком среднего уровня".
Слово "ужасные" следует взять в кавычки. Т.к. либо это действительно "ужас, ужас", либо шуточное выражение.

"В отличии от С++, язык Java полностью объектно-ориентированный. Данное жизнеутверждающее обстоятельство имеет самые неприятные последствия: для написания самой маленькой программы в Java приходиться создавать класс."
жизнеутверждающее -- лишнее слово.
самые неприятные -- лишние слова.
класс -- что за зверь? (об этому будет рассказано на стр. 30 "Что же такое класс?")

стр. 9.
"Связано это не столько с языком С#, сколько с платформой .NET (рекомендуется читать "дот нет"), под которую и разрабатывался язык -- язык С# анонсирован как базовый зяк для реализации в рамках технологии .NET. "
Мне кажется стоит разбить предложение на 2. "... разрабатывался язык. Язык С#..."

стр. 10.
"Совершенно очевидно, что для совместной работы и использования компонентов, написанных на разных языках, необходима "военная хитрость". Военная хитрость состоит в том, что при компиляции программного кода получается промежуточный псевдокод. Псевдокод выполняется под управлением специальной системы, которая является составной частью платформы .NET Framework и называется CLR -- сокращение от Common Language Runtime. Система CLR, в свою очередь, для выполнения промежуточного псевдокода вызвает специальный встроенный в среду компилятор. Компилятор переводит псевдокод в исполнительный код. Делается это непосредственно перед выполнением программы, что существенно оптимизирует время выполнения кода."

Совершенно не очевидно, что для ...
Мы получаем не просто промежуточный, а еще и псевдо, т.е. дважды абстрактный код.
Компилятор переводит псевдокод в исполнительный. Т.е. промежуточный псевдокод в промежуточный исполнительный код?
(придирка) "существенно оптимизирует время" существенно - это на сколько?

стр. 11. *
Совет.
"В С# можно использовать указатели и переопределять операторы -- правда не на таком уровне, как в С++, но в Java этого вообще нет."
Это грубо. Нельзя сравнивать не сравниваемые вещи. Java -- это в первую очередь виртуальная машина. Это дополнительный слой абстракции, который взаимодействует с аппаратной платформой (с абстракцией уровня аппаратной платформы). Получение прямого доступа к памяти (указатели) нарушает безопасность языка. Это просто не допустимо.

стр. 12.***
"Этапы процесса создания программы.
- Набор (составление) программного кода.
- Компиляция программного кода.
- Выполнение откомпилированного (исполнительного) кода.
"
2 наиглавнейших этапа:
1) Подумать!
2) Проанализировать и сделать выводы.

До тех пор, пока человек не будет понимать, что он хочет получить от программы, в программировании ему не место. Да и в жизни, собственно, тоже.
Получение выводов -- правило хорошего тона.
В отчетах по лабам, которые принимаю я, программный код идет 5ым пунктом.
1. Постановка задачи
2. Вербальная модель решения
3. Математическая модель решения
4. Блок схема программы
5. Исходный код
6. Анализ правильности работы программы
7. Выводы о проделанной работе

стр. 13
"Что касается набора программного кода, делать это можно хоть в текстовом редакторе -- главное, чтобы программа, в которой набирается код, не добавляла свои специфические конструкции в файл (который должен быть сохранен с расширением .cs). Само собой разумеется, что описанный выше способ программирования в С# совершенно неприемлем."

Не "само", не "собой", не "разумеется" и тем более не "совершенно".
Вычеркнуть и переформулировать.

"Интегрированная среда разработки -- ... редактор программных кодов и набор всевозможных утилит"

Что есть утилита? Калька от Utilite Tools (универсального инструмента)?

"Все зависит от того, на каком языке мы собираемся программировать. Нас в данном конкретном случае интересует С#, ..."
Мы только о С# и говорим. Разве надо дополнительно уточнять? Слово "конкретном" можно опустить.

"Поскольку С# разработан и поддерживается компанией Microsoft, итегрированную среду для нашего общего дела тоже разумно искать в линейке программных продуктов Microsoft."
Поскольку С# разработан и поддерживается компанией Microsoft, итегрированную среду разумно искать в линейке программных продуктов Microsoft.

стр. 14
"Если добавить сюда утилиты для отладки... "

стр. 18
"Наступит момент, когда придется принимать решение: перезагружать или не перезагружать.
Путь смелых и решительных -- перезагружать. "

Перезагружать чего/кого/зачем?

стр. 21
"Знакомство с языком программирования С# в первой главе начинается с простенького примера."
Простенький или простой?
----
Уф! Со вступлением закончили.

Глава 1.

стр. 23
"Действуя смело и решительно, мы сразу же
создадим программу с графическим интерфейсом;
определимся с тем, как ее откомпилировать и запустить на выполнение;
оценим результат;
выясним причины такого успеха."

Действуя смело и решительно -- лишние слова.
Результат не оценен, причины такого успеха не определены.
Нет в главе слов, описывающих соответствие поставленной цели и достигнутых успехов.

стр. 24
"Идея представлена в листинге 1.1."

Всё хорошо, вот только идеи листингами не представляются. При всем моем уважении.

"Чтобы воочию увидеть всю эту красоту, необходимо выполнить следующие нехитрые действия. Итак, запускаем приложение Visual C# 2010 Express."

Можно это как то проще сказать? "Итак" -- лишнее слово.

стр. 30
Примечание следует переформулировать.

стр. 34
"принципы ООП реализуются в С# по полной программе."
"Главная причина перехода от парадигмы процедурного программирования к ООП произошла, как это ни странно, для того, чтобы программистам легче и проще было создавать и читать программные коды."
Я могу насчитать 3 смысловые конструкции, сваленные в одно несогласованное приложение, плюс, разумеется, несколько лишних слов.

стр. 35
"Инкапсуляция проявляет себя во всей красе в виде концпеций классов и объектов. Мы уже обсуждали особенноси классов и объектов. Здесь снова напомним, как они соотносятся:..."
Второе предложение бессмысленно. Его можно сократить до двух слов и сделав из них вводные для "напомним, как они соотносятся:...".

"О них, собственно, и будет идти речь в книге."
Собственно, лешнее.

стр. 42
"Хотя программирование консольных приложений на С# и считается дурным тоном, попытаться обойти вопрос создания программы, в которой информация вводится и выводится через консоль, было бы с нашей стороны слишком самонадеянно."
Это не тон дурной, а командая строка в windows убогая.

стр. 43
"Консоль -- это такое окно, ..."

стр. 45
"while(true);"
Почему у меня возникла не известная мне конструкция? Лишь дочитав до стр 47 она становится понятной: "Начинается оператор цикла ключевым словом do и заканчивается инструкцией while(true). Формально это означает бесконечный цикл."
"(если бы мы не предусмотрели хитроумную процедуру выхода)"
Хитроумная процедура выхода -- if ... break;

стр. 49
"Именно благодаря инструкции break в условном операторе формально бесконечный циклический оператор не является на самом деле бесконечным"
Запятые нигде не пропущены? (я именно спрашиваю)

Ну и конечно "военная хитрость -- добавляем инструкцию console.readline()"
достаточно распространенная хитрость, формально являющаяся ошибкой, используемая только в отладочных целях.

стр. 50
Текст до блока "!Внимание" является "кривым" примером объяснения работы с логикой.
Для остальных поясню. Идет разбор синтаксической конструкции
if (!(op=='+'|op=='-'|op=='*'|op=='/')){}
op -- операция в программе калькулятора.

Блок !Внимание.
"Блок try-catch пердназначен, как уже отмечалось, для обработки исключительных ситуаций. Исключительная ситуация -- это ошибка, которая возникает в процессе выполнения программы. В С# оцень элегантная и мощная встроенная система обработки ошибок. Базируется она как раз на конструкции try-catch."

как уже отмечалось -- лишнее.
Да и все предложение, целиком, можно выбросить.

Все. Разбор первой главы закончен.

Если позволит время, в подробностях распишу ошибки следующих глав.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 05-12-2012 | #6


Аватара для Medic84

$AutoITer


Автор проектов


Сообщения: 446
Благодарности: 44

Профиль | Отправить PM | Цитировать


lxa85, думаю что для начинающих студентиков (таких как я) книга будет как нельзя кстати (пусть даже и с ошибками). Я вот сам начал с книги "Библия C#" автора Михаила Флёнова, очень даже понятно для челавека только начинающего программировать. Далее я купил себе книгу .NET 3.0 Эндрю Троелсена , дальше 300 страниц прочитать не смог.... Пытаюсь все продолжить читать через силу

-------

AutoIT Русское сообщество| Моя лаборатория


Отправлено: 23:31, 05-12-2012 | #7


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


Цитата Medic84:
Я вот сам начал с книги "Библия C#" автора Михаила Флёнова, очень даже понятно для челавека только начинающего программировать. »
Ещё один...
Тынц
Тынц

Отправлено: 00:47, 06-12-2012 | #8


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


8 месяцев прошло.
Планиды все таки сложились, что есть относительно спокойное время, стабильная голова и книга под руками.
Сейчас пишу 5ую главу. И постараюсь все же донести корректировки до издателя.
Заранее приношу свои извинения за столь долгое молчание в данной теме.

Анализ 2,3,4 Главы подкатом

----------------------------
Глава 2.

стр. 54
"В этой главе мы перейдем на качественно новый уровень программирования -- наши программы будут содержать несколько классов. "
Слова "качественно новый уровень" коробят. Можно просто "новый уровень" ?

стр. 55
Идея листинга не описана. Т.е. она будет понятна, только во время прочтения исходного кода, благо он занимает 18 строк вместе с комментариями.

стр. 59
"Вкратце сюжет пьесы такой"
Перефразировать.

стр. 60
"Перегрузка методов -- весьма полезный и перспективный механизм, который позволяет создавать очень гибкие и эффективные методы.
В общих чертах суть перегрузки методов состоит в том, что в классе можно создавать (описывать) несколько вариантов одного и того же метода. "Несколько вариантов" в данном случае означает, что все эти методы имеют одинаковые названия, но при этом различаются количеством и (или) типом аргументов"
Достаточно сложный для понимания обзац. Хотелось бы перефразировать.
Примечание, кстати, дает более понятное объяснение.

стр. 64
"По сравнению с конструкторами, деструкторы используются не так часто, но не менее эффектно."
Эффектно или эфективно?
"Все дело в том, что команда создания объекта выглядит на самом деле как new конструктор_класса(аргументы)."
на самом деле как - лишние слова
Все дело в том - так же можно пропустить.

стр. 65
Листинг программы безидейный.
"Мы создаем Windows-проект, со всеми вытекающими отсюда последствиями".

стр. 68
"При этом новый объект на самом деле совсем не объязательно должен быть копией исходного объекта (...)"
на самом деле совсем - это лишние слова.

стр. 73
Внимание! (Про доступ к закрытым private полям)
"[описание]. Вот такой вот парадокс (который, разумеется, на самом деле пардоксом не является)"
Во первых парадокса здесь нет по определению. Это стандартная вещь в ООП.
Если говорить что это мнимый парадокс, это только запутает читателя, который только только разобрался с "видимостью" полей.
И разумеется, на самом деле - здесь есть лишние слова.

стр. 83 +
Идея листинга описана сразу же после листинга. Это хорошо.

----------------------------
Глава 3.

стр. 109
Первая блок-схема в книге.
Выполняются не командЫ, а командА.
Еще верней - оператор. А {} - это составной оператор.
Но оператор_ - один.
Кстати об этом указано на стр. 110 в примечании. "Если блок команд в условном операторе состоит всего из одной инструкции, в фигурные скобки такой блок можно не заключать."
Все равно я считаю, что необходимо вводить понятие "составной оператор", чтобы не морочить голову различными исключениями. (цикл for () стр. 114 п.3 "Если тело цикла состоит из одной команды, фигурные скобки можно не использовать")

стр. 110
Условие пишется в ромбе, а не в прямоугольнике.
Значения true, false подписываются, а не рисуются в ромбах.
Выполняется команда. (см. выше)

Если про какие-то моменты можно поспорить, то то, что схемы на развороте (110-111) не согласованы, видно сразу.

"Еще один оператор, который нередко относят к группе условных операторов, -- оператор switch(). Основное рабочее название этого оператора -- оператор выбора."
Предложения перефразировать, объеденить в одно.

стр. 111
"На рис. 3.3 показана схема выполнения оператора выбора в картинках."
Масло маслянное.

"В словах последовательность выполнения оператора выбора может быть описана следующим образом."
Здесь точно запятые не нужны?

"Если совпадение найдено, выполняются команды соответствующего case-блока."
Если ... , то ...

Предложение
"Как выполняется оператор выбора без default-блока, иллюстриурет диаграмма на рис. 3.4."
можно вычеркнуть, а ссылку прикрепить к следующему предложению:
"Если в операторе выбора блока по умолчанию нет, то при отсутствии совпадений управление передается следующему после оператора выбора оператору."
Комментировать предложение не буду.

стр. 112
"Рис. 3.4. Схема выполнения оператора выбора без default-блока."
Схема или диаграмма? (см стр. 111)

Внимание. "... инструкцией break."
инструкцией безусловного перехода, которая служит для перкращения анализа условия, выполнения команд условного оператора и перехода к следующим операциям программы.

стр. 113
Цикл While.
Те же ошибки в блок-схеме.
Тот же составной оператор.
"Последоавтельность действий проиллюстрирована диаграммой на рис. 3.5"
Рис. 3.5. Схема выполнения оператора цикла while()

"... структурной диаграмме на рис. 3.6." не соотв. стр. 114 "Рис. 3.6. Схема выполнения ... "

стр. 115
"Если условие равно true"
Если логический результат вычисления условия равен true

"Для удобства и разрешеняи неоднозначных ситуаций линии, определяющиеполследовательность выполнения блоков, экипированы стрелками."
Во первых есть ГОСТ для оформления блок схем. Во вторых что значит "экипированы"?
Сама блок-схема -- "Я умею рисовать различные схемы в Word!" ?

"Даже из изложенного выше становится совершенно очевидно, что оператор цикла for() допускает огромное количество способов вызова."
Гениальная фраза! Из некой не совсем понятной схемы, сбивчивого объяснения, вдруг (неожиданно!) любому карапузу становится совершенно очевидно, что мегасложный оператор цикла for() имеет практически неисчислимое количество самых разнообразных способов вызова этого замечательнейшего оператора! Ну право, чего мелочиться то?

стр. 115-116
Многострадальному оператору goto посвящено целых 13 строк!

стр. 116-121
Я книгу читаю последовательно! Для себя подписывал окончания useWhile, useFor (названия процедур) к закрывающим фигурным скобкам.
"for (;i<n{"
предупреждать о такой конструкции надо. Т.к. приходится листать книгу взад/вперед, чтобы понять, не ошибся ли автор?

"for (i=1, s=0; i<=n; s+=i++);"
Хитро. Строго говоря так не делают, это удобство.

стр. 122
"В теле оператора цикла командой i++ ... " до окнца обзаца.
Это чисто повезло. К вычислению суммы натуральных чисел, это относится лишь как частный случай.

стр. 123
"... метод useGoto(), в котором ... , стоит некоторым особняком, хотя на самом деле ничего особенного в этом методе нет."
на самом деле - лишние слова.

"... помечен скромной инстуркцией start, которая является не чем иным, как меткой."
не чем иным - лишние слова.

стр. 124
"... сводится к смене симольного значения переменноц на следующую букву в кодовой странице символов."
Термин "кодовая страница символов" введен впервые. Очень хотелось бы видеть вырезку с информацией об этом.

стр. 125
Массивы большие и маденькие.
Первый абзац. Я даже переписывать и комментировать его не хочу. Переписать полностью.

"тип элементов массива -- нужно знать, сколько памяти отводить под каждый из элементов массива;"
Расстроен, не удеружусь, спрошу. Кому нужно знать?

стр. 126
Примечание
"переменная, в которой записанная ссылка на реальный массив."
называется "указатель".

стр. 127
"При объявлении переменной многомерного массива после имени типа элементов массива в квадратных скобках указываются запятые (количество запятых -- размерность массива минус один);"
1) Точно тут запятых нет?
2) Я впервые вижу, чтобы размерность массива определяли по такой формуле!

стр. 131
"Мы, ничтоже сумняшеся, командой Random ... "
Вообще на странице хотелось бы видеть более явное разделение процедуры получения псевдослучайного числа и процедуры приведения типов.

стр. 132
"Актуальна задача быстрой и простой инициализации массива. Такая метода есть."
Такая методика есть.

стр. 133
"Как уже отмечалось, при работе с массивам инередко используется оператор цикла foreach()."
Упоминалось этак вскользь в примечании на стр. 116

"Другими словами, на каждом цикле значение переменной s ..."
Другими словами, в каждой итерации цикла значение переменной s ...

стр. 136
Совет.
Нет ни одного слова про радианы.

стр. 138
Про заполнение массива binom[i] описать словами или формулой. Но не командами C#.

стр. 140
Примечание.
Указатели C#, это не отголосок, это наследие от С++. Кроме того, отсутствие ссылок в Java явлеется следствием того, что Java выполняется на виртуальной машине JVM и не может напрямую работать с памятью. см. примечание на стр. 141 "Дело в том, что через указатели мы получаем доступ к операциям с памятью. Исполнительная система не может гарантировать полную безопасность программного кода с указателями."

стр. 141
"..., используем инструкцию вида double* q, ..."
q - ранее не определена. Придирка.

стр. 142
"... разберем поэтапно команды в методе Main()..."
поэтапно -- странное слово

"В результат адрес, по которому прописана переменная n, ..."
В результат -> В результате -- ошибка.

"То, что мы увидели, -- это только вершина айсберга."
Пунктуация верна?


----------------------------
Глава 4.
Первый абзац переформулировать полностью!

стр. 144
Прилирка.
"А истина, как известно, всегда находится где-то посредине между наиболее радикальными вариантами."
Чего? предложение не понятно.

"Поэтому задача перегрузки оператора ... к объекту класса. Другими словами ..."
В первом предлложении многа букаф. Желательно вычеркнуть.

Перечисление.
Придирка
п. 1. "... атрибуты public и static ... " Наконец то дошло до объяснения ключевого слова static ?

"В листинге 4.1 приведен программный код простенькой программы, в которой использована перегрузка некоторых операторов -- а если быть более точным, то двух."
Уточнение не к месту.

стр. 145
Примечание.
(Программа пересчета курса валют + простейшие операции денежных переводов)
"Прежде чем приступить к анализу программного кода, имеет смысл кратко остановиться на общей идее. А идея в том, чтобы ..."
Мегареспект! Наконец то! Наконецто появилась вербальная модель задачи, вперед программы.
Транши -- это термин из другой области. http://ru.wikipedia.org/wiki/Транш
Он вообще к программе отношения не имеет! Акуратнее пожалуйста в терминологии.

"У класса есть два поля: одно содержит... , а еще одно поле содержит ..."
"а еще одно поле" -> "другое поле"

"Мы будем пользоваться следующим правилом. ..."
Далее все вычекнуть, а оставить нормальные и понятные формулы.
Или переформулировать.

Листинг 4.1
Работа программы не понятна, не прозрачна и вызывает множество вопросов.
Как по своей логике, так и по реализации.
Перегрузка унарного оператора ! смысла не имеет.
Dol -> Dollar
Eur -> Euro

стр. 149
" Командой A.show() отображается информация об объекте-операнде, а командой return A.price() в качестве результата метода возвращается "рублевая цена" операнда. "
Пунктуация верна?

стр. 150
Результат работы программы.
Откуда взялось значение 500 ?

стр. 151
"Но, перед анализом программного кода, по сложившейся традиции -- несколько слов об общей идее, положенной в основу программного кода."
Ойййй!

Примечание.
Фраза о соотношении кол-ва читателей и кол-ва формул не принадлежит Стивену Хокингу.

стр. 152
aracsin не соотв. стр. 154 Math.Acos
не соответствует описанию "... на косинус угла между ними, ..."
(речь идет про вычисление скалярного произведения векторов через угол)

Насколько корректна фраза
"Обратимся к программному коду в листинге 4.2." ?

стр. 152-156
Листинг
Опять же напоминаю, я, как и любой здравомысляший человек, книгу читаю в порядке изложения.
public static double operator / (Vector a, Vector b) {}
Такая операция не допустима!
По результатам на возвращается угол Фи
"return phi;"
Только на стр. 157 дается пояснение.
"Кроме этого, можно будет делить вектор на числа, а также формально делить вектор на вектор. В последнем случае вы проявили инициативу -- в математике такая операция недопустима".

Вводятся два новых термина explict и implict, ранее нигде явно не указанные и не объясненные.
public static explict operator double(Vector a){
public static implict operator string(Vector a){

стр. 157
"Культурологическим шоком может стать перегрузка операторов приведения типа(или преобразования типа)."
Когнитивный диссонанс?

стр. 158
"Описывается метод как Vector ... "
слова "Описывается метод" хочется поменять местами или перефразировать.

стр. 159
"... вычисляется по военному просто ..."
по военному просто - лишние слова.
Только за 4 строки до конца таблицы разъясняется ключевое слово explict - перегрузка оператора явного приведения типа.

стр. 160
Из примечания не ясно, что есть явное и неявное приведение типов.
Даже не смотря на запутанный пример. Про Дримз кам тру! Молчу.
В самом конце примечания, дано краткое разъяснение implict - оператор неявного преобразования описывается с атрибутов implict вместо explict.
"С таким оператором мы еще столкнемся."
Этот случай не в счет?

стр. 162
Наконец то дано грамотное объяснение неявному приведению типов.

Знак равенства и знак тождества -- это разные вещи!

стр. 164
"необходимо переопределить методы Object.Equals() и Object.GetHashCode()."
Как то вдруг внезапно. Благо что во врезке "Внимание!"

"Но операции сравнения больше/меньше не имеют особого математического смысла. Мы устраним эту досадную оплошность."
Чего мы сделаем???

стр. 166
Листинг стр. 165-168 -- работа с комплексными числами
выражение
" else return a.Re+((a.Im<0)?"":")+a.Im+"i"; "
абсолютно понятно любому школьнику!

стр. 168
Внимание!
"Поэтому, например, действительное число -- это частный случай комплексного числа, у кторого мнимая часть равна нулю."
Поэтому, например, -- лишние слова.

стр. 170
Первая строка.
"Если число не является действительным, (то) нам нужно проверить ..."
частицы "то" не хватает.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:58, 08-08-2013 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Главы 5,6

----------------------------
Глава 5.

стр. 181
"Эти поля отождествляем с ребрами параллелепипеда."
Прямоугольного -- это очень важное и отсутствующее уточнение!

стр. 184
Может последние два предложения по Свойствам объединить в одно?

Индексаторы.
Первый абзац переформулировать, т.к. смысл и назначение индексов остается не ясными.
"... причем такая конструкция может иметь смысл."
т.е. может и не иметь.

стр. 187
thin -> this
Придумана очередная "военная хитрость".

стр. 188
"Все же перечислим те из характерных черт, которые, с нашей точки зрения, могут представлять неподдельный интерес."
Нашей - Николая Второго? Простите за сарказм.

стр. 190
"(в трехмерном декартовом пространстве)"
Смело ставлю +. Приятное уточнение.

стр. 192
"И хотя может показаться, что индексатор представляет собой очень уж экзотическую конструкцию, тем не менее в сочетании с механизмом перегрузки операторов он становится грозным оружием в борьбе за написание непонятных, но исправно работающих кодов."
Слов нет! Невыразимо!

стр 193
Делегаты.
"Чтобы все это легче было понять, можно провести некоторую аналогию. Объявление делегата сродни описанию класса, а реализация делегата(создание экземпляра делегата) соответствует созданию объекта класса. Итак, приступим к делу."Это просто шедевр! Всем все понятно стало?! P.S. Блок схем - нет.
Отвечая на ответ.
Читая главу все равно нет ясной картины "Что такое делегаты и зачем они нужны?".

стр. 194
"Экземпляр делегата создается по правилам ООП-жанра практически так же, как создаются объекты классов, ..."
после "жанра" нужна запятая или нет?

стр. 196
Абзац "В главном методе программы ..."
Мне остался не ясен. Блок схемы нужны как воздух!

"Чтобы не быть голословным, рассмотрим пример в листинге 5.7."
Чтобы не быть голословным - лишние слова.

стр. 158, стр. 197
"индексная переменная i пробегает значение от 0 до 2"
"индексная переменная i пробегает значение от 0 до 20"
слово "пробегает" следует заключить в кавычки.
Т.к. индексные переменные сами по себе не бегают.

стр. 198
"Пикантность ситуации в том, что сгенерированное событие может быть только объект того класса, в котором событие описано."
Чего???
Во первый "Пикантность ситуации" здесь явно лишняя, во вторых предложение либо не согласовано, либо одно из двух.

стр. 200
"Изменение значения события выполняется с помощью операторов += (...) и -=(...), причем использовать соответсвующие полные формы операторов нельзя. Причина в том, что событие не возвращает значение, поэтому не может использоваться в выражениях."
Это следует вынести в блок "!Внимание"

"Наступил черед примера."
Вычеркнуть.

Придирка.
"Console.WriteLine("Первое событие произошло!");
NewYear(year);"
На самом деле оно не произошло, а произойдет следующей командой.
Да и успех того мероприятия под вопросом.

стр. 202
Последний абзац.
Переписать с наличием схемы.

P.S. Для любопытствующих.
Я не поленюсь, перепишу абзац до знака.
Кто сможет после первого прочтения нарисовать схему, не поленюсь, пиво поставлю.
Но чур все по честному - по слогам дважды не читать, в процессе чтения не рисовать!

стр. 204
"А в этом случае по большому счету и генерируется событие."
"В этом ..." "А" - убрать.
Точно запятых не надо?

"Это во-первых. Есть и во-вторых:..."
Есть и - лишние слова

стр. 208
"Координаты определяются в поинтах по отношению к левому верхнему углу формы. Горизонтальная отсчитывается вправо, а вертикальная -- вниз."
О правильности фразы судите сами.

----------------------------
Глава 6.

стр. 214
Нет четкого определения структур!
"Структуры в известном смысле могут рассматриваться как альтернатива классам -- правда, не такая функциональная, зато более быстрая."
Это не определение.
Далее по тексту оно так же отсутствует.

Текст после совета переписать полностью!
Он не прозрачен для понимания достоинств и недостатков структур в сравнениями с классами.
Вообще! Это место буквально вопиит о схеме!


стр. 215
"Копирование структур выполняется так же, как и переменных базовых типов, то есть в побитовом режиме."
"Побитовый режим" ранее не раскрыт.

"В нашем нелегком деле изучения языка программирования C# структуры вызывают интерес только на уровне конечного пользователя."
А другие уровни - это какие?

стр. 217
"В представленной программе мы попытались с помощью структуры SCompl создать небольшую утилиту для работы с комплексными числами."
Термин "утилита" не определен.

"У структуры имеется два закрытых поля, Re и Im, типа double, которые как бы олицетворяют собой ..."
как бы - можно опустить.

стр. 218
"Есть один прием, который позволяет придать значимости лектору, докладчику или, на худой конец, автору книги. Состоит он в том, чтобы сначала все запутать до невозможности, а потом с видом всезнайки, разложить все по полочкам."
Я приношу свои глубокие извинения за следующую фразу.
Все поймут что автор дурак.

"А нужны они для того, чтобы делать более гибким программный код, в котором ..."
Я не стану уточнять что такое "гибкий программный код".

стр. 223
Последний совет следует сделать примечанием.

стр. 226
Блок "!Внимание" переформулировать.

стр. 227
"Кульминацией развития теории и практики абстрактных классов является концепция интерфейсов."
(С сомнением) Концепция?

стр. 228 +
Наконец то дано вменяемое определение Интерфейсам. 228 страница!

Блок "Совет"
Схему! Схему! Без схемы здесь делать нечего!

"Более того, по умолчанию все они считаются открытыми."
Это следует вынести в блок "!Важно"

стр. 229
"Процесс создания класса на основе интерфейса называется реализация интерфейса"
"реализация интерфейса" ИМХО следует взять в кавычки.
Наконец то сначало дано описание программы.

стр. 233 +
"... ссылка типа Button(то есть объект кнопки)."

"Причем здесь мы применяем небольшую хитрость."
Странно, что не военную.
Абзац переформулировать, т.к. запутывает еще больше.

стр. 233-234
Предложение
"Заголовок индексатора ..." разбить на 2 или 3 предложения.

стр. 234
"Здесь свойству Bounds формы ..."
На стр. 233 слову Button перевод дан. Здесь перевод отсутствует.

"Чтобы использовать структуру Rectangle, в шапку программного кода была добавлена инструкция подключения пространства имен using System.Drawing."
Я не помню в книге разговоров про "шапку программы".

стр. 235
Сложная страница.

"Мы потихоньку начинаем проявлять наши дизайнерские наклонности."
Способности ?

"Для начала нам нужно создать объект, который впитал бы в себя наши представления об удачном шрифте. Исполненные решимости, командой ... создаем объект класса Font."

Совет -> Важно
Это называет "Инициализация переменных".

"Соответственно, для второй кнопки вместо ссылки bCancel будем использовать индексатор this[false], а команда создания этой кнопки имеет вид this[false]=new Button(). И здесь важно понимать, что никакой необходимости в таком пижонстве нет."
Отсутствие необходимости сводит на нет все действо.

"Текст первой кнопки задаем командой this[true].Text="OK" ..."
"Название второй кнопки определяем с помощью команды this[false].Text="Отмена"."
Что мы задаем? Текст или Название ?

"Что касается положения кнопки и границ, то для второй кнопки мы используем подход, альтернативный рассмотренному выше."
Переформулировать.

стр. 239
"В классе Factorial этот метод вычисляет факториал числа, а в классе Fibonacci метод описан так, что вычисляет число Фибоначчи."
описан так, что -- лишние слова.
Кроме того предложение гмм... бессмысленно? Если метод работает не правильно, то какой в нем прок?

стр. 240
Совет.
Обычно люди пишут таблицу итераций цикла, вместо текста.
P.S. Опять же могу приложить кусочек скана страницы.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 09-08-2013 в 23:53.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:40, 09-08-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [Отзыв о книге] А. Васильев. "C#. Объектно-ориентированное программирование.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Теория - [отзыв на книгу] Автоматное программирование. 2-е изд. Поликарпова Н. И., Шалыто А. А lxa85 Программирование и базы данных 1 11-06-2012 23:05
[отзыв на книгу] Владислава Дунаева "Photoshop CS5. Понятный самоучитель" Ghost Цифровое изображение 0 28-11-2010 23:43
C/C++ - [отзыв на книгу] Программирование на C++. Трюки и эффекты. Александр Чиртик Ghost Программирование и базы данных 6 18-07-2010 12:57
2007 - Excel | Как снять защиту к некоторым функциям в книге при включенной "Защита листа"? MaxRAF Microsoft Office (Word, Excel, Outlook и т.д.) 2 10-03-2010 03:59
Отзывы о книге "Linux для пользователя"   Guest Общий по Linux 10 16-10-2004 17:32




 
Переход