Автор работы: Пользователь скрыл имя, 13 Февраля 2013 в 21:53, курс лекций
Безусловно С++ многим обязан языку С, который сохраняется как его подмножество. Сохранены и все свойственные С средства низкого уровня, предназначенные для решения самых насущных задач системного программирования. С, в свою очередь, многим обязан своему предшественнику языку BCPL. Еще одним источником вдохновения был язык SIMULA-67; именно из него была заимствована концепция классов (вместе c производными классами и виртуальными функциями). Возможность в С++ перегрузки операций и свобода размещения описаний всюду, где может встречаться оператор, напоминают язык Алгол-68.
История создания и преимущества использования С++
Первая программа на С++
Управляющие символы и комментарии С++
Арифметические операции С++
Типы данных С++
Логические типы и логические операции
Тип данных char
Целочисленные типы данных
Типы данных с плавающей точкой
Связь между языком, на котором мы думаем и программируем, а также между задачами и их решениями, которые можно представить в своем воображении, довольно близка. По этой причине ограничивать возможности языка только поиском ошибок программиста - в лучшем случае опасно. Как и в случае естественных языков, очень полезно обладать, по крайней мере, двуязычием. Язык предоставляет программисту некоторые понятия в виде языковых инструментов; если они не подходят для задачи, их просто игнорируют. Например, если существенно ограничить понятие указателя, то программист будет вынужден для создания структур, указателей и т.п. использовать вектора и операции с целыми. Хороший проект программы и отсутствие в ней ошибок нельзя гарантировать только наличием или отсутствием определенных возможностей в языке.
Типизация языка должна быть особенно полезна для нетривиальных задач. Действительно, понятие класса в С++ проявило себя как мощное концептуальное средство.
Самая простая программа на С++, это программа, печатающая текстовое сообщение, говоря печатающая, подразумевается не печать на принтере, а отправка данного сообщения на стандартное устройство вывода, то есть на экран. Код, содержащий только функцию main() и некоторые препроцессорные директивы тоже является программой, на этот раз, самой простой программой на языке программирования C++. Рассмотрим детально каждую строку программы, печатающей текстовое сообщение.
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 cout << "My first program!" << endl;
6 system("pause");
7 return 0;
8 }
Строка 1 позволяет выводить данные на экран. Данная строка включает в программу заголовочный файл потоков ввода/вывода <iostream>. Этот файл должен быть включен во все программы, где предусматривается вывод текста на экран или считывание его с клавиатуры.
Любой оператор С++ должен оканчиваться точкой с запятой ;. Директивы препроцессора #include <iostream>, фигурные скобочки {}, заголовки функций int main() не оканчиваются точкой с запятой.
Строку 2 подробно рассматривается ниже, эта строка определяет пространство имен std.
В строке 3 прописан заголовок главной функции int main(). Так как функции в С++ изучаются далее, просто прописывайте данную строку в каждой своей программе.
Фигурные скобки в строках 4 и 8 означают начало и конец функции main().
Строка 5 печатает текст, находящийся в кавычках, пробелы между словами не игнорируются. В дальнейшем текст между кавычками будем называть сообщением или строковым литералом. Символы "<<" называются операциями передачи в поток. Данные символы используются вместе с оператором вывода cout. Оператор endl переносит курсор на следующую строку.
Строка 6 необходима для того, чтобы программа не завершала свою работу сразу после вывода сообщения на экран, system("pause") выполняет задержку с последующим выводом сообщения «Для продолжения нажмите любую клавишу…».
Результат выполнения программы:
Управляющие символы – символы, которые выталкиваются в поток вывода, с целью форматирования вывода или печати некоторых управляющих знаков С++. Основной список управляющих символов языка программирования C++ представлен ниже (см. Таблица 1).
Таблица 1 – Управляющие символы С++
Символ |
Описание |
\r |
возврат каретки в начало строки |
\n |
новая строка |
\t |
горизонтальная табуляция |
\v |
вертикальная табуляция |
\" |
двойные кавычки |
\' |
апостроф |
\\ |
обратный слеш |
\0 |
нулевой символ |
\? |
знак вопроса |
\a |
сигнал биппера |
Все управляющие символы C++ при использовании обрамляются двойными кавычками, если необходимо вывести какое-то сообщение, то управляющие символы можно прописывать сразу в сообщении, в любом его месте.
В C++ существует два способа записи комментариев:
1) Две косые черты "//"- однострочный комментарий. Такие комментарии комментируют всю строчку, не более и не менее.
2) Многострочный
комментарий. Такой
Арифметические операции в C++:
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 //Демонстрация арифметических операций
6 int a1,a2; //Объявление переменных a1 и a2
7 cout << "Vvedite pervoe chislo: ";
8 cin >> a1;
9 cout << "Vvedite vtoroe chislo: ";
10 cin >> a2;
11 cout << a1 << "+" << a2 << "=" << a1+a2 << endl;
12 cout << a1 << "-" << a2 << "=" << a1-a2 << endl;
13 cout << a1 << "*" << a2 << "=" << a1*a2 << endl;
14 cout << a1 << "/" << a2 << "=" << a1/a2 << endl;
15 cout << a1 << "%" << a2 << "=" << a1%a2 << endl;
16 system ("pause");
17 return 0;
18 }
В строке 6 объявляются переменные с именами a1, a2 тип данных у которых int – целый тип данных. Любые переменные можно использовать только после объявления.
Переменные можно также и инициализировать при объявлении, пример: int a1=10;
Переменные можно инициализировать и объявлять как через запятую так и по отдельности каждую.
Символы ">>" (строки 8 и 10) называются операцией извлечения из потока. Данные символы используются вместе с оператором ввода cin.
Результат выполнения программы:
В данном разделе будут рассмотрены основные типы данных в С++, эти типы данных ещё называются встроенными. Язык программирования С++ является расширяемым языком программирования. Понятие расширяемый означает то, что в языке программирования, кроме встроенных типов данных, можно создавать свои типы данных. Поэтому в С++ существует огромное количество типов данных. Рассмотрим основные типы данных в С++.
Логические переменные (bool) могут принимать одно из двух значений: истина (true) или ложь (false). Логические переменные используются для выражения результатов логических операций:
bool b1=a==b; // = – означает присваивание, == – проверка на равенство
Если a и b имеют одинаковые значения, то b1 будет равно true, в противном случае – false.
По определению, true имеет значение 1 при преобразовании к целому типу, а false – 0. И наоборот, целые можно неявно преобразовывать в логические значения: при этом ненулевые целые преобразуются в true, а ноль – в false.
В арифметических и логических выражениях логические значения преобразуются в целые (int); арифметические и битовые логические операции выполняются над преобразованными величинами. Если результат приводится обратно к логическому типу, то 0 преобразуется в false, а ненулевое значение – в true.
bool a=true;
bool b=true;
bool x=a+b; //a+b=2, поэтому x равен true
bool y=a/b; //a/b=1, поэтому y равен true
В С++ существует три логические операции:
1) Логическая операция И "&&";
2) Логическая операция ИЛИ "||";
3) Логическая операция НЕ "!" или логическое отрицание.
Логические операции образуют сложное (составное) условие из нескольких простых (два или более) условий. Эти операции упрощают структуру программного кода в несколько раз. В следующей таблице кратко охарактеризованы все логические операции в языке программирования С++ для построения логических условий.
Таблица 2 – Логические операции С++
Логические операции |
Обозначение в С++ |
Составное условие |
Краткое описание |
И |
&& |
a==3 && b>4 |
Составное условие истинно, если истинны оба простых условия |
ИЛИ |
|| |
a==3 || b>4 |
Составное условие истинно, если истинно, хотя бы одно из простых условий |
НЕ |
! |
!(a==3) |
Условие истинно, если a не равно 3 |
Тип данных char – это целочисленный тип данных, который используется для представления символов. То есть, каждому символу соответствует определённое число из диапазона чисел [0;255]. Тип данных char также ещё называют символьным типом данных, так как представление символов в С++ базируется именно на этом типе данных. Для представления символов в C++ типу данных char отводится один байт, в одном байте 8 бит, тогда возведём двойку в степень 8 и получим 256 - количество символов, которое можно закодировать. Таким образом, используя тип данных char можно отобразить любой из 256 символов. Все закодированные символы представлены в таблице ASCII. ASCII (от англ. American Standard Code for Information Interchange) – американский стандартный код для обмена информацией.
Таблица 3 – Таблица символов ASCII
№ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
nul |
sox |
stx |
etx |
eot |
enq |
ack |
bel |
bs |
ht |
1 |
nl |
vt |
ff |
cr |
so |
si |
dle |
dc1 |
dc2 |
dc3 |
2 |
dc4 |
nak |
syn |
etb |
can |
em |
sub |
esc |
fs |
gs |
3 |
rs |
us |
space |
! |
" |
# |
$ |
% |
& |
' |
4 |
( |
) |
* |
+ |
, |
- |
. |
/ |
0 |
1 |
5 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
: |
; |
6 |
< |
= |
> |
? |
@ |
A |
B |
C |
D |
E |
7 |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
8 |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
9 |
Z |
[ |
\ |
] |
^ |
_ |
' |
a |
b |
c |
10 |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
11 |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
12 |
x |
y |
z |
{ |
| |
} |
~ |
del |
А |
Б |
13 |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
14 |
М |
Н |
О |
П |
Р |
С |
Т |
У |
Ф |
Х |
15 |
Ц |
Ч |
Ш |
Щ |
ъ |
Ы |
Ь |
Э |
Ю |
Я |
16 |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
17 |
к |
л |
м |
н |
о |
п |
||||
18 |
||||||||||
19 |
||||||||||
20 |
||||||||||
21 |
||||||||||
22 |
р |
с |
т |
у |
ф |
х | ||||
23 |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
24 |
Ё |
ё |
Є |
є |
Ї |
ї |
Ў |
ў |
° |
· |
25 |
· |
№ |
¤ |
Таблица 3 представляет собой полный набор символов ASCII. В таблице ASCII, cимволы с нулевого по 31 включительно, являются управляющими ASCII символами. Это значит, что данные символы выполняют некоторые действия, причём эти символы печатаются с сочетанием клавиши Ctrl. В таблице 3 записано обозначение управляющих ASCII символов, но не их отображение при печати. Остальные же символы с 32 по 254 не являются управляющими и имеют вид, представленный в таблице 3.
Целочисленные типы данных используются для представления чисел.
Таблица 4 – Целочисленные типы данных С++
Зарезервированное слово |
Размер занимаемой памяти (байт) |
Диапазон принимаемых значений |
short int |
2 |
-32 768 / 32 767 |
unsigned short int |
2 |
0 / 65 535 |
int |
4 |
-2 147 483 648 / 2 147 483 647 |
unsigned int |
4 |
0 / 4 294 967 295 |
long int |
4 |
-2 147 483 648 / 2 147 483 647 |
unsigned long int |
4 |
0 / 4 294 967 295 |
В таблице 4 их шесть: short int, unsigned short int, int, unsigned int, long int, unsigned long int. Все они различаются размером занимаемой памяти и (или) диапазоном принимаемых значений. В зависимости от компилятора, размер занимаемой памяти и диапазон принимаемых значений могут изменяться. Причём все типы данных в таблице 4 расположены в порядке возрастания размера занимаемой памяти и диапазона принимаемых значений. Диапазон принимаемых значений, так или иначе, зависит от размера занимаемой памяти. Соответственно, чем больше размер занимаемой памяти, тем больше диапазон принимаемых значений. Также диапазон принимаемых значений меняется в случае, если тип данных объявляется с приставкой unsigned – без знака. Приставка unsigned говорит о том, что тип данных не может хранить знаковые значения, тогда и диапазон положительных значений увеличивается в два раза, например, типы данных short int, unsigned short int.
Приставки: