Имя_типа список_идентификаторов;

Программу сохранить под своей фамилией сбросить на флешку преподавателю.

Структура программы на языке С++

Программа на языке С++ есть последовательность директив препроцессора, объявлений глобальных констант, типов данных, переменных, функций (вспомогательных алгоритмов) и операторов.

В каждой программе должна быть объявлена функция с именем main, именно с неё начинается выполнение программ на языке С++.

Объявление функции может иметь следующий вид:

Тип_результата имя_функции (список_аргументов)

{ тело функции, которое может состоять из:

· объявлений локальных констант, типов данных, переменных,

· операторов и операций.

}

Объявлять внутри функции другие функции ЗАПРЕЩАЕТСЯ.

Размер букв в тексте программ важен, например, Var и var – два разных идентификатора[1].

Запись оператора завершается символом ";" , который считается составной частью оператора.

Однострочечные комментарии начинаются с символа //, а многострочечные заключается между символами /* и */.

Пример программы на языке C++

#include <iostream.h> // директива препроцессора

#include <conio.h>

void main() { // объявление функции

cout << ”\nHellow, World! \n”; // тело функции

Getch ();

}

Схема подготовки исполняемой программы (exe-файла)

Имя_типа список_идентификаторов; - student2.ru

Примечание. В дальнейшем примеры программ будут приводиться для системы программирования на языке C++ фирмы Borland для операционной системы Windows (сокращённо BCW).

Основные стандартные простые типы данных языка С++

Простым типом данных называется тройка (M, O, R), где M есть конечное множество констант, O – множество операций, R – множество отношений, определённых на множестве M.

имя типа размер констант в байтах множество констант Примечания
unsigned char [0; 255] Ç Z коды символов
char [-128; 127] Ç Z коды символов
unsigned int [0; 65535] Ç Z  
int [-32768; 32767] Ç Z  
unsigned long [0; ~ 4 млрд.] Ç Z "~" означает примерно
long [~ - 2 млрд.; ~ 2 млрд.] Ç Z  
float [3,4*10-38; 3,4*1038] Ç Ç Q по абсолютной величине, 7 значащих цифр.
double [1,7*10-308; 1,7*10308] Ç Ç Q по абсолютной величине, 15 значащих цифр.
long double [3,4*10-4932; 3,4*104932] Ç Ç Q по абсолютной величине, 19 значащих цифр.

Примечания.

· Z означает множество целых чисел, Q – рациональных чисел.

· Символы заключаются в апострофы.

· Целые константы можно записывать в 16 СС и в 8 СС, предваряя их запись Æx и Æ соответственно, например, ÆxaAbB, Æ12345.

Объявление постоянных

Переменная, значение которой не может меняться, называется постоянной.

Постоянные объявляются следующим образом:

const имя_типа идентификатор = выражение;

Пример.

const float pi = 3.14;

Объявление переменных

имя_типа список_идентификаторов;

Примечания.

· При объявлении переменных допускается их инициализация.

· Объявлять переменные можно в любом месте блока до первого их использования.

· Блоком является вся программа, тело функции, либо операторы и операции, заключенные в { }.

Пример объявления переменных простых типов:

int a, b = 17, B = 21; // переменные в списке разделяются запятыми

char d = ‘s’, ch = Æx31;

Приоритеты операций

Ранг Операции Комментарии
( ) [ ] -> :: .  
! ~ + - ++ -- & * (имя_типа) sizeof new delete унарные операции
.* ->*  
* / % бинарные операции: умножить, разделить, частное от деления
+ - бинарные операции
<< >> сдвиги влево/вправо
< <= >= > отношения
== != равно/неравно
& поразрядное «и»
^ поразрядное «исключающее или»
| поразрядное «или»
&& конъюнкция
|| дизъюнкция
?: условная операция
= += /= %= += -= &= ^= |= <<= >>= операции присваивания
, операция запятая

Примечание. Операции участвуют в записи выражений. При вычислении значения выражения сначала вычисляются операции с меньшим рангом (с бóльшим приоритетом), операции с одинаковым рангом вычисляются слева направо по порядку.

Обратите внимание на то, что в С++присваивания являются операциями, выполняющимися справа налево, а не операторами, как во многих других языках программирования.

Преобразование типов

Если это необходимо и возможно, то тип результата выражения можно явно преобразовать следующим образом:

(имя_типа) выражение

например, в результате явного преобразования типа int d = (int) 2.71;переменная dполучит значение 2, то есть преобразование к целому типу заключается в отбрасывании дробной части числа.

Основные конструкции языка С++

Функции в языке С++

Каждая используемая в программе функция[2] должна быть объявлена в любом месте программы до первого к ней обращения.

Объявление функции имеет вид:

заголовок_функции {тело_функции}

Правила языка С++ позволяют до обращения к функции объявить её прототип:

Заголовок_функции ;

а после обращения привести “полное” объявление функции.

Такое "двухэтапное" объявление функций позволяет выделить основной алгоритм, который выполняет функция main().

Чаще всего заголовок функции имеет вид:

ëклассû тип_значения_функции имя_функции (список_аргументов) ;

где

· класс ::= extern | static

extern означает, что функция будет доступной из других программ,

static означает, что локальные параметры функции сохраняют свои значения между вызовами функции,

· тип значения функции может быть любым кроме типов массив или функция,

· список аргументов содержит задания типов и имён для каждого аргумента функции.

Если функция не возвращает значение, то тип её результата void.

Если тип результата функции не void, то в её теле должен выполняться оператор return выражение; Выполнение этого оператора прекращает выполнение операторов в теле функции, а значение выражения заменяет вызов (обращение к) функции.

Пример определения функции.

Без прототипа функции С прототипом функции
int sum(int a, int b) // заголовок; {return a + b;} // тело; void main(void) { int A = 2, B = 3; C = sum(A, B); } int sum(int a, int b); // прототип   void main(void) { int A = 2, B = 3; C = sum(A, B); } // объявление функции: int sum(int a, int b) {return a + b;}

Примечание. Если требуется запретить изменение аргумента в теле функции, то его задание в списке аргументов должно начинаться с модификатора const, например, прототип int f(const int a, int b); объявляет, что у функции f от двух аргументов попытка изменения в теле функции аргумента a, должна рассматриваться компилятором как ошибка.

Язык С++ разрешает объявлять функции со значением аргументов по умолчанию, например,

int f(int x, int y = 1, int z = 2) {…}

Если при вызове таких функций значения аргументов не указываются, то им присваиваются значения объявленные в заголовке функции.

Примеры вызовов.

int k = f(5, 6, 7); // все аргументы получают указанные значения,

k = f(10, 4); // z получает значение по умолчанию 2,

k = f(0); // аргументы y и z получают значения по умолчанию.

Примечание. Аргументы, значения которым присваиваются по умолчанию, должны объявляться последними в списке аргументов.

Операции присваивания

В общем случае операция присваивания имеет вид[3]:

ëимя_типаû идентификатор знак_операции ë(имя_типа)û выражение;

Выполнение операции:

· вычисляется значение выражения,

· полученная константа приводится к указанному типу,

· над содержимым области памяти, поименованной идентификатором, и константой выполняется операция, знак которой находится до “=”,

· результат помещается в область памяти, поименованной идентификатором.

Примеры.

· int a = 7; // объявляется переменная a и a ← 7[4]

· a += (int) 8/3; // a ← 7 + 2

· int b = a = 9; // объявляется переменная b и a ← 9, b ← 9

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

Так как операция присваивания выполняется справа налево, то в ней может объявляться только одна переменная.

Особо следует отметить две операции присваивания: инкремент ++ и декремент --, каждая из которых бывает двух видов: префиксной и постфиксной, например,

++ c; // префиксный инкремент,

b -- ; // постфиксный декремент,

Префиксная форма ++ (--) увеличивает (уменьшает) операнд на единицу ДО его использования. Постфиксная форма ++ (--) увеличивает (уменьшает) операнд на единицу ПОСЛЕ его использования.

Пример.

int a, b = 5;

a = ++b; // b ← b + 1, a ← b; итог: a ← 6, b ← 6

a += b--; // a ← a + b, b ← b – 1; итог: a ← 12, b ← 5

Наши рекомендации