Урок по С++ №1
| |
Saitei | Дата: Вторник, 26 Июня 2012, 23:01 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Подготовка к работе с С++ и первый "Hello World"
Раз уж вы читаете эту тему, то вы, видимо, хотите научиться программировать на языке программирования С++. Хорошо, я покажу вам довольно много интересных вещей и завитушек в работе с С++. Для начала поймите что вам нужно на выходе, какова ваша конечная цель? База С++ - это консоль, простое черное окошко с символами и не более того. А вот потом, когда вы впитаете в себя все прелести синтаксиса этого языка, то можно пытаться учить WinAPI\DirectX\OpenGL на выбор. Но сейчас не об этом, верно? Я обязан в первом своём уроке подготовить вас к самому написанию кода и помочь вам написать первый "Hello World", который затем будет локализован на русский и вы перепишите, коль душенька на это ляжет, - "Здарова всем!".
Как я и говорил - перед работой с кодом нужно приготовить свой компьютер к самому его написанию. Для этого вам нужно скачать любой компилятор для С++. Это может быть либо Dev-C++, либо Turbo C++. Вариантов масса, но я использую Microsoft Visual C++ 2010 Express. Из его преимуществ подчеркиваю полную его бесплатность. Можете качать прямо из microsoftа и со спокойной душой юзать его.
Отлично! Предположу, что вы уже скачали Microsoft Visual C++ 2010 Express и готовы к работе. Первым делом что вы должны сделать - это запустить свою среду разработки, после чего нажать File->New->Project. Проделав такую несложную инструкцию должно было высветится вот такое окошко: В этом окне ставим тип проекта "Win32 Console Application", вводим название проекта и "рабочую" папку, куда и будет компилироваться код. После этого появится новое окно, но вы его НЕ ДОЛЖНЫ закрывать. Нажмите "Next" (можно и сразу же нажать "Application Settings"), проверьте, что "Application type" проставлен как "Console Application", а так же поставьте галочку на "Empty project" (то есть "Пустой проект").
От всего сердца поздравляю вас! Мы готовы к работе! Правой кнопкой мыши нажмите на "Source Files" и выберите "Add->New Item". В этом окошке вам предстоит указать тип добавляемого файла. Это должен быть файл типа ".cpp" (c plus plus) с названием main. Параметр "Location" рекомендую не трогать.
После таких нехитрых манипуляций с диалоговыми окнами появился чистый лист. Здесь нам предстоит написать свою первую программу:
Ну вот. Мы готовы к работе! Ну что? Готовы написать свой первый "Hello World"?! Отлично, так и надо! Погнали :) В первом своем уроке я не стану нагружать вас, учить всем типам переменных и т.п. Сегодня - первая программа. Хеллоу Ворлд. Только хардкор.
Напишите в строке, где должен размещаться код, "#include <iostream>". Здесь я остановлюсь и расскажу по-подробней. С помощью "#include" мы подключаем заголовочные файлы, которые добавляют новые возможности и, скажем, свои фичи к С++. Дурной пример, конечно, но в какой-то мере верный. Ну а "iostream" - это заголовочный файл, содержащий в себе объявления функций и переменных для потокового ввода/вывода информации. Имя подключаемого модуля указывается в косых скобках (<> - заголовочный файл находится в каталоге \INCLUDE\) либо в кавычках (" " - файл находится в текущем каталоге). О iostream по-подробней можно прочесть вот здесь.
Далее, отступив место от "#include", пишем: Code int main() {
return 0; } В итоге код у нас выглядит следующим образом: Code #include <iostream>
int main() {
return 0; }
main() - это единственная в примере функция. Хочу отметить, что любая программа на С++ обязательно включает в себя функцию main(), с которой и начинается всё выполнение программы. Ну а return 0 возвращает 0. Всё понятно? Замечательно!
Теперь в тело функции main() (под телом я предполагаю вот такие скобочки: {}) пишем std::cout<<"Hello World"<<'\n'; Код получился вот такой:
Code #include <iostream>
int main() { std::cout<<"Hello World"<<'\n' return 0; } Ну вот. Хеллоу ворлд готов! Перед объяснением этого кода мной вы можете посмотреть на результат своих трудов. :) Для этого используйте комбинацию клавиш Ctrl+Shift+B для компиляции кода в машинный код, а затем Ctrl+F5, чтобы увидеть результат. Ну как? Ну воооооооот. Получилось же :) Молодцы
std::cout выводит значения на экран. В нашем случае - это Hello World в кавычках. Ну а " '\n' " - это отступ строки. Всё понятно? Ну вот и отлично)) Чтобы каждый раз нам не писать "std::" сделаем вот такую махинацию с кодом: Code #include <iostream> using namespace std; int main() { cout<<"Hello World"<<'\n'; return 0; } Фича никак не отразится на вашей работе. Лишь уберет лишний гемор с std::.
Ох... Чуть не забыл... Давайте напишем что-нибудь на русском в консоли? Вот так это делается (с помощью setlocale( LC_ALL, "Russian" ); ): Code #include <iostream> using namespace std;
int main() { setlocale( LC_ALL, "Russian" ); cout<<"Привет, мир!"<<'\n'; cout<<"Привет. Что хотел? :D"<<'\n'; return 0; }
Ну что же? Первый урок подошел к концу. Надеюсь, что я вас заинтересовал и у меня будет стимул продолжать серию уроков ;) Урок №2
Сообщение отредактировал Saitei - Среда, 27 Июня 2012, 12:41 |
|
| |
qumpo | Дата: Вторник, 26 Июня 2012, 23:15 | Сообщение # 2 |
уже был
Сейчас нет на сайте
| Наверное нужно иметь большой талант для того чтобы освоить язык программирования так быстро, неправда ли? Автор урок конечно хорошо оформлен, но растянут и не несет смысловой нагрузки. Создается впечатление что после прочтения первой главы книги автор топика решил блеснуть знаниями полученными за 40 минут чтения. Браво товарищи, браво!
|
|
| |
Saitei | Дата: Вторник, 26 Июня 2012, 23:16 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| qumpo, нет, вы заблуждаетесь
|
|
| |
zodiak | Дата: Вторник, 26 Июня 2012, 23:20 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Ну, читабельно, но слабо, у nilremа много лучше. Да и зачем писать чето еще раз, взял бы, да и принял у него эстафету. Там, по его планам, и осталась то одна лекция, а потом "второй сезон" по ООП. Я пробовал, но не потянул. Моя писанина была забракована. Оказывается знать чето мало, нужно уметь это доходчиво объяснить.
Точка зору окремо взятого індивіда завжди суб'єктивна!
Взломщик Battle City.Net
|
|
| |
Saitei | Дата: Вторник, 26 Июня 2012, 23:25 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| Quote (zodiak) Ну, читабельно, но слабо, у nilremа много лучше. Да и зачем писать чето еще раз, взял бы, да и принял у него эстафету. Там, по его планам, и осталась то одна лекция, а потом "второй сезон" по ООП. Я пробовал, но не потянул. Моя писанина была забракована. Оказывается знать чето мало, нужно уметь это доходчиво объяснить. Да, с объяснениями могут быть у меня проблемы. Но я всё же постараюсь продолжить серию уроков, просто более доходчиво и интереснее объясняя. А главное - буду стараться вкладывать больше смысла и объяснений. Нет, я хотел бы продолжить. Если же окружающим мои уроки и не помогут, то всё равно я же писал урок. А значит и сам же тестировал, вспоминал. Доставал прочтенные книги, искал. Полезно, вроде.
Сообщение отредактировал Saitei - Вторник, 26 Июня 2012, 23:25 |
|
| |
faib | Дата: Вторник, 26 Июня 2012, 23:25 | Сообщение # 6 |
был не раз
Сейчас нет на сайте
| Не понятно зачем это уроки и тд? Мда книг недостаточно где всё расписанно от и до по С++ есть книги даже для школьников с 14 лет
|
|
| |
Saitei | Дата: Вторник, 26 Июня 2012, 23:26 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Quote (faib) Не понятно зачем это уроки и тд? Мда книг недостаточно где всё расписанно от и до по С++ есть книги даже для школьников с 14 лет Непонятно? Вот, цитирую: Quote (Saitei) Да, с объяснениями могут быть у меня проблемы. Но я всё же постараюсь продолжить серию уроков, просто более доходчиво и интереснее объясняя. А главное - буду стараться вкладывать больше смысла и объяснений. Нет, я хотел бы продолжить. Если же окружающим мои уроки и не помогут, то всё равно я же писал урок. А значит и сам же тестировал, вспоминал. Доставал прочтенные книги, искал. Полезно, вроде.
|
|
| |
burlachenko | Дата: Среда, 27 Июня 2012, 00:01 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Спасибо Saitei, нормальный урок, меня все устраивает, продолжайте дальше.
MaximTG
|
|
| |
goldsphere | Дата: Среда, 27 Июня 2012, 10:42 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| +за старание.А вообще зачем кого-то учить, если сам учишься?По собственному опыту говорю.. Добавлено (27.06.2012, 10:42) --------------------------------------------- Ах да, ещё совет:лучше уроки в виде статей выпускать, так они тонуть не будут, потому что врядли их закрепят.
FinderX - Android Аркада
|
|
| |
allxumuk | Дата: Среда, 27 Июня 2012, 11:06 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Quote (goldsphere) А вообще зачем кого-то учить, если сам учишься? Чтобы повторить материал. К тому же, многие вещи становятся понятнее для тебя самого, когда пытаешься объяснить их кому-то другому.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
Saitei | Дата: Среда, 27 Июня 2012, 11:32 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Quote Чтобы повторить материал. К тому же, многие вещи становятся понятнее для тебя самого, когда пытаешься объяснить их кому-то другому Да, в принципе ради этого все и пишется goldsphere, если не надоест писать и их будет много - перенесу в статьи
|
|
| |
|