Урок #1

Первая программа, простейшие математические операции (+, -, *), переменные

Начав изучать C++, вы выбрали долгий, тяжёлый и интересный путь. Конечно, если вы уже изучали какие-то другие языки программирования, C++ не покажется таким сложным. Что же, приступим к первому уроку.

Структура программы

Люди в первых классах учатся самому элементарному: складывать, вычитать, умножать и делить числа. В школе мы пользовались листом бумаги и ручкой для того, что бы выполнять математические действия в столбик. Но затем мы просто выписывали ответ в строчку. Например, сложив числа 1234 и 4321 в столбик мы получим 5555, а ответ выглядит так: 1234 + 4321 = 5555.

Давайте представим, что мы ленивые, если только таковыми не являемся 🙂 Тогда нам нужен некий раб, который будет за нас выполнять все в столбик. Но из людей рабов сделать нельзя, поэтому это будет компьютер. Но просто сказав ему «Чувак, сложи эти два числа», мы ничего не получим. Для этого надо дать ему подходящую команду на понятном ему языке. Теперь в дело вступает C++, с помощью которого мы будем управлять компьютером.

Давайте рассмотрим простую программу, которая выводит сумму чисел 1234 и 4321.

(Если вы ещё не установили visual studio, Code::Blocks или любой другой компилятор и не научились создавать, компилировать и запускать проекты, то перейдите на эту статью)

Круто, правда? Выглядит непонятно. Только знак + является знакомым. Но это нормально. Если вы не изучали китайский язык, то вы смотрели бы на него точно так же 🙂 Теперь надо разобрать этот код, что бы понять, что и как работает. Оператор #include отвечает за подключение библиотек в проекты. Как правило, в библиотеках содержатся функции, огромные функции, которые порой даже на C++ не написаны. Библиотека iostream отвечает за ввод и вывод любых данных в консоли. Без этой библиотеки std::cout не работал бы или нам пришлось использовать такие функции как scanf и printf. Но я не буду Вам на данном уроке забивать мозги этой фигней. Сама запись std::cout означает «Функция cout находится в пространстве имён std». Зачем нужно это загадочное пространство имён? Бывает, что имена идентификаторов в разных библиотеках могут совпадать, но их функции совсем разные. Поэтому мы будем использовать функцию cout именно из пространства имён std. После этой несложной конструкции идут символы <<. Они неотделимы от функции cout. Но почему эти символы повернуты именно в ту сторону? Если говорить честно, то тут логики почти нет. Так создали язык. А вот дальше следует привычное математическое выражение 1234 + 4321. Компьютер его вычислит и выводит его на экран. Тут снова встречаются наши кавычки. «Зачем они ещё раз? Мы же уже их прописывали» - подумаете вы. Функция cout устроена так, что перед любым выражением, или обычным текстом обязательно ставятся эти кавычки. Их следует писать вместе, без пробела, т. к. они фактически как один символ. std::endl означает конец строки (end line) и этот идентификатор просто ставит символ окончания строки. Этот символ можно заменить и другими способами, но об этом поговорим на следующих уроках. Символы { и } являются операторными скобками.

Фух! Мы разобрались с этой программой на 5 строчек. Это только по началу приходится так много описывать, потому что все языки программирования нетерпеливы к ошибкам и требуют строго синтаксиса написания программы.

Если теперь мы запустим проект, то увидим, что нам вывелось на экран число 5555.

5555 Для продолжения нажмите любую клавишу...

Вот и написана наша первая программа! Но операционная система не понимает, что программа сработала правильно. Хотя, если не возникло ошибок во время выполнения проекта, то ОС считает, что все нормально. Давайте же скажем нашей операционке, что все работет отлично. Для этого напишем маленькую конструкцию return 0; которая говорит системе, что код ошибки 0, иными словами ошибки нет.

Но теперь окно консоли очень быстро закрылось. Если без return 0; у Вас программа сама ставилась на паузу, то с этим оператором программа сразу закроется. Но почему все именно так? Сама конструкция return 0; возвращает код ошибки ноль и закрывает программу. Поэтому встроенная пауза работать не будет. Паузу можно поставить с помощью этой понятной команды system("pause");

Попробуйте сами сложить +, вычесть - и умножить * два числа.

Деление мы сейчас не рассматриваем, потому что в его реализации много мелочей, которые мы, к сожалению, ещё не можем понять.

Переменные

Я надеюсь, что вы не выполняли всю младшую школу только одно действие – сложение чисел 1234 и 4321, а ещё и другие примеры. Например: 2 * 3, 100 – 99, 78 + 57. Но мы не будем сидеть и писать программы для каждого из этих случаев. Давайте же будем говорить сами компьютеру какие именно два числа будем складывать (на домашнее задание Вам останется вычитание и умножение). Все числа, которые мы складывали в младших классах, мы записывали на бумаге. Именно бумага была местом хранения значения переменной. А переменная – это какое-то название того, что меняется. Это как x в квадратном уравнении. Но как же сказать компьютеру, что x это переменная? Компьютер должен знать не только имя новой переменной, но и её тип. «Зачем знать тип? Это и так понятно» - спросите вы. Но компьютер привередлив и не хочет угадывать что за тип у переменной x, он желает знать сразу. Самый обычный тип – знаковый целочисленный тип int (integer – целое число). У каждого типа есть диапазон – значения, которые может принимать переменная этого типа. Тип int принимает значения от -2 147 483 648 до 2 147 483 647. Это уже много, не правда ли? Давайте напишем программу, которая будет складывать любые два целые числа.

Тут мы создали две переменные first и second типа int. Мы могли записать это как int first, second; что бы сэкономить нам время. Далее идёт функция cin в пространстве имён std. Её синтаксис очень похож на синтаксис cout, но имеет главную особенность: кавычки расположены в другую сторону. Функция cin читает переменные, которые вы в ней приписали, пока не нажмете enter.

Возможные вопросы по теме

«Что делать, если я пытаюсь с направлением кавычек в программе?» - Представьте, что cout – это самолёт, а все сообщение, которое находится справа от него – реклама, которая крепится к самолету. А сами кавычки << представляют из себя нить. Одним концом она крепится к самолету, а двумя другими к рекламе. Думаю, было бы невозможно прочитать рекламу, если нить была бы закреплена наоборот :)

«Что делать, если типа данных не хватает?» - изучить второй урок. После этого вы будете властелином типов!!!

«Чувак, почему ты не рассматриваешь деление? Что оно тебе такого плохого сделало?» - Мы ещё не изучили дробные типы данных и не умеем их красиво выводить. Скоро мы этому научимся.


Урок #0 Урок #2