- •4.Элементы языка Си. Символы, лексемы, знаки операций.
- •1.Символы языка
- •2.Лексемы
- •5.Элементы языка Си. Константы, идентификаторы, ключевые слова, комментарии.
- •6.Типы данных.
- •7.1,Объявление переменных. Массивы.
- •7.2,Объявление переменных. Массивы.
- •9.1,Операции и выражения. Арифметические операции
- •11. Логические операции и операции отношения. Операции присваивания
- •12.Условное выражение. Операция Sizeof. Операции приведения типов type.
- •13.1,Преобразование типов в выражения. Правила приведения типов.
- •13.2,Преобразование типов в выражения. Правила приведения типов.
- •14.1, Управление вычислительными процессами. Конструкции if-else, else-if.
- •14.2, Управление вычислительными процессами. Конструкции if-else, else-if.
- •15.Переключатель
- •16. Операторы цикла.
- •17.1.Инструкции break, continue. Инструкция goto и метки. Пустой оператор
- •17.2.Инструкции break, continue. Инструкция goto и метки. Пустой оператор
- •Пустой оператор
- •18.1.Классы памяти.
- •18.2.Классы памяти.
- •19.1. Функции. Определение ф-ций.
- •Определение ф-ции
- •19.2. Функции. Определение ф-ций.
- •21. Структура программы на языке Си
- •22. Директивы #define и # undef.
- •24,Директивы препроцессора. Препроцессорные операции.
- •Препроцессорные операции
- •25.1, Указатели.Операции &,*.
- •25.2, Указатели.Операции &,*.
- •26. Указатель на неопределенный тип.
- •27.1,Выражения и операции с указателями. Присваивание указателей
- •Сравнение указателей
- •27.2,Выражения и операции с указателями. Применение арифметических операций к указателям
- •29. Массивы и указатели.
- •30.Операции с указателями на массив. Адресная арифметика.
- •32.Массивы указателей. Указатели на указатели.
- •33.Массивы указателей на строки.
- •34.1,Передача параметров из операционной среды.
- •34.2,Передача параметров из операционной среды.
- •36.1,Динамичное распределение памяти.
- •36.2,Динамичное распределение памяти.
- •37,1,Структуры. Операции над структурами
- •37,2,Структуры. Операции над структурами
- •38.Массив структур. Правило выравнивания структурных переменных в памяти
- •39.1,Переименование типов. Средство typedef.
- •39.2,Переименование типов. Средство typedef.
- •40.Поля битов.
- •41.1,Объединения
- •41.2,Объединения
- •42.Ввод, вывод потока.
- •43.Доступ к файлам через поток ввода/вывода.Открытие потока.Закрытие потока.
- •44.1,Доступ к файлам через поток ввода/вывода.Функция потокового ввода вывода.
- •44.2,Доступ к файлам через поток ввода/вывода.Функция потокового ввода вывода.
- •45,Последовательный и прямой доступ в поток.
13.2,Преобразование типов в выражения. Правила приведения типов.
переменной слева от знака присваивания. В этом случае может произойти преобразование от старшего типа к младшему.
Знаковые операнды.
Литера превращается в целое посредством размножения знаков(int, unsigned int, long, unsigned long).Преобразование целых типов в типы с плавающей точкой происходят по специальным библиотечным процедурам с заполнением свободных битов нулями. Это преобразование всегда корректно. Преобразование типа с плавающей точкой в целые типы выполняется по библиотечным процедурам и дает ближайшее целое(т.е. дробная часть отбрасывается, какой бы она не была ).
Int I; float f = 3.8;
I = f; [3]
Преобразование старших целых типов в младшие выполняется отбрасыванием старших битов.
Операции приведения типов.(type)
Все выше перечисленные операции приведения типов выполняются автоматически при смешивании в одном выражении операндов разных типов( неявное риведение типов). В Си позволяется задавать явное приведение типов, используя унарную операцию type.
выр.(любой тип Си)
Эта операция приводит выражение к типу справа
Sqrt((double)n);
Операция приведения типов не изменяет типа аргумента,а лишь вырабатывает выражение этого типа.
14.1, Управление вычислительными процессами. Конструкции if-else, else-if.
Инструкцией в языке Си наз любое выражение ,заканчивающееся ; Инструкции могут быть простыми и составными. Составная инструкция или блок- это любая совокупность простых инструкций, заключенных в {}
{[объявление]
инструкция
[инструкция]…
}
Инструкция ветвления
Выбирает из группы альтернатив возможное выполнение продолжения вычислительного процесса.
В Си эти инструкции организованы как :
If- else, switch
1.if-else
if(выр) инструкция1
[else инстр2]
Вначале вычисляется выражение . если оно истино(!=0), то выполняется инстр1, если выражение ложно, то выполняется инстр2. Если else нет, то выполняется следующая за if инструкция.
Допускаются вложенные инструкции if- else. При вложенных инструкциях else- часть связывается с ближайшим if , у к-рого нет своего else.
Конструкция else-if
if(выр)
инстр.
еlse if(выр)
инстр.
- - -
еlse if(выр)
инстр.
еlse инстр.
Эта конструкция представляет собой последовательность инструкций if-else и используется для многоступенчатого принятия решения. Выражения вычисляются попорядку, как только встречается выр = true выполняется его инструкция. На этом последовательность проверок прекращается. Последняя else
14.2, Управление вычислительными процессами. Конструкции if-else, else-if.
срабатывает, если все выражения ложны и используеся для фиксации ошибочной ситуации.
15.Переключатель
Инструкцией в языке Си наз любое выражение ,заканчивающееся ; Инструкции могут быть простыми и составными. Составная инструкция или блок- это любая совокупность простых инструкций, заключенных в {}
{[объявление]
инструкция
[инструкция]…
}
Инструкция ветвления
Выбирает из группы альтернатив возможное выполнение продолжения вычислительного процесса.
В Си эти инструкции организованы как :
If- else, switch
Переключатель switch
предназначена для выбора одного из различных вариантов
switch (выр){[объявления]
case конст_выр : [инструкции]
[case конст_выр : [инструкции]]
[default : [инструкции]]}
Выражение следующее за switch может быть любым целым выражением. Значение этого выражения явл критерием для выбора одного из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помеченых словом case. Обычно в качестве конст_выр используются целые или символьные константы.
В операторе switch может быть только одна ветвь, помеченная default. Она не обязательно должна стоять последней.
Схема выполнения оператора switch
1)вычисляется выр в скобках
2)вычисленное значение последовательно сравнивается с конст_выр
3)если сравнение найдено, то выполняются соответствующие инструкции
4)если сравнение не найдено и есть ветвь default, то выполняется ее инструкция
5)если сравнение не найдено и ветви default нет, то выполняется следующий за switch оператор.
Т.к. выбор ветви case реализован как переход на метку, то после выполнения одной ветви case будут выполняться другие инструкции ветвей case до конца операции. Немедленный выход из переключателя осуществляется с помощью инструкции break;
Char sign;
Int x,y,z;
Switch(sign){
Case’+’: z=x+y;break;
Case’-’: z=x-y;break;
Case’*’: z=x*y;break;
Case’/’: z=x/y;break;
Default: prinf(“ошибочный знак операции\n”)}
Для того чтобы выполнить одни и те же действия для различных значений выражения, можно пометить один и тот же оператор разными case.Допускается использование вложенных операторов switch. В этом случае в ветвях case внешнего и внутреннего операторов допускаются одинаковые конст_выр.