Программирование на языке С++ Введение |
|||||||||
|
Историческая справка С -- это язык программирования, созданный в 70-х годах XX века для разработки системы UNIX и программного обеспечения для нее. В 80-х годах XX века на основе языка C был создан язык C++, являющийся объектно-ориентированным расширением языка C++. В настоящее время языки C и C++ являются наиболее распространенными языками для профессиональной разработки программного обеспечения для всех операционных систем. Синтаксис языка C и C++ не зависит от используемой системы и компилятора, однако набор доступных библиотек (например, для разработки графических приложений) является системно-зависимым и не стандартизирован. В данных листках речь будет идти о языке C++. Многое из того, о чем пойдет ниже речь, верно и для языка C, но мы на этом останавливаться не будем. Мы будем использовать компилятор gcc для системы Linux, но все рассматриваемые примеры должны правильно компилироваться любым компилятором, соответствующим стандарту языка C++. Например, таким компилятором является MS Visual C++ последних версий (в то время, как широко распространенный в образовательных учреждениях компилятор Borland C++ 3.1 не соответствует стандарту и для него рассматриваемые программы работать не будут). Hello, world Язык C++ является компилируемым языком. Для того, чтобы написать программу, вам необходимо в любом текстовом редакторе набрать, например, следующий текст и сохранить его в файле, например, hello.cpp. #include <iostream> using namespace std; int main() { cout<<"Hello, world!"<<endl; return 0; } Будьте внимательны: язык C++ является чувствительным к регистру букв, то есть заменить main на Main или MAIN нельзя. Весь текст (за исключением текстовой строки "Hello, world!") нужно набирать в нижнем регистре. После этого вам нужно откомпилировать этот файл при помощи следующей команды: $ c++ hello.cpp Если ваша программа написана правильно, то компилятор не выдаст никаких сообщений об ошибках и создаст файл a.out. Этот файл содержит исполняемый двоичный машинный код. Вы можете запустить эту программу при помощи следующей команды: $ ./a.out Если вам не нравится a.out в качестве имени исполняемого файла, вы можете указать компилятору другое имя, при помощи параметра -o компилятора. Например, если вы хотите, чтобы исполняемый файл назывался hello, можно использовать следующие команды для компиляции и запуска программы: $ c++ hello.cpp -o hello $ ./hello Рассмотрим подробней текст этой программы. В первой строчке мы подключаем к нашей программе файл с именем iostream. Этот файл хранится в каталоге, имеющим имя вроде /usr/include/c++/3.2.1/. В этом файле находится, в частности, определение объектов cout и endl, который мы будем использовать позднее. Вторая строка указывает компилятору на то, что мы будем использовать все функции, входящие в пространство имен std, то есть все функции, относящиеся к стандартной библиотеке C++. Третья строка содержит объявление функции main, не принимающей никаких аргументов и возвращающей значение int. Эта функция должна быть в каждой программе, именно эта функция получает управление при запуске программы. Четвертая строка содержит открывающуюся фигурную скобку, что означает начало функции main. В пятой строке мы при помощи оператора << помещаем в объект cout строку "Hello, world!", а потом специальный объект endl, означающий символ перевода строки. Это приводит к печати на экране этой строки и последующему переводу каретки. В шестой строке мы даем инструкцию return, завершающую выполнение функции main и возвращающую нулевое значение. Седьмая строка содержит фигурную скобку, синтаксически закрывающую функцию main. Для начала можно считать, что все строки, кроме пятой, являются некоторым набором "заклинаний", без которых программа не будет работать и которые обязательно нужно указать, а вот пятую строку можно заменить на другие строки с различными инструкциями. Переменные Все переменные в языке C++ должны быть объявлены перед использованием. При использовании в программе ранее не объявленной переменной компилятор выдаст сообщение об ошибке вроде test.cpp: In function `int main()': test.cpp:5: `c' undeclared (first use this function) test.cpp:5: (Each undeclared identifier is reported only once for each function it appears in.) В этом сообщении указывается имя файла и номер строки, в которой обнаружена ошибка (test.cpp:5), а также описание ошибки (`c' undeclared -- объект с именем c не объявлен). Объявление переменной имеет следующий вид: <тип переменой> <один или несколько идентификаторов переменных через запятую>; Например, переменные n и m типа int можно объявить такой строкой: int n, m; Переменную x типа double можно объявить такой строкой: double x; Значения переменных сразу после объявления не определены и являются произвольными. Предположение о том, что все переменные первоначально имеют нулевые значения, является ошибочным. Идентификатор переменной -- это ее имя, которое должно быть последовательностью букв латинского алфавита, символа подчеркивания и цифр, начинающейся с буквы. Примеры правильных идентификаторов: а, i, Year, school179. Имена переменных чувствительны к регистру букв, то есть Number, number, NUMBER и nUMbeR -- это четыре разных переменных. Типы данных При объявлении переменной мы должны указать ее тип. Существует несколько стандартных типов, кроме того, программист может создавать собственные типы данных. Для представления целых чисел существуют следующие стандартные типы: В языках С, C++ есть следующие стандартные типы данных для представления целых чисел. Тип Описание Размер Диапазон Синоним int Целые числа 4 байта -231..231-1 unsigned int Беззнаковые целые 4 байта 0..232-1 unsigned long int Длинные целые 4 байта -231..231-1 long unsigned long Беззнаковые длинные 4 байта 0..232-1 short int Короткие целые 2 байта -215..215-1 short unsigned short Беззнаковые короткие 2 байта 0..216-1 При этом в стандарте языка C++ не оговаривается конкретный размер каждого из вышеперечисленных типов, для каждого компилятора они могут быть своими. Приведенные выше числа верны для компиляторов GCC, MS VC++, а вот для Borland C++ версии 3.1 размер переменной типа int -- 2 байта. Действительные числа можно записывать в виде десятичных дробей как с фиксированной точкой (например, 3.1415926, 100.001, -10000000.0), так и с плавающей точкой. В последнем случае число имеет вид , где -- целое число (положительное или отрицательное), называемое порядком. Число, записанное таким образом, равно f?10p . Фактически, порядок означает, на какое число позиций нужно сдвинуть вправо десятичную точку в записи числа |