1. Какие этапы составляют предмашинную подготовку задачи?
2. Что такое алгоритм решения?
3. В каком виде выполняются алгоритмы?
4. Как выполняется схема алгоритма?
5. Что такое программа решения?
2.ЯЗЫК ПРОГРАММИРОВАНИЯ С++
2.1 Ключевые слова C++
__asm
| __es
| __interrupt
| short
|
_asm
| _es
| _interrupt
| signed
|
asm
| __export
| interrupt
| sizeof
|
auto
| _export
| __loadds
| __ss
|
break
| extern
| _loadds
| _ss
|
case
| __far
| long
| static
|
catch
| _far
| __near
| __stdcall
|
__cdecl
| far
| _near
| _stdcall
|
_cdecl
| __fastcall
| near
| struct
|
cdecl
| _fastcall
| new
| switch
|
char
| __finally
| operator
| template
|
class
| float
| __pascal
| this
|
const
| for
| _pascal
| __thread
|
continue
| friend
| pascal
| throw
|
__cs
| goto
| private
| __try
|
_cs
| __huge
| protected
| try
|
default
| _huge
| public
| typedef
|
delete
| huge
| register
| union
|
do
| if
| return
| unsigned
|
double
| __import
| __rtti
| virtual
|
__ds
| _import
| __saveregs
| void
|
_ds
| import
| _saveregs
| volatile
|
else
| inline
| __seg
| while
|
enum
| int
| _seg
|
|
2.2. Расширения C++ по сравнению с Си стандарта ANSI
__asm
| __except
| __import (2)
| pascal
|
_asm
| __export
| _import (2)
| __saveregs (1)
|
__cdecl
| __far (1)
| _interrupt (1)
| _saveregs (1)
|
_cdecl
| _far (1)
| interrupt (1)
| __seg (1)
|
cdecl
| far (1)
| __loadds (1)
| _seg (1)
|
__cs (1)
| __fastcall
| _loadds (1)
| ___ss (1)
|
_cs (1)
| _fastcall
| __near (1)
| __ss (1)
|
__ds (1)
| __finally
| _near (1)
| __rtti
|
_ds (1)
| __huge (1)
| near (1)
| __thread (2)
|
__es (1)
| _huge (1)
| __pascal
| __try
|
_es (1)
| huge (1)
| _pascal
|
|
(1) - доступны только для 16-разрядных компиляторов
(2) - доступны только для 32-разрядных компиляторов
2.3 Ключевые слова, специфические для C++
asm
| friend
| protected
| try
|
catch
| inline
| public
| virtual
|
class
| new
| template
| __rtti
|
delete
| operator
| this
|
|
private
| throw
|
|
|
2.4 Регистровые псевдопеременные Borland C++
_AH
| _CL
| _EAX (*)
| _ESP
|
_AL
| _CS
| _EBP (*)
| _FLAGS
|
_AX
| _CX
| _EBX (*)
| _FS
|
_BH
| _DH
| _ECX (*)
| _GS (*)
|
_BL
| _DI
| _EDI (*)
| _SI
|
_BP
| _DL
| _EDX (*)
| _SP
|
_BX
| _DS
| _ES
| _SS
|
_CH
| _DX
| _ESI (*)
|
|
(*) - для 32-разрядного компилятора эти псевдопеременные всегда доступны. 16-разрядный компилятор может их использовать только при указании параметра генерации инструкций 80386.
2.5 Идентификаторы
Характерным для C++ и для других реализаций языка является учет регистра букв в идентификаторах. Последние могут содержать буквы от A до Z и от a до z, символ подчеркивания (_) и цифры от 0 до 9 и должны начинаться с буквы. Константы
Константами называются лексемы, представляющие собой фиксированные числовые или символьные значения. Borland C++ поддерживает четыре класса констант: константы с плавающей точкой, целочисленные константы, константы перечислимого типа и символьные константы (включая строковые).
Целочисленные константы представлены десятичным, восьмиричным и шестнадцатиричным форматом.
Символьные константы записываются одним или более символами, заключенными в одинарные кавычки, например 'F', '=', '\n'.
2.6 Описание операций
Операциями называются лексемы, вызывающие некоторые вычисления с переменными и прочими объектами, указанными в выражении. Borland C++ имеет особенно богатый набор операций, включающий в себя помимо обычных арифметических и логических операций средства манипуляции с данными на битовом уровне, доступа к элементам структур и объединений, а также операции с указателями (ссылка и разыменование).
2.6.1 Унарные операции
Операция
| Смысл
|
&
| Операция адресации
|
*
| Операция обращения по ссылке
|
+
| Унарный плюс
|
-
| Унарный минус
|
~
| Поразрядное дополнение (дополнение до единицы)
|
!
| Логическое отрицание
|
++
| Префикс: прединкрементация; Постфикс: постинкрементация
|
--
| Префикс: преддекрементация; Постфикс: постдекрементация
|
2.6.2 Бинарные операции
Операция
| Смысл
|
Операции типа сложения
| +
| Бинарный плюс (сложение)
|
-
| Бинарный минус (вычитание)
|
Операции типа умножения
| *
| Умножение
|
/
| Деление
|
%
| Остаток от деления
|
Операции сдвига
| <<
| Сдвиг влево
|
>>
| Сдвиг вправо
|
Поразрядные операции
| &
| Поразрядное И
|
^
| Поразрядное исключающее ИЛИ
|
|
| Поразрядное включающее ИЛИ
|
Логические операции
| &&
| Логическое И
|
||
| Логическое ИЛИ
|
Операции присваивания
| =
| Присваивание
|
*=
| Присвоить произведение
|
/=
| Присвоить частное
|
%=
| Присвоить остаток
|
+=
| Присвоить сумму
|
-=
| Присвоить разность
|
<<=
| Присвоить сдвиг влево
|
>>=
| Присвоить сдвиг вправо
|
&=
| Присвоить поразрядное И
|
^=
| Присвоить поразрядное исключающее ИЛИ
|
|=
| Присвоить поразрядное ИЛИ
|
Операции отношения
| <
| Меньше
|
>
| Больше
|
<=
| Меньше или равно
|
>=
| Больше или равно
|
Операции равенства
| ==
| Равно
|
!=
| Не равно
|
Операции выбора элемента
| .
| Непосредственный выбор элемента
|
->
| Косвенный выбор элемента
|
Операции с элементами класса
| ::
| Доступ/определение области действия
|
.*
| Обращение через указатель к элементу класса
|
->*
| Обращение через указатель к элементу класса
|
Условные операции
| a ? x : y
| "Если a, то x, иначе - y"
|
Операция запятой
| ,
| Вычислить, например, a, b, c слева - направо
|
2.6.3 Пунктуаторы
В C++ пунктуаторы, также называемые разделителями, определяются следующим образом:
пунктуатор: одно из [ ] ( ) { } , ; : ... * = #
2.6.4 Ассоциативность и приоритеты операций Borland C++
Операции
| Ассоциативность
|
() [] -> :: . ! ~ - ++ -- & * (приведение типа)
| Слева-направо
|
sizeof new delete
| Справа-налево
|
.* ->*
| Слева-направо
|
* / %
| Слева-направо
|
+ -
| Слева-направо
|
<< >>
| Слева-направо
|
< <= > >=
| Слева-направо
|
== !=
| Слева-направо
|
&
| Слева-направо
|
^
| Слева-направо
|
|
| Слева-направо
|
&&
| Слева-направо
|
||
| Слева-направо
|
?:(условное выражение)
| Справа-налево
|
= *= /= := += -= &= ^= |= <<= >>=
| Справа-налево
|
,
| Слева-направо
|
2.6.5 Размер памяти и диапазон значений стандартных типов данных СИ/СИ++
№
п/п
|
Тип переменной
| Объём памяти
| Диапазоны представления чисел
| Спецификатор
|
бит
| байт
| min
| max
|
| char
|
|
| -128
|
| %d %c %s
|
| unsigned char
|
|
|
|
| %c %s
|
| short
|
|
| -32768
|
| %d %o %x
|
| int[1]
|
|
| -32768
|
| %d %o %x
|
| unsigned int
|
|
|
|
| %u
|
| long
|
|
| -2147483648
|
| %ld %lo %lx
|
| unsigned long
|
|
|
|
| %lx %lu
|
| float
|
|
| 3,4 Е-38
| 3,4 Е+38
| %f %e %g
|
| double
|
|
| 1,7 Е-308
| 1,7 Е+308
| %le %lf
|
| long double
|
|
| 3,4 Е-4932
| 3,4 Е+4932
| %lf %le %lg
|
| указатель
|
|
|
|
| %lu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|