
- •6.Объявление переменных.
- •7. Управляющие символы последовательности
- •8. Арифметические операторы. Их приоритеты. Примеры.
- •9. Операторы отношений. Логические операторы. Их приоритеты. Примеры.
- •10.Преобразование типов в выражениях. Приведение типов. Примеры.
- •11.Иструкция выбора(switch). Примеры
- •12. Оператор if
- •14. Цикл for. Примеры.
- •15. Циклы while и do…while. Примеры.
- •16.Инструкция break
- •17.Одномерные массивы. Объявление, инициализация, работа с ними. Примеры.
- •18. Многомерные массивы. Работа с ними. Примеры.
- •19. Строки. Работа со строками. Примеры.
- •21.Присвоение значения с помощью указателя
- •22.Арифметические операции над указателями. Примеры.
- •23.Доступ к элементам массива с помощью указателей. Пример.
- •24. Массивы указателей. Многоуровневая непрямая адресация.
- •25.Динамическое распределение памяти с использованием операторов new и delete.
- •26.Динамическое выделение памяти в языке Си: фифнкции malloc и free.
- •27. Функции. Локальные, глобальные переменные и формальные параметры. Примеры.
- •29.Передача функциям строк в качестве параметров.
- •30.Аргументы функции main().
- •31.Завершение функций
- •33.Прототипы функций. Рекурсия. Примеры
- •34. Два способа передачи аргументов в функцию. Примеры.
- •35. Ссылочные параметры. Возврат ссылок. Примеры.
- •36.Структуры.
- •37. Массивы структур.
- •39. Использование в качестве членов структур массивов и структур.
- •40. Работа в графическом и текстовом видеорежиме.
- •Программирование в графическом режиме
- •Функции библиотеки graphics
- •Управление графической системой
- •Черчение и заполнение
- •Манипулирование экраном и графическими окнами
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).