требуется сабж... в _электронном_ виде... для дуболома (меня то есть)...
желательно, чтобы написано было простым языком, без лишних умных слов... а то нашел две книги (Громова и Титаренко) — слишком много воды и умных фраз, которые понимаютяс прочтения так с 5-8... в примерах куча ошибок... + мне надо выучить С в течение недели-двух-трех...
так ли она проста??? я начинал ее читать... примеры из нее не компилятся, ошибки выдают и работают порой неправильно... или стоит дочитать ее???
какие еще книги посоветуете???
рожденный ползать — уйди со взлетной полосы
Re[3]: книги по С, без плюсов
От:
Аноним
Дата:
06.08.05 15:34
Оценка:
Здравствуйте, lepis, Вы писали:
L>так ли она проста??? я начинал ее читать... примеры из нее не компилятся, ошибки выдают и работают порой неправильно... или стоит дочитать ее???
Одумайся! На K&R батон крошишь
Возможно вы первое издание книги читали, а язык с тех пор немного изменился. И да, книга действительно очень просто написана.
в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
Здравствуйте, lepis, Вы писали:
L>Здравствуйте, __LP, Вы писали:
__L>>Учи С++.
L>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
Керниган и Ричи или Громов и Татаренко, лучше врядли есть...
C++ можно выучить за 21 день! ...если дни — полярные.
Здравствуйте, lepis, Вы писали:
L>Здравствуйте, __LP, Вы писали:
__L>>Учи С++.
L>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
Дорогой "коллега" я учу С/С++ уже довольно продолжительное время (много больше 3х недель), не потому, что я тупой, и не потому, что у меня не получается, просто я его использую в качестве своего оружия в добывании денег из работодателя.
И вот, что я вам скажу: по моему у Вас подход к изучению не правильный, и дело совсем не Кернигане и даже не Ритчи.
Здравствуйте, lepis, Вы писали:
L>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
Ну если вы знаете С++, но не знаете С — значит С++ вы знаете довольно поверхностно...
А вообще, кроме K&R очень советую Стивена Прату. У него есть хорошие учебники и по С, и по С++.
Здравствуйте, BreQwaS, Вы писали:
BQS>Ну если вы знаете С++, но не знаете С — значит С++ вы знаете довольно поверхностно...
Скажи это Андрею Тарасевичу, помнится он, отвечая на вопрос "какие он книги читал при изучении
С/С++", — перечислил книги только по С++, а на следующий вопрос "Читали ли Вы книги по чистому С?"
ответил — "что-то читал, но давно это было. Не помню уже, что именно...".
ИМХО лучше начинать с С++. А Си, оно само собой выучится, если книги хорошие.
Вообще, С и С++ языки довольно разные. Но при этом один является частью другого. И начинать учить С++ не зная С хотя бы на уровне K&R — ИМХО очень неправильный подход. В учебниках по С++ изучается именно С++. В учебниках по С — именно С.
И не понимая полностью языка С, понять С++ нельзя. ИМХО.
Здравствуйте, __LP, Вы писали:
__L>Здравствуйте, BreQwaS, Вы писали:
__L>P.S. Как можно в ответ на привыз "Учи С++" закидывать минусами? Вы видимо не в тот подфорум зашли...
во первых форум называется С/С++, а во вторых человек спросил какие книги прочитать а не учить ли ему С++ или что либо еще.
Здравствуйте, McSeem2, Вы писали:
MS>Вряд ли можно сейчас достать, но на всякий случай: MS>
MS>М.Болски. Язык программирования Си. Справочник. — М.: Радио и связь, 1988.
MS>Большего для языка Си как такового и не требуется.
Ю.Богатырев "Руководство полного идиота по программированию на C". Ищется поиском, например на www.citforum.ru.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Здравствуйте, BreQwaS, Вы писали:
BQS>Вообще, С и С++ языки довольно разные. Но при этом один является частью другого. И начинать учить С++ не зная С хотя бы на уровне K&R — ИМХО очень неправильный подход.
Нормальный подход. См. Accelerated C++ by Koenig или Эффективный С++ на русском.
BQS>В учебниках по С++ изучается именно С++. В учебниках по С — именно С.
и?
BQS>И не понимая полностью языка С, понять С++ нельзя. ИМХО.
Можно.
Здравствуйте, Pavel Chikulaev, Вы писали:
PC>Здравствуйте, BreQwaS, Вы писали:
BQS>>Вообще, С и С++ языки довольно разные. Но при этом один является частью другого. И начинать учить С++ не зная С хотя бы на уровне K&R — ИМХО очень неправильный подход. PC>Нормальный подход. См. Accelerated C++ by Koenig или Эффективный С++ на русском.
Ага. А еще Thinking in C++ by Bruce Eckel и книжки Липпмана.
C++ можно выучить за 21 день! ...если дни — полярные.
Здравствуйте, lepis, Вы писали:
L>требуется сабж... в _электронном_ виде... для дуболома (меня то есть)...
L>желательно, чтобы написано было простым языком, без лишних умных слов... а то нашел две книги (Громова и Титаренко) — слишком много воды и умных фраз, которые понимаютяс прочтения так с 5-8... в примерах куча ошибок... + мне надо выучить С в течение недели-двух-трех...
L>заранее огромное спасибо...
Стивен Прата. Язык программирования С.
Здравствуйте, lepis, Вы писали:
L>Здравствуйте, __LP, Вы писали:
__L>>Учи С++.
L>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, lepis, Вы писали:
L>>Здравствуйте, __LP, Вы писали:
__L>>>Учи С++.
L>>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
S>Берем С++ и убираем оттуда все лишнее...
Ага и получится С с классами. Не понимаю, как можно знать С++ без знания основ С
ИМХО эта книга для программиста на С то же самое, что и книга Страуструпа "Язык программирования С++" для программиста на С++ — наверняка лучшая из доступных книг по теме.
Of course, the code must be complete enough to compile and link.
Здравствуйте, fay, Вы писали:
L>>>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
S>>Берем С++ и убираем оттуда все лишнее...
fay>Ага и получится С с классами.
Лишнее — это и классы с методами...
fay>Не понимаю, как можно знать С++ без знания основ С
fay>>Не понимаю, как можно знать С++ без знания основ С
Что такое С++ без основ С ? С и С++ два разных языка. С++ имеет часть, схожую с С, синтаксис, конструкции, выражения, и т.д. Но эта часть — все равно С++. Так что это — неотъемлемая часть С++, а не основы С.
Другое дело, что автор явно преувеличивает. Если для него С++ в техникуме был прост, то о С ему уже не нужно много
нового узнавать. Схожие части С и С++ это уже процентов на 90 С, за вычетом всяких досадных различий.
----Knowing C is a prerequisite for learning C++, right?
Bjarne:
Wrong. The common subset of C and C++ is easier to learn than C. There will be less type errors to catch manually (the C++ type system is stricter and more expressive), fewer tricks to learn (C++ allows you to express more things without circumlocution), and better libraries available. The best initial subset of C++ to learn is not "all of C".
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
fay>>>Не понимаю, как можно знать С++ без знания основ С
L_L>Что такое С++ без основ С ? С и С++ два разных языка. С++ имеет часть, схожую с С, синтаксис, конструкции, выражения, и т.д. Но эта часть — все равно С++. Так что это — неотъемлемая часть С++, а не основы С. L_L>Другое дело, что автор явно преувеличивает. Если для него С++ в техникуме был прост, то о С ему уже не нужно много L_L>нового узнавать. Схожие части С и С++ это уже процентов на 90 С, за вычетом всяких досадных различий.
Ему ничего нового не нужно узнавать. Нужно только узнать, какая часть C++ относится к C, а какая — нет. А различий не так уж и много: классы с методами (операторами), шаблоны и исключения. Плюс библиотеки, основынные на этих трех.
S>Ему ничего нового не нужно узнавать. Нужно только узнать, какая часть C++ относится к C, а какая — нет. А различий не так уж и много: классы с методами (операторами), шаблоны и исключения. Плюс библиотеки, основынные на этих трех.
Есть несколько не очень значительных моментов-различий помимо названных тобой в некоторых местах "общего подмножества" С и С++. Но вообще я не верю автору. Т.е. если бы С++ он знал, у него не возникло вопросов по С и книге
Кернигана Ритчи.
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
S>>Ему ничего нового не нужно узнавать. Нужно только узнать, какая часть C++ относится к C, а какая — нет. А различий не так уж и много: классы с методами (операторами), шаблоны и исключения. Плюс библиотеки, основынные на этих трех.
Угу. добавь наследование и все, что из этого вытекает...
L_L>Есть несколько не очень значительных моментов-различий помимо названных тобой в некоторых местах "общего подмножества" С и С++. Но вообще я не верю автору. Т.е. если бы С++ он знал, у него не возникло вопросов по С и книге L_L>Кернигана Ритчи.
Дак это и необязательно, ведь С++ поддерживает несколько парадигм программирования
Простейшие базовые конструкции С++, необходимые для написания программ: объявления, определения функций, циклы, выражения, типы и т.д они и в С такие (или почти такие). Так что после изучения С++ в техникуме, автору практически ничего не надо делать для перехода на С — только почитать про различия в общем подмножестве С и С++. И необязательно даже читать книгу К&Р — есть вещи и получше, и посовременнее — буквально несколько недель назад проскакивала ссылка на книгу, в которой проводится детальный анализ общих подмножеств С и С++.
А вот если автор не знает С++, то тогда К и Р ему в руки и вперед!
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
fay>>Я не верю, что автор знает OOP.
L_L>Дак это и необязательно, ведь С++ поддерживает несколько парадигм программирования
L_L>Простейшие базовые конструкции С++, необходимые для написания программ: объявления, определения функций, циклы, выражения, типы и т.д они и в С такие (или почти такие). Так что после изучения С++ в техникуме, автору практически ничего не надо делать для перехода на С — только почитать про различия в общем подмножестве С и С++. И необязательно даже читать книгу К&Р — есть вещи и получше, и посовременнее — буквально несколько недель назад проскакивала ссылка на книгу, в которой проводится детальный анализ общих подмножеств С и С++.
Тогда (повторяюсь) это получится С с калассами, а не ++...
L_L>А вот если автор не знает С++, то тогда К и Р ему в руки и вперед!
Если он пишет, что думает, что знает его — то никакой K&R ему уже не поможет...
Здравствуйте, Sm0ke, Вы писали:
S>Если вы знаете C++, то достаточно рассмотреть его отличия от C.
S>в C нет:
S>-перегрузки функций и операторов { void fn(char c); void fn(float f); } S>-классов (а значит конструкторов, деструкторов и вообще методов) S>-ссылок { int a; int & b= a; void fn(int & i); } S>-обработки исключений S>-шаблонов //template
S>Надеюсь ничего не забыл.
Только одно — наследование, и все что с этим связано (см другую ветку)...
Hello, Sm0ke, you wrote:
> Если вы знаете C++, то достаточно рассмотреть его отличия от C.
> в C нет:
> -перегрузки функций и операторов { void fn(char c); void fn(float f); } > -классов (а значит конструкторов, деструкторов и вообще методов) > -ссылок { int a; int & b= a; void fn(int & i); } > -обработки исключений > -шаблонов //template
> Надеюсь ничего не забыл.
Еще нет констант. ( void f(char const *); int const i = 1; )
Еще все локальные переменные можно объявлять только в начале блока.
Hello, _DAle_, you wrote:
gbt>>Еще нет констант. ( void f(char const *); int const i = 1; ) gbt>>Еще все локальные переменные можно объявлять только в начале блока.
> А если почитать ISO/IEC 9899:1999 ?
Здравствуйте, fay, Вы писали:
fay>Здравствуйте, Sm0ke, Вы писали:
S>>Если вы знаете C++, то достаточно рассмотреть его отличия от C.
S>>в C нет:
S>>-перегрузки функций и операторов { void fn(char c); void fn(float f); } S>>-классов (а значит конструкторов, деструкторов и вообще методов) S>>-ссылок { int a; int & b= a; void fn(int & i); } S>>-обработки исключений S>>-шаблонов //template
S>>Надеюсь ничего не забыл. fay>Только одно — наследование, и все что с этим связано (см другую ветку)...