Зачем и как эффективно учить язык программирования Си: исчерпывающая подборка ресурсов для освоения. Стандарт языка си плюс плюс Бесплатный курс «C Tutorial for Beginners»

ЛИРИЧЕСКОЕ ВСТУПЛЕНИЕ.
есть на ФКНе такой предмет: ЯСиТП (язык си и теория программирования). иситовцы изучают его на третьем курсе и особых проблем с ним, как правило, не имеют. а несчастные студенты с мкн вынуждены именно с него начать изучение программирования - с первых недель пребывания в универе. все бы ничего - если студент в школе хоть немного учил информатику и хорошо знаком с паскалем - выучит синтаксис и дальше будет загоняться матаном и дискретой. а если не учил и не знаком? то есть даже совсем?
тогда ваше дело труба\дрянь\плохо.
первое: на лекциях Хлебостроева не спать. нет труднее задачи, чем не прикорнуть под его размеренный голос на четвертой паре, но... все зависит от вас.
второе: начните читать книжку, например http://www.ph4s.ru/bookprogramir_1.html там найдете книгу Богатырева "руководство полного идиота по программированию" или что-то другое по вкусу.
третье и пожалуй самое главное: ПРАКТИКА. о чем я и поведу речь.
прежде чем пытаться что-либо писать дома, надо установить правильную студию. по опыту почти всего мкн2012 года набора вижул студио 2010 с++ экспресс - нерабочая. то что ИДЕАЛЬНО написано на компах в универе, она читает с ошибкой без возможности исправления. почему - не наше дело, мы ищем вижуал студио 2010 (2012) ултимайт (Visual Studio Ultimate 2012). например здесь:http://www.microsoft.com/visualstudio/ru... . устанавливаем пробную версию, после чего можно уже приступать к практике.

(примечание1:
файл - дополн.параметры сохранения - кирилица doc. тогда консоль будет нормально читать русские буквы.

ПРИМЕЧАНИЕ2: для того чтобы получить полноценную программу из представленного кода необходимо создать новый проэкт в вижуал студио, выбрать пункт "пустой проэкт", указать имя проэкта, в папке "файлы исходного кода" правой клавишей мыши добавить новый элемент "файл с++", скопировать в образовавшееся окно мой код и скомпилировать (клавиши контрол+ F5), после чего попробовать написать что-то подобное самостоятельно.)

ПРАКТИКА.
программирование классически начинается с написания элементарной программы "привет мир!".
на форуме есть несколько тем об этой программе на разных языках, кроме с++, поэтому вот код:

#include "stdio.h" #include "conio.h" int main(int argc, char* argv) { printf("Hello, World!\n"); }

полезно написать так же пару тройку простейших программ такого типа (например эта выводит результат уравнения с известными заранее данными):

// tytytyty.cpp: Defines the entry point for the console application. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { int x , y , z; x = 9; y = 4; z = x*y; printf("%d", z); }

затем посложнее(эта программа считывает два вводимых значения и дает результат уравнения с введенными значениями):

#include "stdio.h" void main() { int x , y , z; scanf("%d, %d", &x, &y); z = x*y; printf("%d", z); }

следующая программа, заданная преподом после "привет мир!", у меня выглядела так:
условие: дан квадрат и вписанный в него круг. найти половину площади квадрата, оставшуюся за пределами круга, если будет известна сторона квадрата.
решение:

#include "stdio.h" #include "math.h" #define PI 3.1415926535897932384626433832795 void main() { double x; printf("введите значение стороны квадрата x = "); scanf("%lf", &x); double y = x / 2; double f = x * x; double z = PI * y * y; double s = (f - z) / 2; printf("%lf\n", s); }

как вариант с использованием библиотеки констант:

#define _USE_MATH_DEFINES #include "stdio.h" #include "math.h" void main() { double x; printf("x = "); scanf("%lf", &x); double y = x / 2; double f = x * x; double z = M_PI * y * y; double s = (f - z) / 2; printf("%lf\n", s); }

программа номер пять из таск два. условие: решить квадратное уравнение с задаваемыми коэфицентами.
реализация:

#include "stdio.h" #include "math.h" #include "conio.h" int main() { float x , x1, sq, a, b, c; printf("Vvedite znachenija a, b, c: "); scanf("%f, %f, %f", &a, &b, &c); if (a == 0) { x = - c / b; printf("%f", x); } else { float k; k = b * b - 4 * a * c; if (k < 0) { printf("Kornei net!"); } else if (k == 0) { x = - b / (2 * a); printf("%f", x); } else { sq = sqrt(k); x = (-b + sq) / (2 * a); x1 = (-b - sq) / (2 * a); printf("%f, %f", x, x1); } } getch(); return 0; }

(ВНИМАНИЕ!! при указании библиотек вместо знаков больше \ меньше везде указаны кавычки)

ПОСЛЕСЛОВИЕ: позднее будут добавляться остальные задачи.

Язык Си был разработан Деннисом Ритчи и Брайаном Керниганом в 1969–1973 годах. Си задумывался для реализации операционной сети UNIX, но впоследствии он нашел себе более широкое применение.

На сегодняшний момент Си занимает стабильное второе место .

Зачем нужен Си?

Мы уже о важности языка Си, поэтому пробежимся по основным пунктам.

Начнем с того, что большая часть системного программного обеспечения пишется на языке Си. Ядро популярнейшей open source ОС Linux было написано на Си.

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

Стоит также отметить, что наиболее популярные языки программирования тем или иным образом связаны с Си. Так, например, Java и C# имеют так называемый Си-подобный синтаксис, а C++ и Objective-C в том или ином роде являются расширениями Си.

Если вы пишете код на каком-нибудь динамическом языке программирования, будь то PHP, JavaScript или Python, то его интерпретатор, среда исполнения и большинство библиотек в основном написаны на Си. Следовательно, чтобы понять особенности поведения того или иного языка, нужно знать особенности языка Си. А если вы вышли за рамки возможностей своего языка программирования, то не успеете оглянуться, как начнёте писать новое расширение на Си.

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

И это доводы в пользу изучения Си.

Что дальше?

Теперь, когда мы разобрались, зачем нам нужен Си, возникает логичный вопрос: «А как его выучить?».

Книга «Язык программирования Си»

Никто не расскажет вам о Си лучше, чем создатели этого языка программирования. Поэтому книга «Язык программирования Си» , написанная Деннисом Ритчи и Брайаном Керниганом, является must-have для каждого, кто хоть как-то решил связать свою жизнь с Си.

Курс «The Complete C Developer Course - Build 7 Exciting Projects»

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

Курс платный, но он однозначно стоит своих денег. Дальше предлагаем бесплатные материалы.

Знаменитый гарвардский курс «CS50»

Теперь он языке. Прежде всего CS50 научит вас думать. Некоторые из тем, которые вы пройдете в течение курса: абстракция, алгоритмы, структуры данных, инкапсуляция, управление ресурсами, безопасность, разработка программного обеспечения и веб-разработка. Языки, которые вы будете использовать: C, Python, SQL и JavaScript вместе с HTML и CSS. И что немаловажно, курс бесплатный.

Бесплатный курс «C Tutorial for Beginners»

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

Бесплатные онлайн-курсы по Си от двух ведущих финских университетов

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

Над курсом совместно работали университет Аалто и университет Хельсинки (тот самый, где когда-то обучался Линус Торвальдс), а объясняемый в нем материал полностью дублирует курсы по Си, преподаваемые в этих университетах.

Книга «Learn C The Hard Way»

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

Книга представляет собой введение в язык программирования C++. Основное отличие данной книги от предыдущих изданий C++ для чайников в том, что это издание не требует от читателя каких-либо дополнительных знаний, в то время как предыдущие издания опирались на знание читателем языка программирования С. Несмотря на простоту изложения материала, он подан в книге достаточно строго, так что, изучив основы программирования на C++ с помощью этой книги читатель уже не будет сталкиваться с трудностями
при дальнейшем изучении языка.
Эта книга не учит программированию для Windows или созданию красивого интерфейса двумя движениями мышью; изложенный в ней материал не привязан к какому-то определённому компилятору или операционной системе. Она вряд ли будет полезна профессиональному программисту, но если ваша цель - глубокое знание языка программирования и вы не знаете, с чего начать, - эта книга для вас.

Что такое C++.
C++ представляет собой объектно-ориентированный низкоуровневый язык программирования, отвечающий стандартам ANSI и Международной организации стандартов (International Standards Organization - ISO). Объектная ориентированное C++ означает, что он поддерживает стиль программирования, упрощающий кодирование крупномасштабных программ и обеспечивающий их расширяемость. Будучи низкоуровневым языком, C++ может генерировать весьма эффективные высокоскоростные программы.

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

ОГЛАВЛЕНИЕМ
СОДЕРЖАНИЕ 6
Введение 17
Часть 1. Первое знакомство с C++ 23
Глава 1. Написание вашей первой программы 25
Глава 2. Премудрости объявления переменных 41
Глава 3. Выполнение математических операций 50
Глава 4. Выполнение логических операций 55
Глава 5. Операторы управления программой 66
Часть 2. Становимся функциональными программистами 79
Глава 6. Создание функций 81
Глава 7. Хранение последовательностей в массивах 92
Глава 8. Первое знакомство с указателями в C++ 105
Глава 9. Второе знакомство с указателями 117
Глава 10. Отладка программ на C++ 128
Часть 3. Введение в классы 143
Глава 11. Знакомство с объектно-ориентированным программированием 145
Глава 12. Классы в C++ 149
Глава 13. Работа с классами 154
Глава 14. Указатели на объекты 167
Глава 15. Защищённые члены класса: не беспокоить! 181
Глава 16. Создание и удаление объектов 188
Глава 17. Аргументация конструирования 198
Глава 18. Копирующий конструктор 213
Глава 19. Статические члены 224
Часть 4. Наследование 231
Глава 20. Наследование классов 233
Глава 21. Знакомство с виртуальными функциями-членами: настоящие ли они 240
Глава 22. Разложение классов 249
Часть 5. Полезные особенности 269
Глава 23. Оператор присвоения 271
Глава 24. Использование потоков ввода-вывода 277
Глава 25. Обработка ошибок и исключения 290
Глава 26. Множественное наследование 298
Глава 27. Шаблоны C++ 308
Глава 28. Стандартная библиотека шаблонов 317
Часть 6. Великолепная десятка 329
Глава 29. Десятъ способов избежать ошибок 331
Глава 30. Десятъ основных возможностей Dev-C++ 336
Глава 31. Программа BUDGET 343
Приложение. Содержимое прилагаемого компакт-диска 379
Пиктограммы
Предметный указатель 380.


Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу C++ для чайников, Стефан Рэнди Дэвис - fileskachat.com, быстрое и бесплатное скачивание.

Язык программирования Си++ (произносится как "си плюс плюс") - мультипарадигмовый язык программирования, поддерживает объектно-ориентированное программирование. Бьерн Страуструп из Bell Labs разработывал язык программирования C++ в течение 1980-х годов, используя в качестве основы язык программирования C . В значительной степени благодаря огромной популярности C, язык программирования Си++ стал самым популярным языком на протяжении 1990-х годов. Программирование для начинающих. И до сих пор он очень широко используется в коммерческих приложения и по сей день. Язык программирования C++ заменил собой C в сфере коммерческих приложений, потому что он позволяет программистам разрабатывать системы с постоянно возрастающей сложностью, при этом не отказываясь от своих C корней (например, библиотек которые написаны на обычном Си). Наряду с объектно-ориентированным проектированием, сегодняшний Си++ отличается от C своей поддержкой обобщенного программирования и шаблонное метапрограммирование. Это реализовано через псевдонимы типов, в встроенными расширениями, шаблонами и комментариями в стиле // комментарий (хотя заметим, что в C впоследствии был принят //-комментарий). Программирование для чайников.

История C++
Страуструп начал работать над языком в 1979 , вдохновленный Simula67, как основой программирования. Компания AT & T впервые использовала язык в августе 1983 . Оригинальный компилятор назывался Cfront . Первый коммерческий релиз произошел в октябре 1985 . Стандартизирован C++ организацией ISO / IEC 14882-1998 в 1998 .

История названия "C++"
Это название принадлежит Рику Маскитти Rick Mascitti (середина 1983 года) и впервые было использовано в декабре 1983 года. Ранее, во время исследования и периода развития языка было принято называть "Си с классами". Окончательное название происходит от Си и "++" оператора (который увеличивает значение переменной на единицу) и общего именования через "+", чтобы указать на расширенные возможности программы компьютера, например: "Wikipedia +". (Проще говоря, знак плюса означает усовершенствование программы и придание ей нового функционала) По Страуструпу: "это имя означает эволюционный характер изменения из Си ". Хотя большинство C кода действительно для C++, но C не образует подмножество C++.
Некоторые программисты C отметили, что если объявить x=3; и y=x++; то при выполнении x= 4 , а y = 3; так как x увеличивается после того, как его значение присваивается y. Однако, если написать y=++x; , то y=4 и x=4 .
После таких рассуждений, более подходящее название для C++ может быть фактически ++С. Однако, C++ и ++C это увеличение C , поэтому форма C++ является более распространенной, чем ++C.
Педанты могут отметить, что после введения C++, язык C сам себя не изменил и наиболее точное название может быть "C +1".

Право собственности на C++
Никто не владеет C++. Страуструп и AT & T не получают гонорары за использование C++.

Программа "Привет Википедии!"
Код ниже может быть скомпилирован в программу, которая выводит текст сообщения.

Include // The header is needed for std::cout // Beginning of main() function int main(int argc, const char**argv) { // { ... } is used to include blocks of code std::cout << "Hello, Wikipedia!\n"; // Outputs the text enclosed by "" return 0; }

Определение класса

Include using std::string; class InetMessage { string m_subject, m_to, m_from; public: InetMessage (const string& subject, const string& to, const string& from); string subject () const; string to () const; string from () const; };

C++ библиотеки
Стандартные библиотеки C++ в большинстве своем являются надмножеством стандартных библиотек C. Большая часть библиотеки С++ включает стандартную библиотеку шаблонов (STL). STL предоставляет такие полезные инструменты, как итераторы (которые напоминают высокого уровня указатели) и контейнеры (которые напоминают массивы, которые могут автоматически расти за счет включения новых элементов). Как и в C, особенностью доступа к библиотеке происходит с помощью #include директивы для подключения стандартных заголовочных файлов. C++ предоставляет пятьдесят не устаревших стандартных заголовков.

Будущее языка
Язык программирования C++ продолжает развиваться, чтобы удовлетворить растущие требования. До сих пор разработчики компиляторов и сред разработок по-прежнему продолжают борьбу за поддержку всех C++ особенностей (ок. 2004), ситуация значительно улучшилась в период с 1998 по 2003 год. В частности, одна группа разработчиков Boost.org , которая многое усилий приложила для того, чтобы язык программирования Си++ стал таким, каким мы знаем его сегодня и консультируют комитет по стандартизации по функциям, которые работают, а какие нуждаются в улучшении. Текущая работа показывает, что C++ будет опираться на его характер мультипарадигмы больше и больше. Работы размещенные на Boost.org, например, значительно расширяют C++ функциональную и мета возможности программирования. C++ до сих пор нет стандарта по именованию переменных и функций, делая несовместимым код, производимый различными компиляторами.

Похожие статьи