Программу сохранить под своей фамилией сбросить на флешку преподавателю.
Структура программы на языке С++
Программа на языке С++ есть последовательность директив препроцессора, объявлений глобальных констант, типов данных, переменных, функций (вспомогательных алгоритмов) и операторов.
В каждой программе должна быть объявлена функция с именем main, именно с неё начинается выполнение программ на языке С++.
Объявление функции может иметь следующий вид:
Тип_результата имя_функции (список_аргументов)
{ тело функции, которое может состоять из:
- объявлений локальных констант, типов данных, переменных,
- операторов и операций.
}
Объявлять внутри функции другие функции ЗАПРЕЩАЕТСЯ.
Размер букв в тексте программ важен, например, Var и var – два разных идентификатора[1].
Запись оператора завершается символом ; , который считается составной частью оператора.
Однострочечные комментарии начинаются с символа //, а многострочечные заключается между символами /* и */.
Пример программы на языке C++
#include// директива препроцессора
#include
void main() { // объявление функции
cout
Getch ();
}
Схема подготовки исполняемой программы (exe-файла)
Примечание. В дальнейшем примеры программ будут приводиться для системы программирования на языке C++ фирмы Borland для операционной системы Windows (сокращённо BCW).
Основные стандартные простые типы данных языка С++
Простым типом данных называется тройка (M, O, R), где M есть конечное множество констант, O – множество операций, R – множество отношений, определённых на множестве M.
имя типа | размер констант в байтах | множествоконстант | Примечания |
unsigned char | [0; 255] C Z | коды символов | |
char | [-128; 127] C Z | коды символов | |
unsigned int | [0; 65535] C Z | ||
int | [-32768; 32767] C Z | ||
unsigned long | [0; ~ 4 млрд.] C Z | ~ означает примерно | |
long | [~ — 2 млрд.; ~ 2 млрд.]C Z | ||
float | [3,4*10-38; 3,4*1038] CC Q | по абсолютной величине,7 значащих цифр. | |
double | [1,7*10-308; 1,7*10308] CC Q | по абсолютной величине,15 значащих цифр. | |
long double | [3,4*10-4932; 3,4*104932] CC 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 | унарные операции | |
.* -* | ||
* / % | бинарные операции: умножить, разделить, частное от деления | |
+ — | бинарные операции | |
сдвиги влево/вправо | ||
= | отношения | |
== != | равно/неравно | |
поразрядное «и» | ||
^ | поразрядное «исключающее или» | |
| | поразрядное «или» | |
конъюнкция | ||
|| | дизъюнкция | |
?: | условная операция | |
= += /= %= += -= = ^=|= = | операции присваивания | |
, | операция запятая |
Примечание. Операции участвуют в записи выражений. При вычислении значения выражения сначала вычисляются операции с меньшим рангом (с бoльшим приоритетом), операции с одинаковым рангом вычисляются слева направо по порядку.
Обратите внимание на то, что в С++присваивания являются операциями, выполняющимися справа налево, а не операторами, как во многих других языках программирования.
Преобразование типов
Если это необходимо и возможно, то тип результата выражения можно явно преобразовать следующим образом:
(имя_типа) выражение
например, в результате явного преобразования типа int d = (int) 2.71;переменная dполучит значение 2, то есть преобразование к целому типу заключается в отбрасывании дробной части числа.
Основные конструкции языка С++
Функции в языке С++
Каждая используемая в программе функция[2] должна быть объявлена в любом месте программы до первого к ней обращения.
Объявление функции имеет вид:
заголовок_функции {тело_функции}
Правила языка С++ позволяют до обращения к функции объявить её прототип:
Заголовок_функции ;
а после обращения привести “полное” объявление функции.
Такое двухэтапное объявление функций позволяет выделить основной алгоритм, который выполняет функция main().
Чаще всего заголовок функции имеет вид:
eклассu тип_значения_функции имя_функции (список_аргументов) ;
где
- класс ::= 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]:
eимя_типаu идентификатор знак_операции e(имя_типа)u выражение;
Выполнение операции:
- вычисляется значение выражения,
- полученная константа приводится к указанному типу,
- над содержимым области памяти, поименованной идентификатором, и константой выполняется операция, знак которой находится до “=”,
- результат помещается в область памяти, поименованной идентификатором.
Примеры.
- int a = 7; // объявляется переменная a и a7[4]
- a += (int) 8/3; // a7 + 2
- int b = a = 9; // объявляется переменная b и a9, b9
Обратите внимание на последнюю строку в примерах. Возможность двойного присваивания обусловлена тем, что = есть операция, а в выражении знаков операций может быть несколько.
Так как операция присваивания выполняется справа налево, то в ней может объявляться только одна переменная.
Особо следует отметить две операции присваивания: инкремент ++ и декремент —, каждая из которых бывает двух видов: префиксной и постфиксной, например,
++ c; // префиксный инкремент,
b — ; // постфиксный декремент,
Префиксная форма ++ (—) увеличивает (уменьшает) операнд на единицу ДО его использования. Постфиксная форма ++ (—) увеличивает (уменьшает) операнд на единицу ПОСЛЕ его использования.
Пример.
int a, b = 5;
a = ++b; // bb + 1, ab; итог: a6, b6
a += b—; // aa + b, bb – 1; итог: a12, b5
Статьи к прочтению:
All Dog Breeds In The World (A to Z)
Похожие статьи:
-
Тип_результата id_функции(список параметров)
{ код функции return выражение; } Рассмотрим составные части определения пользовательской функции. Тип результата определяет тип выражения, значение…
-
Тип_возвращаемого_значения имя_функции(список_параметров)
{ Тело функции } Тип_возвращаемого_значения определяет тип переменной, которую возвращает функция. — спецификатор класса памяти – задает класс памяти…