1. Основные понятия алгоритмизации.
Алгоритм – это понятное и точное предписание исполнителю, совершить последовательность действий направленных на достижение указанной цели, или решение поставленной задачи.
Свойства алгоритмов:
1. Конечность – обязательность завершения каждого из действий и всего алгоритма в целом
2. Дискретность – алгоритм состоитиз отдельных шагов, которые называются командами
3. Понятность – алгоритм должен быть понятен исполнителю
4. Однозначность – алгоритм представляет из себя набор команд, исполняющихся однозначно, по строго определенным правилам
5. Результативность
6. Правилност
7. Массовость
Основные типы алгоритмов
1. Линейный – все действия выполняются последовательно
2. Ветвление – при выполнении,Э или не выполнении какого либо условия, выполняется то или инная последовательность действий
3. Циклический – многократное повторение действий в алгоритме при разных значений входящих в ней переменных
4. Комбинированый – состоящий из предыдущих типов
2. Служебные слова
Служебные слова представляют собой идентификаторы, имеющие специальное значение для компиляторов языков Си/С++. Их нельзя использовать как имя переменной. Ниже приведен список служебных слов языка C++:
asm
case
const
delete
dynamiccast
auto
catch
constcast
do
else
bool
char
continue
double
enum
protected
return
static
template
try
vmion
void.
extern
friend
int
explicit
32 export
for
Inline
virtual
while
new
public
short
static_cast
this
typedef
unsigned
volatile
false
goto
long
operator
register
signed
break
default
struct
throw
typeid
using
wchar t
float
if
xmitable
private
sizeof
switch
true
typename
Трансляторы языков Cu/C++, соответствующие требованиям стандарта ANSI, воспринимают только служебные слова, записанные строчными буквами.
Напоминаем, что не следует использовать имена объектов (идентификаторы), совпадающие со служебными словами.
3. Основные понятия типов данных
Тип данного указывает компилятору языка C++, сколько памяти надо выделить для размещения объекта. Кроме того, он указывает компилятору каким образом надо интерпретировать значение, содержащееся в объекте. Тип объекта указывается в определении объекта с помощью служебного слова (слов) - спецификации типа. Предусмотрено следующие основные (стандартные) типы данных:
Обычно определяют пять фундаментальных типов данных:
1. Char – символьный тип
2. Int – целое
3. Float – с плавающей точкой
4. double – двойной точности
5. void – без значения
На основе этих типов формируется другие типы данных.
Размер этих типов данных для разных процессоров и компиляторов могут быть разными. Однако объект типа char всегда занимает 1 байт, а размер объекта int обычно совпадают с размером слова в конкретной среде программирования.
Необходимо помнить что стандарт Си обуславливает только минимальный диапазон значений каждого типа данных, но не размер байта
4 .Описание переменных
Все переменные перед использованием следует описать. Они не должны быть предварительно проинициализированы. Неинициализированные переменные содержат непредсказуемые значения.
Все переменные перед использованием следует описать. Они не должны быть предварительно проинициализированы. Неинициализированные переменные содержат непредсказуемые значения.
-Типы данных.
Описания содержат спцификатор типа, за которым следует список переменных, данного типа. Переменные в списке должны отделяться друг от друга запятыми.
-Область действия.
Местоположение описания переменной опеределяет сферу влияния переменной.
Глобальные переменные описываются вне функций. К ним можно обращаться из любого места внутри исходного файла, в котором они описаны. Они также доступны из других исходных модулей. Глобальные переменные обычно описываются в начале программного текста перед функцией main и после директив #include.
Локальные переменные описываются внутри функции и известны только в той функции, в которой они описаны.
Локальные переменные всегда описываются в начале функции перед выполняемыми операторами.
-Требования к памяти.
Ниже приведены требования к памяти для основных типов данных:
Тип Память в байтах Диапозон
char 1 байт от -128 до 127
int
short 2 байта от -32,768 до 32,767
long 4 байта от -2,147,482,648 до 2,147,482,647
unsinedchar 1 байт от 0 до 255
unsined
unsinedshort 2 байта от 0 до 65,535
unsinedlong 4 байта от 0 до 4,294,967,295
float 4 байта от +3.4E-38 до 3.4E+38
double 8 байт от +1.7E-308 до 1.7E+308
Примечание: Если требования к памяти или диапозон не определены, значит они зависят от конкретного применения.
Зависят от применения типы int и unsigned. Для семейства микропроцессоров 8086 и 80286 тип int эквивалентен типу short, а тип unsigned-типу unsignedshort.
-Регистровые переменные.
Регистровые переменные-это целое или указатель, хранимые в машинном регистре. Такая память ускоряет выполнение программы посредством увеличения скорости доступа к переменным.
Если не имеется свободных регистров, описания е будет сделано, но регистр не будет использоваться для хранения.
5. Описание констант
Константами называются перечисление величин в программе. В языке СИ разделяют четыре типа констант: целые константы, константы с плавающей запятой, символьные константы и строковыми литералы.
Целая константа: это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целую величину в одной из следующих форм: десятичной, восьмеричной или шестнадцатеричной.
Десятичная константа состоит из одной или нескольких десятичных цифр, причем первая цифра не должна быть нулем (в противном случае число будет воспринято как восьмеричное).
Восьмеричная константа состоит из обязательного нуля и одной или нескольких восьмеричных цифр (среди цифр должны отсутствовать восьмерка и девятка, так как эти цифры не входят в восьмеричную систему счисления).
Шестнадцатеричная константа начинается с обязательной последовательности 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр (цифры представляющие собой набор цифр шеснадцатеричной системы счисления: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
Если требуется сформировать отрицательную целую константу, то используют знак "-" перед записью константы (который будет называться унарным минусом). Например: -0x2A, -088, -16 .
Каждой целой константе присваивается тип, определяющий преобразования, которые должны быть выполнены, если константа используется в выражениях.
6.Операции отношений
В Си используется тот же набор операций отношения, что и в Паскале. Следует лишь обратить внимание на различие в записи операций «равно» и «не равно».
< меньше,
<= меньше или равно,
> больше,
>= больше или равно,
равно,
!= не равно.
Как уже говорилось раньше, в стандарте Си нет логического типа данных. Поэтому результатом операции отношения является целое число: если отношение истинно — то 1, если ложно — то 0.
Примеры отношений:
а<0, 101>=105, 'а'=='А\ 'а'!='А'
Результатом второго и третьего отношений будет 0 — ложь; результат четвертого отношения равен 1 — истина; результат первого отношения зависит от значения переменной а.
7. Логические операции
Три основные логические операции в языке Си записываются иначе, чем в Паскале.
! операция отрицания (НЕ),
&& конъюнкция, логическое умножение (И),
| | дизъюнкция, логическое сложение (ИЛИ).
Правила их выполнения определяются таблицей истинности
Например, логическое выражение, соответствующее системе неравенств 0 <х< 1 в программе на Си запишется в виде следующего логического выражения:
х>0 && х<1
Обратите внимание на то обстоятельство, что здесь не понадобились круглые скобки для выделения операций отношения. В отличие от Паскаля, где операции отношения имеют самый низкий приоритет, в Си операции отношения старше конъюнкции и дизъюнкции. Помимо рассмотренных в Си имеются поразрядные логические операции. Эти операции выполняются над каждой парой соответствующих двоичных разрядов внутреннего представления операндов. Их еще называют битовыми логическими операциями. Знаки битовых логических операций:
183 & поразрядная конъюнкция (И),
| поразрядная дизъюнкция (ИЛИ),
л поразрядное исключающее ИЛИ,
~ поразрядное отрицание (НЕ).
Битовые логические операции вместе с операциями поразрядного сдвига влево (<<) и вправо (>>) позволяют добраться до каждого бита внутреннего кода. Чаще всего такие действия приходится выполнять в системных программах.
8. Операции присваивания
То, что присваивание в Си является операцией, а не оператором, оказывается, наверное, самой большой неожиданностью для знатоков Паскаля. А между тем это действительно так! Знак операции присваивания =. Следствием отмеченного факта является то, что присваивание, как любой другой знак операции, может несколько раз входить в выражение. Например:
а=ю=с=х+у;
Присваивание имеет самый низкий приоритет (ниже только у операции «запятая»). Кроме того, операция присваивания — правоассоциативная. Это значит, что несколько подряд расположенных присваиваний выполняются справа налево. Поэтому в приведенном выше выражении первой выполнится операция сложения, затем переменной с присвоится значение суммы, затем это значение присвоится переменной / > и в конце — переменной а. В языке Си имеются дополнительные операции присваивания, совмещающие присваивание с выполнением других операций. Среди них: +=, -=, /=, *=, %=. Приоритет у них такой же, как и у простого присваивания.