- •Введение.
- •Понятие формального алгоритма.
- •Абстрактная машина.
- •Диалоговые программы.
- •Структурное программирование.
- •Информация.
- •Программа на языке высокого уровня.
- •Интерпретатор – покомандно или построчно считывает программу на исходном языке, переводит на машинный язык и отправляет на выполнение.
- •Интерпретатор языка командной строки.
- •Критерии качества программы.
- •Императивные и декларативные языки.
- •Надежность по.
- •Жизненный цикл по.
- •Структурное программирование.
- •Язык программирования с.
- •Алфавит.
- •Константы.
- •Void – пусто. Используется для обозначения отсутствия возвращаемого значения функции.
- •Данные.
- •Int а[10][7];массив из 10 элементов типа массив, из элементов типа int
- •Структура.
- •Extern. Внутренняя переменная.
- •Динамическая структура данных. Синтаксическое и динамическое распределение памяти.
- •Формальные параметры.
- •Тело функции.
- •Вызов функции.
- •Фактические аргументы.
- •Использование файлов в языка программирования с.
- •Директивы препроцессора. Указания компилятора.
- •Именованные константы. Макроопределения.
- •Проектирование интерфейса.
- •Блок схемы.
- •Символы процесса.
Константы.
-
Целые: десятичные, 8-ные, 16-ные
Десятичные(0-9) без лидирующего 0
8-ные (0-7)
Первая цифра 0:16≠016
16-ные (0-9, A-F)
Строчные прописные буквы не различаются, пробельные символы не допускаются. Все целые константы положительные.
Если требуются отрицательные, то записывают выражение унарный минус положительная константа.
Целая константа- тип, занимающий минимальный размер памяти необходимый для хранения данной величины.
Максимальная целая константа =
Если константа превосходит это значение, то она хранится как длинное целое.
Если необходимо сохранить целую константу как длинное целое, то дописывается суффикс L к константе.
0 – занимает 2 байта
0L - 4 байта
-
С плавающей точкой
Десятичное положительное число, включающее целую, дробную части и экспоненту. Дробная часть определяется точкой, е – экспонента.
Десятичная точка или знак е могут быть опущены.
Если оба символа опущены, то константа целая. Константа с плавающей точкой: положительное значение, тип double.
-
Символьные константы.
Буквы, цифры, специальные символы, заключенные в апостроф. Значение символьной константы равно коду представленного символа.
Тип хранения – целый.
Младший байт – код символа, старший – знаковое расширение младшего байта.
-
Строковая константа.
Последовательность символов, заключенная в кавычки. Символьная строка – одномерный массив символов, ограниченный в конце символом конца строки (‘\0’)
В строке допускается наличие символов, не имеющих экранной интерпретации. Для них \ не рассматривается.
Для кодирования \ используется \\
-
Идентификаторы.
Относят имена переменных, функций, метод (используемый в программе) идентификатором является последовательность букв или цифр, начинающаяся с буквы. Символ подчеркивания ( __ )относят к буквам.
Строчные и прописные символы различны.
В большинстве реализаций компиляторов С идентификаторы считаются идентичными, если 1-ые n- символов совпадают.
Ключевые слова: являются лексические единицы, имеющие вид постоянных идентификаторов. Эти слова зарезервированы и не могут использоваться в качестве идентификаторов объектов.
Авто (auto)
Класс памяти auto по умолчанию.
Класс памяти определяет время жизни и область действия объекта. В принятой фон-неймановской архитектуре для хранения данных может использоваться стек данных, сегмент данных и динамически распределяемая память, называемая кучей.
Стек – структура данных, доступ к которой осуществляется с дисциплиной обслуживания LIFO. Использование стека для хранения переменных позволяет выделять память только во время выполнения модуля и освобождать её при выходе из него.
Сегмент данных – зарезервированная область памяти, в которой объекты хранятся в течение всего времени существования сегмента, который выделяется в программе при её загрузке на выполнение.
Динамическая память – вся доступная ОС, свободная в момент выполнения программы, оперативная память. Размещение в ней объектов происходит в программе по запросу вызовом функции ОС.
Переменная описанная как класс памяти auto , имеет локальную область действия с места объявления до конца блока, в котором она объявлена (время существования определяется временем жизни блока, в котором она объявлена). При выходе из блока стековая память, отведенная под неё, освобождается.
Break - оператор прерывания выполнения циклической постоянной последовательности и выхода из группы альтернатив оператора выбора. Управление передается на оператор следующий за концом передаваемого оператора.
Сase – часть оператора выбора. Означает начало значения условной переменой, анализируемой в операторе выбора.
Char – символьный тип данных.
Continue – оператор передачи управления из тела цикла на оператор определения условия продолжения цикла.
Default – часть оператора выбора. Определяет действие, выполняемое при отсутствии среди альтернативного значения условной переменной оператора выбора. Аналог :else из оператора if
Else – часть оператора условия. Наало альтернативной ветви.
Enum – перечислимый тип данных. Представляет собой подмножество целого типа. Позволяет определить последовательность целых значений, которые присваиваются идентификатором (перечисление красного(0), желтого(1), черного(2)). Переменная х этого типа должна принимать должна принимать значения либо 0, либо 1, либо 2. При записи можно использовать идентификаторы.
Extern – класс памяти. Переменная данного класса должна иметь описание на внешнем уровне. Объявляя внутри файла переменную данного класса, вы сообщаете компилятору, что её определения надо искать в другом файле.
Float – тип данных с плавающей точкой с плавающей точкой одинарной точности.
For – оператор цикла (паскаль – оператор с известным количеством повторений, Си – универсальный оператор).
Goto – оператор безусловного перехода. Передает управление на оператор, помеченный меткой, указанной в качестве операнда. Не рекомендуется использовать. Любой безусловный переход можно заменить с помощью структурных процедурных скобок.
Int – целый тип данных.
Long – префикс к основному типу, означающий увеличение точности в 2 раза.
If – начало оператора условия.
Register – класс памяти. Переменная данного класса по возможности размещается в регистре общего назначения для ускорения доступа к ней. Если свободных регистров нет, то используется класс памяти auto.
Return – оператор выхода из функции. Передает управление на оператор, следующий за вызовом функции. Если тип возвращаемого значения операнда оператора return.
Short – префикс уменьшения точности.
Signed – префикс к целому типу, означающий целое со знаком (хранится в дополнительном коде).
Дополнительный код используется для отрицательных чисел. Представляет собой дополнение числа до к- система счисления, n – число разрядов для представления числа.
-5=-251
Использование дополнительного кода позволяет заменить операцию вычитания операцией сложения. Для этого прямой код переводят в обратный и к младшему разряду+1.
510=101пр=11111010доп=25110
static – статический класс памяти. Переменная этого класса размещается в сегменте данных. Время жизни соответствует времени жизни программы. Область действия ограничивается блоком , в котором они описаны.
struct – тип данных, предназначенных для хранения в 1 объекте значений различного типа.
Switch – переключатель оператора выбора. В соответствии со значением условного выражения позволяет выбрать 1 из нескольких альтернатив.
Union – (объединение) тип данных предназначенных для хранения 2 и более объектов по 1 и тому же адресу. Если в структуре поля , элементы структуры занимают каждая свою область, то в объединении они размещаются в 1 области., и способ интерпретации значений определяется непосредственно при обращении. Объединение может быть использовано для доступа к отдельным байтам представления значения типа float.
Typedef – используется для назначения типу уникального имени. Необходим для повышения читабельности программы.
Unsigned – беззнаковый