Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпорочка.docx
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
151.87 Кб
Скачать

1.История создания и развития языка C++.

C++ - это ключ к современному объектно-ориентированному программированию. Он обеспечивает фундамент для современных языков программирования и средств обработки данных. Потомки: C# и java. История начинается с языка Си. C++ - это расширенная и улучшенная версия языка Си, в которой реализован принцип объектно-ориентированного программирования. Си был разработан практикующими программистами и отображал их подход к программированию. Создан в 70-х годах в США Дэнисом Ричи и Брайном Керниганом. Первое описание – 1978 год. Си был создан на операционной системе UNIX. Первое описание было не строгим и содержало ряд элементов, допускающих неоднородность толкования. Комитет по учреждению правил Си – 1989 год (С89); обновлен в 1999 году. С89 являлся фундаментом, на котором был построен С++.

Си часто называют языком среднего уровня. В нем реализованы некоторые операции среднего уровня, например: операции над битами. Как никакой другой язык высокого уровня Си доверяет программисту. В нем относительно слабы контроль типов, что позволяет создать эффективность программы. Однако, программист должен очень хорошо знать язык, иначе усложняется отладка и уменьшается надежность создания программ. Сам язык Си мал по объему. Большинство действий реализуется через библиотеки стандартных функций. Например: действия по выполнению ввода-вывода, управление процессами, динамическое распределение памяти. Си позволяет манипулировать битами, байтами и адресами, т.е. базовыми элементами, с которыми работает компьютер.

Большинство компиляторов С++ полностью входят в Си. Стандарт С++ был окончательно разработан в 1998 году. Именно эта версия поддерживает основные компиляторы, в том числе C++ Builder (Borland).

2.Элементы языка C++ : комментарии, директивы, пространства имен, функции.

Комментарии:

В С++ поддерживаются 2 типа комментариев:

1). Многострочный /* . . . . .. .. . . .. . . .. . . . .

. . . . .. . . . .. . . .. . . .. . . . .. */

2). Однострочный //………………………………….

Выполнение любой программы начинается с функции main. Она имеет любой тип, параметры.

В С++ обычно заголовок – это внешний исходный файл, помещаемый компилятором в начало программы с помощью директивы #include. Можно подключать <math.h>

Using namespace std – эта строка означает, что компилятор должен использовать пространство std. Это недавнее дополнение к С++. Пространство позволяет упростить организацию больших программ. Имена, объявленные в пространстве имен, не будут конфликтовать с такими же именами, объявленными в другом пространстве. В частности в пространстве имен std объявлена вся библиотека стандарта С++.

C out << “ вывод << rez

Консоль вывода вывод

C in >> a

Консоль ввода что выводить

Любая программа строится из блоков, на С++ - это функции. Обычно каждая функция выполняет только 1 задачу. Многие функции возвращают значения. Например, return a.

М огут быть функции с параметрами. Например, int mul (int x, int y).

Прототип

Затем сама функция <<math.h>>

В С++ каждая отдельная инструкция должна завершаться ; . Блок- это набор инструкций, которые заключаются в {}. Блок не завершается ; .

3. Общая структура программы языка С++. Пример. Любая программа на с++ строится из строительных блоков (функций). Обычно каждая функция выполняет только одну задачу, многие функции возвращают значение (return a). Могут быть функции с параметрами. В с++ каждая отдельная инструкция должна завершаться «;». Блок – это набор инструкций, заключенных в «{ }». Блок не завершается «;». У каждой переменной должен быть задан тип. Выполнение любой программы начинается с функции main. Она имеет тип и у нее могут быть параметры. Пример программы: #include <iostream> using namespace std; int mul( int x, int y); //прототип функции int main(); { int rez; rez=mul(10,11); cout<<”ответ”<<rez; return 0; } int mul(int x, int y) {return x*y; }

4. Алфавит языка С++. Идентификаторы. Константы. Алфавит. 1. Прописные латинские буквы от A до Z 2. Строчные латинские буквы от a до z 3. Десятичные цифры от 0 до 9 Компилятор С++ различает прописные и строчные буквы. В стандарте С++ определено 63 ключевых слова (if, case, int и тд). Идентификаторы. Они могут состоять из одного или нескольких символов. Значимыми являются первые 1024 символа. Имена начинаются с буквы или символа «_». Последними могут быть буквы, цифры, «_». Нельзя использовать ключевые слова и имена стандартных функций. Константы. Это фиксированные значения, которые нельзя изменить программой. Константы могут иметь любой базовый тип. По умолчанию компилятор связывает целочисленную константу с совместимым и одновременно с наименьшим по занимаемой памяти типом данных, начиная с Константы могут иметь любой базовый тип. По умолчанию компилятор связывает целочисленную константу с совместимым и одновременно с наименьшим по занимаемой памяти типом данных, начиная с int. Вещественным константам по умолчанию присваивается тип double. Чтобы задать точный тип констант, используют суффиксы F – float L – long. Например: 123.3F, -34L.

5. Все типы переменных должны быть объявлены до их использования. В С++ определены 7 основных типов.

Тип

Размер в битах

Диапазон

char

8

-127→127 или 0→255

wchar_t

16

0÷65535

Int (16разряд. операц.)

16

-32768÷3767

Int (32разряд. операц.)

32

-2147483648 ÷2147483647

float

32

3,4Е-38→3,4Е+38

double

64

1,7Е-308→1,7Е+308

bool

8

True false

void

Без типа

В С++ перед char, int, double разрешается использовать модификаторы:

Int: Signed

Unsigned

Long

Short

Char: Signed

Unsigned

Double: long

#include (<iostream>)

using namespace std;

int main()

{ short int I;

short unsigned int j;

j=6000;

i=j;

cout <<i<<” ”<<j;

} return 0;

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

Переменная – поименованный участок памяти, в котором хранится значение. Имя (идентификатор) в языке С++ – совокупность букв, цифр и символа подчеркивания, начинающаяся с буквы или символа подчеркивания. В С++ строчные и прописные буквы считаются разными (т.е. abc и Авс – разные переменные). Имена в С++ бывают внешние и внутренние. Внешние имена обрабатываются во время внешнего процесса компоновки, это имена функций и глобальных переменных, которые совместно используются в различных исходных файлах. Все остальные имена – внутренние. Длина имени не ограничена, но ограничено количество значащих символов. В стандарте С89 значащими являются как минимум 6 символов внешнего имени и 31 – внутреннего. В стандарте С99 эти значения увеличены 31 – для внутреннего, 63 – для внешнего. Все переменные в языке Си должны быть описаны

Общий вид:

Тип список переменных;

Например: int I,j,k;

Char ch, chr;

Float f,b,c;

Double d,g;

Переменные могут быть объявлены внутри функции.

В зависимости от места объявления они называются локальными, формальными параметрами и глобальными переменными.

Локальные переменные:

-это переменные, которые объявляются внутри функции. Они не известны внешним функциям.

Например:

#include <iostream>

Using name space std;

Void func ();

Int main ();

Int x;

X:=10;

Func ();

Cout<< x;

Return 0;

}

Void func ()

{int x;

X:=-199;

Cout<<X;

}

Результат: -199 10

Каждая переменная имеет свою область видимости, то есть такую область, в которой можно работать с переменной.  За пределами этой области, о данной переменной ничего известно не будет, а значит и использовать её нельзя. Итак, переменная  находится в области видимости, если к ней можно получить доступ.

Существуют локальные и глобальные переменные. Так вот, переменные, объявленные внутри функции, называются локальными. Локальные переменные имеют свои области видимости, этими областями являются функции, в которых объявлены переменные. Таким образом, в разных функциях можно использовать переменные с одинаковыми именами, что в свою очередь очень удобно. Разделение переменных на глобальные и локальные соответствует одному из главных правил программирования, а именно – принципу наименьших привилегий. То есть, переменные, объявленные внутри одной функции, должны быть доступны только для этой функции и ни чему другому, в конце концов, они создавались именно для этой функции.   Глобальные переменные объявляются вне тела какой-либо функции, и поэтому область видимости таких переменных распространяется на всю программу. Обычно глобальные переменные объявляются перед главной функцией, но можно объявлять и после функции main(), но тогда данная переменная не будет доступна в функции main().

Разработаем программу, в которой будут объявлены две переменные, локальная и глобальная, с одинаковым именем.

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

// variables.cpp: определяет точку входа для консольного приложения.

 

#include "stdafx.h"

#include <iostream>

using namespace std;

 

void example();

int variable = 48; // инициализация глобальной переменной

 

int main(int argc, char* argv[])

{

       int variable = 12; // инициализация локально переменной

       cout << "local  variable = " << variable << endl; // печать значения содержащегося в локальной переменной

       example(); // запуск функции

       system("pause");

       return 0;

}

 

void example()

{

       cout << "global variable = " << variable << endl; // функция видит только глобальную переменную

}

В строках 8 и 12 объявлены переменные одинакового типа с одним и тем же именем variable, но переменная в строке 8 является глобальной переменной, а переменная в строке 12 - это локальная переменная. Функция example() имеет доступ  только к глобальной переменной. В то время как функция main() имеет доступ как к локальной так и к глобальной переменным. Если в области видимости есть и локальная и глобальная переменные с одинаковыми именами, то при обращении к ним, будет использоваться ближайшая переменная, а это локальная переменная, это видно по результату работы программы .

Как мы уже сказали, функция main() имеет доступ и к глобальной переменной, но не показали, как получить этот доступ. В С++ существует такая операция, как разрешение области действия "::". Эта операция позволяет  обращаться к глобальной переменной из любого места программы.» Все, что нужно сделать, так это поставить двойное двоеточие перед именем переменной.  Ниже показан код, верхней программы с одним лишь изменением, и это изменение – операция разрешения доступа в строке 13.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

// variables.cpp: определяет точку входа для консольного приложения.

 

#include "stdafx.h"

#include <iostream>

using namespace std;

 

void example();

int variable = 48; // инициализация глобальной переменной

 

int main(int argc, char* argv[])

{

       int variable = 12; // инициализация локально переменной

       cout << "local  variable = " << ::variable << endl; // печать значения содержащегося в глобальной переменной

       example(); // запуск функции

       system("pause");

       return 0;

}

 

void example()

{

       cout << "global variable = " << variable << endl; // функция видит только глобальную переменную

}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]