- •Часть 1
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Часть 2 184
- •Пояснительная записка
- •Содержание дисциплины
- •Индивидуальные практические работы, их характеристика
- •Контрольные работы, их характеристика
- •Литература
- •Основная
- •Дополнительная
- •Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Учебно-методические пособия
- •Алфавит языка
- •Лексемы
- •Идентификаторы
- •Ключевые слова
- •Знаки операций
- •Константы
- •Комментарии
- •Тема 2. Типы данных Концепция типа данных.
- •Простые типы данных
- •Целый тип int
- •Символьный тип char
- •Типы с плавающей точкой: float, double, long double
- •Тема 3. Выражения
- •Переменные
- •Именованные константы
- •Операции
- •Операции присваивания
- •Инкремент и декремент
- •Унарный плюс и унарный минус (строка 2)
- •Явное преобразование типа
- •Операция определения размера sizeof
- •Деление и остаток от деления
- •Логические операции не, и, или (!, &&, ||)
- •Условная операция (?:)
- •Операция запятая (,)
- •Операции взятия адреса и разадресации
- •Тема 4. Операторы
- •Структура программы
- •Тема 5. Базовые конструкции структурного программирования
- •Операторы ветвления
- •1. Условный оператор if
- •2. Оператор switch
- •Операторы цикла
- •1. Цикл с предусловием while
- •2. Цикл с постусловием do-while
- •3. Цикл с параметром for
- •Тема 6. Массивы
- •Тема 7. Указатели и массивы
- •Тема 8. Строки символов
- •Тема 9. Структуры
- •Массивы структур
- •Битовые поля
- •Объединения
- •Перечисления
- •Тема 10. Функции
- •Глобальные, локальные и статические переменные
- •Параметры функции
- •Передача массивов в качестве параметров функции
- •Функция main, ее параметры
- •Функции стандартной библиотеки
- •Функции форматного вывода и ввода printf и scanf
- •Тема 11. Файлы
- •Тема 12. Работа с динамической памятью
- •Тема 13. Динамические структуры данных
- •Очереди
- •Линейные списки
- •Бинарные деревья
- •Практический раздел Общие указания Указания по выбору варианта
- •Порядок оформление итогового отчета
- •Индивидуальные практические работы Индивидуальная практическая работа 1 Методические указания
- •Варианты заданий.
- •Индивидуальная практическая работа 2 Методические указания
- •Варианты заданий
- •Контрольные работы Контрольная работа 1 Методические указания
- •Варианты заданий
- •Контрольная работа 2 Методические указания
- •Варианты заданий
Комментарии
Комментарии предназначены для записи пояснений к программе и формирования документации.
Комментарий помещвется между парами символов /* и */. Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка С, поскольку компилятор комментарии игнорирует. Вложенные комментарии стандартом не допускаются.
Тема 2. Типы данных Концепция типа данных.
Основная цель любой программы состоит в обработке данных, которые хранятся в оперативной памяти. Данные различного типа хранятся и обрабатываются по-разному. В любом языке программирования каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип. Тип данных однозначно определяет:
внутреннее представление данных в памяти компьютера и, следовательно, диапазон их возможных значений;
допустимые действия над данными (какие операции и функции можно применять к величинам этого типа).
Исходя из этого, программист выбирает тип каждой величины, используемой в конкретной программе для представления реальных объектов. Кроме того, описание типа данных позволяет компилятору производить проверку допустимости различных конструкций программы.
Все типы данных языка С можно разделить на простые и составные. Имеется четыре простых типа для представления целых, вещественных и символьных величин. На основе этих типов программист может вводить описание составных типов. К ним относятся массивы, структуры, перечисления, функции, указатели, ссылки, объединения и поля битов.
Простые типы данных
Простые или встроенные типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания простых типов определены следующие ключевые слова:
int (целый);
char (символьный);
float (вещественный);
double (вещественный с двойной точностью).
Первые два типа называют целочисленными, последние два – типами с плавающей точкой. Внутреннее представление величины целочисленного типа – это целое число в двоичном коде, например:
0 … 011100101(2) = 20 + 22 + 25 + 26 + 27 = 1 + 4 + 32 + 64 + 128 = 229(10)
Типы данных с плавающей точкой хранятся в памяти компьютера иначе, чем целочисленные и состоят из двух частей – мантиссы и порядка, причем каждая часть имеет знак. Длина мантиссы определяет точность представления числа, а длина порядка –диапазон его изменения. В первом приближении это можно представить так: например, для числа 0.381×104 мантисса равна 381, порядок равен 4; для числа 560.3×102 = 0.5603×105 мантисса равна 5603, порядок равен 5; число 0.012 = 0.12 ×10-1 имеет мантиссу 12 и порядок -1.
Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений простых типов:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
Целый тип int
Размер типа int не определяется стандартом, а зависит от длины разрядной сетки процессора компьютера. Для современных 32-разрядных персональных компьютеров под величины этого типа отводится 4 байта (в будущих 64-разрядных персональных компьютерах этот тип будет иметь длину 8 байт).
Спецификатор short перед именем типа int указывает компилятору, что под число требуется отвести 2 байта независимо от разрядности процессора, а спецификатор long перед int означает, что будет отведено 4 байта. Таким образом на 32-разрядном процессоре типы int и long int эквивалентны.
При использовании спецификатора signed старший бит числа интерпретируется как знаковый (0 – положительное число, 1 – отрицательное число). Спецификатор unsigned позволяет представлять только положительные числа, поскольку старший разряд рассматривается как часть кода числа.
Все целочисленные типы по умолчанию считаются знаковыми, то есть спецификатор signed можно опускать. В свою очередь, типы short int, long int, unsigned int можно сокращать до short, long, unsigned соответственно.