Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмы.rtf
Скачиваний:
2
Добавлен:
31.07.2019
Размер:
188.8 Кб
Скачать

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. Операции присваивания

То, что присваивание в Си является операцией, а не оператором, оказывается, наверное, самой большой неожиданностью для знатоков Паскаля. А между тем это действительно так! Знак операции присваивания =. Следствием отмеченного факта является то, что присваивание, как любой другой знак операции, может несколько раз входить в выражение. Например:

а=ю=с=х+у;

Присваивание имеет самый низкий приоритет (ниже только у операции «запятая»). Кроме того, операция присваивания — правоассоциативная. Это значит, что несколько подряд расположенных присваиваний выполняются справа налево. Поэтому в приведенном выше выражении первой выполнится операция сложения, затем переменной с присвоится значение суммы, затем это значение присвоится переменной / > и в конце — переменной а. В языке Си имеются дополнительные операции присваивания, совмещающие присваивание с выполнением других операций. Среди них: +=, -=, /=, *=, %=. Приоритет у них такой же, как и у простого присваивания.