Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Учебник по си на русском

Книги по языку Си для начинающих и не только

  • Книги, 21 марта 2017 в 21:09
  • Иван Бирюков

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

The C Book

Книга «The C Book» предназначена для тех, кто уже имеет опыт программирования на высокоуровневых языках. Она посвящена моментам, характерным именно для Си.

  • Введение в Си.
  • Переменные и арифметика.
  • Логические выражения и условные операторы.
  • Функции.
  • Массивы и указатели.
  • Структуры данных.
  • Препроцессор.
  • Особенности Си.
  • Библиотеки.
  • Примеры программ.

Программирование на С для начинающих

«Программирование на С для начинающих» — учебник для максимально быстрого освоения языка, содержащий в себе много практического материала. Изложение четкое и простое, вы узнаете, как организовать программу, хранить и отображать данные, работать с переменными, операторами, вводом/выводом, указателями, массивами, функциями и многими другими вещами.

Пособие содержит всё самое важное, что вам нужно знать для программирования на C:

  • Структура программы.
  • Логические операторы и выражения.
  • Переменные.
  • Циклы.
  • Встроенные функции.
  • Массивы и указатели.
  • Тестирование программ.

C Elements of Style

«C Elements of Style» — это полезное руководство, описывающее основы хорошего стиля программирования. Оно научит вас писать код, который будет легко читать, понимать и поддерживать.

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

Изучаем программирование на C

Книга из серии Head First, которая использует те же подходы, что и другие книги цикла. Материал подается в достаточно игровой форме и с использованием огромного количества иллюстраций. В книге рассматриваются:

  • основы языка Си;
  • динамическое управление памятью;
  • указатели и арифметические операции с ними;
  • многопоточность;
  • сетевое программирование.

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

Программирование на C для начинающих

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

Build Your Own Lisp

Изучайте язык Си и одновременно пишите свой язык программирования — минималистскую версию Lisp — меньше чем за 1000 строк кода.

Эта книга предназначена для тех, кто хочет изучить Си и / или написать свой язык программирования. Однако вам явно потребуется какой-то опыт написания кода, поэтому в качестве первой книги мы её не рекомендуем.

The GNU C Reference Manual

«The GNU C Reference Manual» — это шпаргалка по языку Си стандартов C89 ANSI, C99 ISO и расширениям GNU. Она точно не нужна начинающим программистам.

  • Лексические элементы.
  • Типы данных.
  • Выражения и операции.
  • Операторы.
  • Функции.
  • Структура программы и области видимости.
  • Пример программы.

The GNU C Programming Tutorial

Руководство «The GNU C Programming Tutorial» понятным образом объясняет читателю основы языка. Оно подробно описывает все основные элементы Си и рассказывает, как писать на нём программы, делая акцент на компиляторе GNU/Linux.

Рассматриваются такие темы, как функции, переменные и их объявление, области видимости, операторы, указатели, циклы, массивы, строки, а также многие другие.

Essential C

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

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

  • Вступление.
  • Базовые типы и операторы.
  • Условные операторы.
  • Сложные типы данных.
  • Функции.
  • Препроцессор.
  • Массивы и указатели.
  • Стандартная библиотека.

Beej’s Guide to C Programming

Книга «Beej’s Guide to C Programming» пытается вывести читателя из состояния полного непонимания Си и дать ему понять, что Си — это лучший язык программирования.

  • Основы программирования.
  • Переменные, выражения и операторы.
  • Возвращение к основам.
  • Функции.
  • Переменные, часть 2.
  • Указатели.
  • Структуры.
  • Массивы.
  • Строки.
  • Динамическая память.
  • Продвинутые фичи.
  • Стандартная библиотека ввода / вывода.
  • Управление строками.
  • Математика.

Modern C

«Modern C» стремится мотивировать читателя повысить свой уровень знания языка. Книга разделена на 5 уровней:

  • Первый уровень предоставляет читателю базовые знания о программах Си, их целях и структуре.
  • Второй уровень описывает основные принципы и фичи, такие как условные операторы, типы данных и функции.
  • Третий уровень ведёт к сердцу Си. Он рассказывает об указателях, модели памяти языка и его стандартной библиотекеe.
  • Четвёртый уровень затрагивает такие продвинутые темы, как производительность, атомарность, потоки, и другие.
  • Пятый уровень — в нём автор описывает своё видение развития языка.

An Introduction to GCC

Руководство «An Introduction to GCC» рассказывает о C и C++ компиляторах GNU, gcc and g++, являющихся частью GNU Compiler Collection (GCC).

  • Вступление.
  • Компиляция Си-программы.
  • Опции компиляции.
  • Использование препроцессора.
  • Компиляция для отладки.
  • Компиляция с оптимизацией.
  • Компиляция CPP-программы.
  • Платформо-специфические опции.
  • Решение проблем.
  • Инструменты.
  • Принципы работы компилятора.
  • Изучение скомпилированных файлов.
  • Типичные ошибки.
  • Дополнительные материалы.

Вот ещё несколько бесплатных книг по языку Си:

И, разумеется, не стоит забывать про каноничную книгу Кернигана и Ритчи: The C Programming Language. Сложная, не для начинающих, но по праву признана шедевром.

C / C++

Русский

Параллельное программирование на С++ в действии. Практика разработки многопоточных программ. Энтони Уильямс

В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. .

    Программирование на С для начинающих. М. МакГрат

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

    Алгоритмы и программы. Язык С++. Е. Конова, Г. Поллак

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

    Expert C Programming: Deep Secrets. P. Linden

    C programming is a craft that takes years to perfect. .

    Программирование на С для начинающих. 3-е изд. Грег Перри, Дин Миллер

    Простое и понятное руководство по программированию на С поможет быстро .

    Программирование: учебное пособие. Л.А. Надейкина

    В Учебном пособии рассматривается на базе языка С++ одна из .

    Введение в язык Си++. А.В.Столяров

    Краткое (объём четвёртого издания — 136 страниц) введение в язык .

    Объектно-ориентированное программирование в С++. Р. Лафоре

    Основная задача этой книги — научить вас создавать программы на .

    Введение в C++. 4-ое издание. А. В. Столяров

    Краткое введение в язык Си++. Содержание построено по принципу плавного .

    Объектно-ориентированное программирование на C++. Пол Айра

    Если вы хотите писать качественные приложения, с хорошей архитектурой и .

    Язык программирования С. Брайан Керниган, Деннис Ритчи

    Книга по программированию от авторов языка C.
    В своё .

    Метапрограммирование шаблонов C++ в задачах математической физики. М.М. Краснов

    Рассматривается применение метапрограммирования шаблонов языка C++ для упрощения записи алгоритмов .

    English

    The C programming language. 2 ed. B. W. Kernighan, D. M. Ritchie

    The computing world has undergone a revolution since the publication .

    Test Driven Development for Embedded C. J. W. Grenning

    I was first exposed to Test-Driven Development at the first .

    Structured Programming with C++. Kjell Bäckman

    The purpose of the course Structured Programming with C/C++ is .

    Understanding and Using C Pointers. R. M. Reese

    Numerous books have been written about C. They usually offer .

    Programming in C. S. G. Kochan

    The C programming langguage was pioneered by Dennis Ritchie at .

    API Design for C++. Martin Reddy

    API Design for C++ provides a comprehensive discussion of Application .

    The C++ Standard Library. Nicolai M. Josuttis

    The Best-Selling C++ Resource Now Updated for C++11
    The .

    Effective Modern C++. Scott Meyers

    Topics include:
    The pros and cons of braced initialization, .

    Objective-C for Absolute Beginners. Gary Bennett, Brad Lees, Mitchell Fisher

    Learn Objective-C and its latest release, and learn how to .

    Optimized C++. Kurt Guntheroth

    This book is here to help you get your job .

    Читать онлайн «Язык Си — руководство для начинающих» автора УЭИТ M. — RuLit — Страница 1

    Предисловие редактора перевода

    Созданием языков программирования занимаются в большинстве случаев очень квалифицированные люди, часто группы программистов, а иногда даже международные коллективы. Однако подавляющее большинство языков программирования умирало, едва родившись. Лишь к немногим из них был проявлен интерес, и буквально единицы получили действительно широкое распространение. К таким «счастливым» языкам принадлежит язык Си, разработанный Д. Ритчи. Он появился не на пустом месте. Ему предшествовали и оказали на него серьезное влияние язык BCPL, разработанный М. Ричардсоном, и язык Би (В), созданный К. Томпсоном.

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

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

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

    Предлагаемая читателю книга — учебник по языку Си. Книга написана известными американскими специалистами М. Уэйтом, С. Пратой и Д. Мартином с большим педагогическим и методическим мастерством: излагаемый материал проиллюстрирован многочисленными примерами и задачами. Это обеспечивает легкость понимания и усвоения предмета. Поскольку трансляторы с языка Си появились сейчас на отечественных машинах, книга может представлять интерес не только для широкого круга читателей, впервые знакомящихся с языком Си, но и для системных программистов, инженеров и научных работников.

    Перевод выполнили В. С. Явнилович (предисловие, гл. 1–9) и Л. Н. Горинович (гл. 10–15 и приложения).

    Э. А. Трахтенгерц

    Си — простой, изящный язык программирования, на котором останавливает свой выбор все большее число программистов. Эта книга (если вы не посмотрели на титульный лист) называется «Язык Си. Руководство для начинающих»; она представляет собой простой и хороший учебник по языку Си.

    Слова «Руководство для начинающих», стоящие в подзаголовке книги, говорят о том, что нашей целью было дать обзор основ языка Си. В программировании опыт — великий учитель; с этой целью в книге приведено много задач учебного и познавательного характера. Мы пытались использовать рисунки всюду, где, как мы надеялись, они помогут внести ясность. Чтобы вы имели возможность проверить себя, в конце каждой главы приводятся вопросы для самоконтроля (и ответы на них). Мы не предполагаем у вас большого опыта работы на каком-нибудь языке программирования, однако иногда будем сравнивать язык Си с другими языками, ориентируясь на тех читателей, которые знают их.

    Мы несколько расширили границы обычного учебника: обсудили ряд более сложных тем, таких, как использование структур, приведение типов, работу с файлами; в приложении мы рассмотрели возможности побитовой обработки на языке Си, а также некоторые расширения языка. Мы описали программную среду компилятора с языка Си, функционирующего как с операционной системой UNIX, так и с программным обеспечением микрокомпьютеров: например, обсудили вопрос переключения ввода-вывода и продемонстрировали использование портов в микропроцессорах INTEL 8086/8088. И наконец, мы включили шутливые рисунки как одно из довольно приятных дополнений.

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

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

    Мы благодарим Роберта Лафора из издательства Waite Group за редакторские советы и Боба Петерсена за техническую помощь. Мы приносим благодарность также компании Lifeboat Associates (в особенности Джошуа Аллену и Тодду Кацу) за возможность использовать компилятор Lattice С. Мы благодарим специалистов компаний C-Systems, Software Toolworks, Telecon Systems и Supersoft за предоставленную нам информацию о своих компиляторах с языка Си. Один из авторов, С. Прата, посвящает свой труд родителям — Вики и Биллу — с любовью.

    М. Уэйт, С. Прата, Д. Мартин

    ИСТОРИЯ СИ ДОСТОИНСТВА СИ

    ЯЗЫКИ КОМПИЛЯЦИИ

    Добро пожаловать в мир языка Си. В данной главе мы попробуем подготовить вас к изучению этого мощного языка, завоевывающего все большую популярность. Что вам для этого нужно? Во-первых, интерес к Си, который, по-видимому, у вас уже есть. Но, чтобы усилить его, мы кратко обрисуем некоторые привлекательные стороны данного языка. Во-вторых, вы нуждаетесь в учебнике по языку Си — и учебником послужит вам эта книга. Кроме того, вам нужен доступ к какой-нибудь вычислительной системе, в которой имеется компилятор с языка Си. Это вы должны обеспечить себе сами. Наконец, вам необходимо научиться выполнять Си-программу на вашей вычислительной системе, и мы в конце главы дадим вам несколько советов по этому поводу.

    ПРОИСХОЖДЕНИЕ ЯЗЫКА СИ

    Сотрудник фирмы Bell Labs Деннис Ритчи создал язык Си в 1972 г. во время совместной работы с Кеном Томпсоном над операционной системой UNIX. Ритчи не выдумал Си просто из головы — прообразом послужил язык Би, разработанный Томпсоном, который в свою очередь…, но это уже другая история. Важным моментом для нас является то, что язык Си был разработан как инструмент для программистов-практиков. В соответствии с этим главной целью его автора было создание удобного и полезного языка.

    Мы думаем, что критерий полезности принимался во внимание ПРИ разработке большинства языков программирования, но, кроме того, часто учитывались и другие потребности. Одной из главных Целей при создании языка Паскаль, например, было построение ПРОЧНЫХ основ обучения принципам программирования. Язык Бейсик создавался так, чтобы его синтаксис был близок к синтаксису английского языка; поэтому им легко могли пользоваться студенты, не знакомые с ЭВМ. Все эти цели тоже важны, но они не всегда совместимы с прагматическими, каждодневными требованиями. Предпосылки, послужившие основой создания языка Си как средства программирования, позволили разработать, кроме того, язык, облегчающий труд программиста.

    Книги и учебные ресурсы по С++

    В этом вопросе собирается литература по языку C++

    Имя Фамилия — «Название книги целиком и полностью», ГГГГ г..

    Формат для переведенной литературы:

    Имя Фамилия (Name Surname) — «Название книги целиком и полностью», ГГГГ перевода («Full name of the book», YYYY )

    • Не создавайте новых ответов — редактируйте этот.
    • Не размещайте ссылки на нелегальный контент вроде торрент-трекеров.
    • Старайтесь сохранять разделение по категориям.
    • Сохраняйте алфавитную (лексикографическую) сортировку по названию книги. (когда она будет)

    2 ответа 2

    Если сомневаетесь в выборе, следуйте простым и объективным рекомендациям в конце этого ответа.

    Для начинающих

    • Стефан Рэнди Дэвис — C++ для чайников, 7-е издание
    • Сиддхартха Рао — Освой самостоятельно C++ по одному часу в день
    • Брюс Эккель (Bruce Ekkel) — Философия C++. Введение в стандартный C++
    • Брюс Эккель (Bruce Ekkel) — Философия C++. Практическое программирование
    • Стенли Липпман, Жози Лажойе, Барбара Э. Му — Язык программирования C++. Вводный курс (C++ Primer)
    • Стенли Липпман — Основы программирования на С++. Том 1 (Essential C++)
    • Роберт Лафоре — Объектно-ориентированное программирование в С++
    • Бьерн Страуструп (Bjarne Stroustrup) — Программирование. Принципы и практика с использованием С++. 2-е изд. (Programming: Principles and Practice Using C++) Обязательно второе издание — в первом русском издании огромное количество ошибок!
    • Эндрю Кёниг, Барбара Э. Му (Andrew Koenig, Barbara E. Moo) — Эффективное программирование на C++. Серия книг «C++ In-Depth», 2002 (Accelerated C++: Practical Programming by Example, 2000)
      Учебник по основам C++ для тех, кто уже имеет некоторый опыт программирования на других языках.
    • Герберт Шилдт — C++ базовый курс
      Существует мнение, что эта книга содержит достаточно много неточностей и ошибок. Тем не менее, она популярна в роли книги для начального обучения.

    Для среднего уровня

    • Николаи М. Джосаттис (Nicolai M. Josuttis) — Стандартная библиотека C++: справочное руководство, 2-е издание, 2014 (The C++ Standard Library — A Tutorial and Reference, 2nd Edition, 2012)
    • Скотт Мейерс (Scott Meyers) — 55 верных советов улучшить структуру и код ваших программ (Effective C++: 55 Specific Ways to Improve Your Programs and Designs)
    • Скотт Мейерс (Scott Meyers) — Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов (More Effective C++: 35 New Ways to Improve Your Programs and Designs)
    • Герб Саттер — Решение сложных задач на С++ (Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions.)
    • Герб Саттер — Новые сложные задачи на C++ (More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions)
    • Бьерн Страуструп (Bjarne Stroustrup) — Язык программирования С++ (The C++ Programming Language)
    • Андрей Александреску (Andrei Alexandrescu ) — Современное проектирование на C++ (Modern C++ Design: Generic Programming and Design Patterns Applied)
    • Герб Саттер, Андрей Александреску — Стандарты программирования на C++
    • Бьярне Страуструп — Язык программирования С++. Краткий курс, второе издание

    Для высокого уровня

    • Бьерн Страуструп (Bjarne Stroustrup) — Дизайн и эволюция C++ (The Design and Evolution of C++)
    • Стенли Липпман (Stanley Lippman) — (Inside the C++ Object Model)
    • Скотт Мейерс — Эффективный и современный C++ (Effective Modern C++)
    • Питер Готтшлинг — Современный C++ для программистов, инженеров и ученых (Discovering Modern C++: A Concise Introduction for Scientists and Engineers (C++ In-Depth Series))
    • Курт Гантерот — Оптимизация программ на C++
    • Дэвид Вандевурд, Николаи М. Джосаттис, Дуглас Грегор Шаблоны C++. Справочник разработчика, 2-е издание
    • Энтони Уильямс — Параллельное программирование на С++ в действии

    Документация

    • Е.А. Зуев, А.А. Чупринов Стандарт С++: перевод, комментарии, примеры. — Москва: ООО «ВАШ ФОРМАТ». — 2016 г. — 888 с.

    Несколько слов о выборе книг от сообщества StackOverflow

    Все книги, представленные здесь, достаточно хороши (@avp подтверждает, что хорошие книги по программированию есть). Мы постарались сгруппировать их по категориям сложности на основе собственного субъективного мнения. Мы стараемся, чтобы в списке были только хорошие книги, но не сможем выбрать лучшую для вас. Пробуйте читать разные книги и найдите её самостоятельно. Если будет сложно — возьмите попроще, скучно — посложнее.

    @Vlad рекомендует: если вы не можете выбрать сами, берите книгу номером, равным дню вашего рождения % размер списка.

    Ещё @Igumnov просил передать, что лучше бы вы учили C++ не первым языком. @PashaPash считает, что можно и первым, но не в коем случае не C перед C++!

    Надеюсь, наши субъективные и противоречивые мнения помогли вам понять основную идею: вы должны сами решить, что вам читать и чему учиться. Идеальную, нужную именно вам книгу можете выбрать только вы сами. С уважением, @NickVolynkin.

    Вот вам карта, чтобы сориентироваться (картинка кликабельна):

    Это ответ для начинающих изучать С++ и возможно даже первым языком.

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

    Как отличить хорошую литературу от плохой для начинающих изучать C++ в 202x году?

    Всё просто — её нет. Хорошие книги есть но они абсолютно точно не для начинающих. Для того что бы начать изучать язык нужно сразу на нём писать без этого можно прочесть тонну литературы но писать Вы на нём от этого не научитесь, а задачи из книг 90% студентов перестают делать после первых 5-6 глав, просто потому что нет интерактивности и вам ни кто не скажет правильно ли Ваше решение и на сколько оно правильно.

    Так же большинство книг, якобы «для начинающих», расскажут про то как работают указатели, как выделяется память в мельчайших подробностях, как выводятся типы в шаблонах и даже как работает препроцессор и всё это в самой первой и основной части книги. Но зато как создать банальный vector и отсортировать его qsort вы увидите где то странице на 500. Так что если видите что то типа

    Просто закрывайте эту книгу, та же ситуация и с другими источниками.

    Как быть и где тогда учится С++?

    На сегодняшний день есть отличная серия бесплатных курсов по изучению C++ на Coursera: Основы разработки на C++. К сожалению других пока не знаю, может кто то дополнит меня.

    Если сейчас у вас крутиться в голове: «Что это за идиот осуждающий книги мэтров c++ и знает ли он вообще о чём говорит«. Вот доклад с ежегодной конференции по C++ от одного из авторов этих курсов и с опытом в вопросах обучения: C++ Russia 2018: Илья Шишков, Как научить языку C++: опыт создания курсов на Coursera

    Читать еще:  Арифметические команды ассемблера
Ссылка на основную публикацию
Adblock
detector