Переход с Delphi (Pascal)

Думаю, довольно большая часть посетителей этого сайта начали изучение программирования именно с языка Delphi. Он довольно распространён, его рекомендуют для изучения, аргументируя высокой понятностью кода, его преподают в школах. В некотором смысле он лучше для новичков, но есть и свои минусы. Мы об этом говорить не будем. Теперь быстренько пройдемся по синтаксису, сравнивая его в языках Delphi и C++. Для большего понимания кода мы перепишем программу определения суммы всех положительных элементов в массиве с Delphi на C++.

Сначала напишем код на Delphi

Обратите внимание, что мы не рассматриваем функции, процедуры, перечисления и много других стандартных фич, так как цель этой статьи — поверхностно ознакомить вас, как программистов на Delphi, с языком программирования C++.

Начнем с самого главного. Операторные скобки в C++ обозначаются открывающейся и закрывающейся фигурной скобкой — { и }. Давайте же заменим их! Так же можно убрать символы точки и точки с запятой, так как пока что они не играют никакой роли.

Теперь будем переводить программу сверху вниз. Первая конструкция, которая будет переведена — program sumOfArr. В C++ нет подобной команды, поэтому эту строчку можно записать как комментарий: // Программа, считающая сумму всех положительных чисел в массиве

Далее идет блок var. Тут то и начинается самое интересное. В C++ не имеет значения где именно объявлять переменную, главное, что бы на момент ее использования она уже была определена. Так что блока var как такового не существует, хотя и можно сделать что-то на его подобие (но зачем?). Объявим переменную sum уже в начале программы, после первой фигурной скобки (хотя ее можно объявить и вне ее, но это будет рассмотрено в основном курсе). Тип integer мы так же заменим на более рациональное название: int. Зачем писать больше? 🙂 Если в Delphi было написано sum:integer, то в C++ имя переменной и ее тип меняются местами int sum. Помните, как нам пришлось ее обнулять уже в программе? Так вот, ее можно обнулить и во время объявления. Это делается обычным знаком присваивания =. К стати, знак := заменяется на = и я считаю, что это намного логичнее. Вернемся к переменной sum. Обнуление во время определения пишется таким образом: int sum = 0. Массив же объявляется намного короче, чем в Delphi: int arr[10]. Вы подумаете: “где же начало нумерации?”. В C++ все массивы нумеруются с нуля. Конечно, можно сделать что-то на подобие массивов в Delphi. Но это будем рассматривать в главном курсе. В квадратные кавычки мы поставили именно цифру 10, так как это число показывает на количество элементов в массиве, а не на номер последнего. Теперь посмотрим на немного измененную программу:

Так же интересным является строение команды for. В C++ цикл for является более мощным инструментов, чем в Delphi. Цикл for имеет аж три блока: блок инициализации, условия и блок изменения переменной. В первом блоке мы придаем начальные значения переменным и, если надо, объявляем их как новые. Во втором блоке располагается условие выхода из цикла. В третьем блоке изменяется значение переменной цикла. А выглядит все это так: for (int i = 0; i < 10; i++). Оператор ++ - это тот же самый inc(i). Оператор ветвления if полностью схож с оператором if в Delphi, но с одним отличием: условие обязательно должно браться в круглые скобки: if (arr[i] > 0) … else … Обратите внимание, что слова do и then не употребляются, или имеют совсем другое предназначение. Снова взглянем на получившийся код:

Отлично! Осталось только выяснить пару вещей: как же все-таки работает ввод/вывод в C++ и что еще необходимо для работы этой программы. А способов вводы и вывода существует несколько, поэтому рассмотрим самый простой из них: функции cin и cout. Хоть они и являются функциями, но принимают параметры очень странно. Это происходит при помощи операторов >> и <<. Главное запомнить, что в функциях ввода/вывода вместо оператора “запятая” используются сочетания символов >> и <<, так как при использовании запятой будет считана/выведена лишь первая переменная. Так же в функции cout можно вывести конец строки при помоши оператора endl. Получим такой код:

Все почти готово, осталось лишь подключить библиотеку iostream и включить использование пространство имен std. Не бойтесь, если немного не понимаете о чем идется в этом предложении, в основном уроке все подробно и понятно описано. Добавим нужные строки перед первой фигурной скобкой: #include и using namespace std.

А весь главный код закинем в тело функции main. Именно эта функция и есть основа каждой программы на C++. В итоге получи м нашу первую рабочую программу на C++. Круто? Естественно круто!