4386

Введение в синтаксис языка С++

Реферат

Информатика, кибернетика и программирование

Введение в синтаксис языка С++ Использование ключевого слова using Если операторы cout и cin применяются очень часто, то использование идентификатора std:: перед ними становится обременительным. Эту проблему можно решить двумя способами. Первы...

Русский

2012-11-18

66.5 KB

4 чел.

Введение в синтаксис языка С++

  1.  Использование ключевого слова using

Если операторы cout и cin применяются очень часто, то использование идентификатора std:: перед ними становится обременительным. Эту проблему можно решить двумя способами. Первый заключается в том, что в начале текста кода можно сообщить компилятору об использовании объектов cout и cin (или любых других) только из стандартной библиотеки, как показано в листинге 2.1.

Листинг 2.1. Использование ключевого слова using

1: #include <iostream>

2: int main()

3: {

4: using std::cout; // Вместо этих двух строк можно записать

5: using std::endl; /* одну: using namespace std;*/

6:

7: cout << “Hello there.\n”;

8: cout << “Here is 5: ” << 5 << “\n”;

9: cout << “The manipulator endl “;

10: cout << “writes a new line to the screen.”;

11: cout << endl;

12: cout << “Here is a very big number: \t” << 70000;

13: cout << endl;

14: cout << “Here is the sum of 8 and 5: \t”;

15: cout << 8+5 <<endl;

16: cout << “Here is a fraction: \t”;

17: cout << (float) 5/8 << endl;

18: cout << “And a very very big number: \t”;

19: cout << (double) 7000*7000 << endl;

20: return 0;

21: }

РЕЗУЛЬТАТ

Hello there.

Here is 5: 5

The manipulator endl writes a new line to the screen.

Here is a very big number:        70000;

Here is the sum of 8 and 5:  13

Here is a fraction:    0.625

And a very very big number:  4.9е+07

 Помимо стандартного объекта cout в данной программе используется стандартный оператор endl, который выводит на экран символ новой строки. В строке 12 (и в некоторых других) используется еще один символ форматирования –  \t, который вставляет символ табуляции, используемый для выравнивания выводимой информации. Идентификатор float указывает объекту cout, что результат должен выводиться как вещественное (с плавающей точкой) число. Идентификатор double устанавливает вывод результата в экспоненциальном представлении.

Второй способ избежать необходимости писать каждый раз std:: перед стандартными операторами заключается в том, что вместо строки using std:: cout; используется определение пространства имен using namespace std.

Преимуществом формы записи using namespace std; является отсутствие необходимости указывать каждый используемый объект явно. Недостатком является риск непреднамеренного использования объектов из несоответствующей библиотеки. Ортодоксы предпочитают писать std:: перед каждым экземпляром cout и endl. Лентяи предпочитают использовать пространство имен (using namespace std;) и рисковать.

  1.  Комментарии

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

В языке С++ используются два типа комментариев: с двойной наклонной чертой (//) и с сочетанием наклонной черты и звездочки (/*). Комментарий с двойной наклонной чертой (его называют комментарием в стиле С++) велит компилятору игнорировать все, что следует за этими символами, вплоть до конца текущей строки. Комментарий с двойной наклонной чертой и звездочкой (его называют комментарием в стиле С) велит компилятору игнорировать все, что следует за символами (/*), до того момента, пока не встретится символ завершения комментария: звездочки и наклонной черты (*/). Каждой открывающей паре символов /* должна соответствовать закрывающая пара символов */.

Большинство программистов используют в основном комментарий в стиле С++ (//), а комментарий в стиле С (/* */) применяют для временного отключения больших участков программы.

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

  1.  Функции

В языке С++ все подпрограммы и сама главная программа называются функциями. Хотя main() и является функцией, но она нетипична. Функцию необходимо вызывать (или обращаться к ней) программно, в ходе выполнения кода. Функцию main() вызывает операционная система, и обратиться к ней из кода программы невозможно.

Программа выполняется по строкам в порядке их расположения в исходном коде до тех пор, пока не встретит вызов какой-нибудь функции. После выполнения функции управление возвращается той строке программы, которая следует за вызовом функции.

Функции возвращают либо некоторое реальное значение, либо значение типа void, т.е. не возвращают ничего. Функцию, которая складывает два целых числа и возвращает значение суммы, следует определить как возвращающую целочисленное значение. Функции, которая только выводит сообщение, возвращать нечего, возвращать нечего, поэтому для нее задается возвращаемый тип void.

Функции состоят из заголовка и тела. Заголовок содержит объявление типа возвращаемого значения, имени и параметров функции. Параметры позволяют передавать в функцию данные. Следовательно, если функция предназначена для сложения двух чисел, то их необходимо передать в функцию как параметры. Вот как будет выглядеть заголовок возвращающей целочисленное значение функции Sum(), которой передаются два целых числа (first и second):

Int Sum(int first, int second)

Параметр – это объявление типа данных, передаваемых функции. Реальное значение, передаваемое при вызове функции, называется аргументом. Некоторые программисты рассматривают эти понятия как синонимы. Другие считают смешение терминов признаком непрофессионализма.

Тело функции состоит из открывающейся фигурной скобки, любого количества операторов и закрывающейся фигурной скобки. Функция может возвращать значение в программу при помощи оператора return. Этот оператор также означает выход из функции. Если не поместить в функцию оператор return, то по завершении функция автоматически возвратит значение типа void. Значение, возвращаемое функцией, должно иметь тип, объявленный в заголовке функции. Если функция, как и положено, возвращает значение, но оператора return не содержит, то некоторые компиляторы передают предупреждение или сообщение об ошибке.

В листинге 2.2 приведена функция, которая получает два целочисленных параметра и возвращает целочисленное значение.

Листинг 2.2. Пример простой функции

#include <iostream>

 int Add (int first, int second)

{

 return (first+second);

}

void main() {

 using std::cout;

 using std::cin;

 int a, b, c;

cout << “Enter two numbers: “;

 cin >> a;

 cin >> b;

 c=Add(a, b);

cout << “c=“ << c;

char response;

cin >> response;

}

РЕЗУЛЬТАТ

Enter two numbers: 3 5

C=8

  1.  Переменные

В последней программе мы использовали переменные a, b, c. В языке С++, как и в других языках, переменные используются для хранения информации. Переменная – это место в оперативной памяти компьютера, где можно размещать хранимое значение, а затем извлекать его (табл. 2.1).

Таблица 2.1.

Тип переменной

Размер

Значение

bool

1 байт

True или false

unsigned short int

2 байта

от 0 до 65 535

short int

2 байта

от -32 768 до 32 767

unsigned long int

4 байта

от 0 до 4 294 967 295

long int

4 байта

от -2 147 483 648 до 2 147 483 648

int (16 разрядов)

2 байта

от -32 768 до 32 767

int (32 разряда)

4 байта

от -2 147 483 648 до 2 147 483 648

unsigned int (16 разрядов)

2 байта

от 0 до 65 535

unsigned int (32 разряда)

4 байта

от 0 до 4 294 967 295

char

1 байт

256 значений символов

float

4 байта

от 1.2е-38 до 3.4е38

double

8 байтов

от 2.2е-308 до 1.8е308

Чтобы определить переменную, необходимо указать тип, за которым (после одного или нескольких пробелов) должно следовать ее имя, завершающееся точкой с запятой. Для имени переменной можно использовать практически любую комбинацию букв, но оно не должно содержать пробелов, например: x, J23qrsnf и myAge. Следует подбирать осмысленные имена, позволяющие судить о назначении переменных, поскольку это облегчает понимание работы программы в целом.

Соблюдая культуру программирования, избегайте таких ужасных имен, как J23qrsnf, и ограничьте применение односимвольных имен (таких как x или i) лишь общепринятыми переменными, которые используются особенно часто. Старайтесь использовать осмысленные имена, например myAge (мой возраст). Впоследствии такие имена избавят от мучительных попыток вспомнить, что именно имелось в виду во время написания этой строки кода.

Язык С++ чувствителен к регистру букв, прописные и строчные буквы считаются разными. Переменные с именами age, Age и AGE рассматриваются как три различные переменные. Некоторые компиляторы позволяют отключать чувствительность к регистру букв. Лучше этого не делать, поскольку такая программа не сможет работать с другими компиляторами, а остальные программисты не смогут разобраться в ней.

Некоторые слова изначально зарезервированы в языке С++, и поэтому их нельзя использовать в качестве имен переменных. Такие слова называются ключевыми и используются компилятором для управления программой. В их число входят if, while, for, main и т.д.

Вполне допустимо создавать несколько переменных с помощью одного оператора, указав их тип и перечень имен, разделенных запятыми. Например:

unsigned int myAge, myWeight; //две переменные типа unsigned int.

Начинающим программистам иногда трудно решить, когда объявлять переменную типа long, а когда – типа short. Правило довольно простое: если существует хоть малейший шанс, что значение будет слишком большим для предполагаемого типа, то используйте тип с большим размером.

Переменные типа bool – это логические переменные (переменные булевой алгебры), которые могут иметь только два значения True (истина) или false (ложь). Переменные типа char – это символьные переменные (буквы). Char – это сокращение слова character (буква, символ), читается как «кар».

  1.  Константы

Подобно переменным, константы (постоянные) предназначены для хранения данных. Но, в отличие от переменных, константы нельзя изменить. Создаваемую константу необходимо сразу же инициализировать, поскольку присвоить ей значение позже не удастся. В языке С++ предусмотрены два типа констант: литеральные и символьные.

Литеральная константа – это значение, непосредственно вводимое в самой программе. Например, в выражении int myAge = 39; слово myAge является переменной типа int, а число 39 – литеральной константой. Константе 39 никакое иное значение присвоить нельзя.

Символьная константа – это константа, представленная именем (точно так же, как представлена любая переменная). Но, в отличие от переменной, значение инициализированной константы изменить нельзя.

В языке С++ существуют два способа объявления символьной константы: с использованием ключевого слова const и ныне уже устаревший, заключающийся в использовании директивы препроцесора #define. Например:

#define myAge 39;

const int myAge = 39;

Как можно видеть, в первом случае тип константы не определен. Поскольку препроцессор запускается перед компилятором, последний никогда не увидит константу, а будет видеть только число 39.

  1.  Перечисляемые константы

Перечисляемые константы позволяют создавать новые типы данных, а затем определять переменные этих типов, значения которых ограничены набором значений константы. Например, можно объявить константу COLOR  как перечисляемую и определить для нее пять значений: RED, BLUE, GREEN, WHITE, BLACK.

Для создания перечисляемой константы используется ключевое слово enum, за которым следуют: название типа, открывающаяся фигурная скобка, список значений константы, разделенных запятыми, закрывающаяся фигурная скобка и точка с запятой. Например:

enum COLOR { RED, BLUE, GREEN, WHITE, BLACK };

 Это выражение выполняет две задачи:

создается перечисляемая константа нового типа с именем COLOR;

определяются символьные константы: RED со значением 0, BLUE со значением 1, GREEN со значением 2 и т.д.

Каждому элементу перечисляемой константы соответствует определенное целочисленное значение. По умолчанию первый элемент имеет значение 0, а каждый последующий – на единицу больше. Любому элементу константы можно присвоить произвольное значение; в этом случае остальные элементы (значения которых не задавались явно) инициализируются значением, на единицу больше предыдущего. Предположим, что константа объявлена так:

enum COLOR { RED=100, BLUE, GREEN=500, WHITE, BLACK=700 };

Здесь значение RED будет равно 100, значение BLUE=101, значение GREEN=500, значение WHITE=501, значение BLACK=700.

Теперь можно определять переменные типа COLOR, каждой из них следует присвоить только одно из перечисленных значений (в данном случае – RED, BLUE, GREEN, WHITE, BLACK или 100, 101, 500, 501, 700).

Важно понимать, что перечисляемые переменные на самом деле имеют тип unsigned int и соответствуют целочисленным беззнаковым переменным. Но иногда при работе с цветами, днями недели или другими подобными наборами значений неплохо иметь возможность называть значения по имени.

Листинг 2.3. Использование перечисляемых констант

#include <iostream.h>

 void main() {

 enum Days { Sunday, Monday, Tuesday, Wednsday,

Thursday, Friday, Saturday };

Days today;

today = Monday;

if (today == Sunday || today == Saturday)

cout << “\nWeekends!\n”;

else

cout << “\nBack to work.\n”;

 }

РЕЗУЛЬТАТ

Back to work.


 

А также другие работы, которые могут Вас заинтересовать

66338. Фестиваль європейських країн 112 KB
  Віддавна народи світу Мають власні прапори Наче долю горду й світлу Піднімають дороги 3й учень. Наш водій обирається учень якому дається кермо та головний убір водія рушаймо Пісню заспіваймо Учні і вчитель співають пісню Голубий вагон муз.
66339. Polymerase Chain Reaction (PCR) 40 KB
  Two primers, each about 20 bases long with sequence complementary to the sequence immediately adjacent to the DNA segment of interest.
66340. Функционирование русского языка в Республике Казахстан. Безударные гласные в корне слова (проверяемые, непроверяемые) 84.5 KB
  Языков на свете очень много – свыше двух тысяч. Точно установить их количество пока не удалось. Язык – явление общественное, он создается на протяжении длительного исторического периода. Язык возник в глубокой древности в процессе совместной трудовой деятельности людей.
66341. Язык как система. Язык и речь. Разделение понятий язык и речь. Правописание звонких и глухих согласных 76.5 KB
  Первые люди не имели языка. Удивительно, не правда ли? Даже птицы и разные другие существа, едва появившись на свет, умеют «изъясняться» на своем языке. У человека все по-другому. Только что родившийся не умеет говорить, каждому ребенку нужно этому учиться.
66343. Основные функции языка. Общая характеристика форм и видов речи (внешняя и внутренняя речь). Речь монологическая, речь диалогическая, письменная речь, устная речь монолог, диалог, полилог 70.5 KB
  Общая характеристика форм и видов речи внешняя и внутренняя речь. Речь монологическая речь диалогическая письменная речь устная речь монолог диалог полилог. Основные функции языка: Коммуникативная функция сообщения; Кумулятивная аккумулятивная накопительная...
66344. Мы экономим электрическую энергию 37.5 KB
  Человек много лет добывает из земли большое количество энергоресурсов. Слово Экспертам. Слово Корреспондентам Что же включает в себя экономия энергоресурсов Только ли это экономия электрической энергии Мы слышим от взрослых что дом дырявый что это значит...
66345. Моя щаслива планета 77.5 KB
  Мета: узагальнити знання дітей про шляхи і заходи щодо збереження енергії; мотивувати учнів відповідально ставитися до використання енергії у побуті; сприяти формуванню навичок ощадливого використання електроенергії у побуті.
66346. English Traditions and Customs 40 KB
  They also have their traditional Christmas dinner with stuffed turkey and Christmas pudding. The Queen’s speech is on television at three o’clock in the afternoon. There is a big Christmas tree in Trafalgar Square in London.