- •Часть 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 Методические указания
- •Варианты заданий
Алфавит языка
Алфавит языка С включает в себя:
прописные и строчные латинские буквы, а также символ подчеркивания, который используется наряду с буквами;
арабские цифры от 0 до 9;
специальные символы, например +, *, {, & и др. (фактически используются все специальные символы на клавиатуре персонального компьютера за исключением @ и $);
пробельные символы (пробел, табуляция);
символ перехода на новую строку.
Лексемы
Из символов алфавита формируются лексемы языка, которые подразделяются на:
идентификаторы;
ключевые (зарезервированные) слова;
знаки операций;
константы;
разделители, к которым относятся: скобки, точка, запятая, пробельные символы, символ перехода на новую строку.
Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.
Идентификаторы
Идентификатор – это имя программного объекта. Идентификаторы в программах служат той же цели что и имена в мире людей, – чтобы обращаться к программным объектам и различать их. В идентификаторе могут использоваться латинские буквы, цифры и символ подчеркивания. Первым символом идентификатора может быть буква или символ подчеркивания, но не цифра. Прописные и строчные буквы различаются, например, system, System и SYSTEM – три различных имени. Пробелы внутри имен не допускаются. Для улучшения читаемости программы следует давать ее объектам осмысленные имена. Понятные и согласованные между собой имена – основа хорошего стиля программирования. Например:
a = b * c; // это неудачный выбор имен переменных
Cost = Price * Quantitty; //или Stoi = Cena * Kol;
Ключевые слова
Ключевые слова – это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. В языке С используются следующие ключевые слова:
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
Знаки операций
Знак операции – это один или более символов, определяющих некоторое конкретное действие над данными (или, как их еще называют, операндами). Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Внутри знака операции пробелы не допускаются. Один и тот же знак операции может интерпретироваться по-разному в зависимости от контекста.
Рассмотрим наиболее распространенные операции: +, -, *, /. Из них две последние операции являются бинарными, а две первые – могут быть как бинарными, так и унарными, например:
a = -5;
a = b – 5;
Константы
Константами называются неизменяемые величины. Различают целые, вещественные, символьные и строковые константы. Компилятор, выделив константу в качестве лексемы, относит ее к одному из названных типов. Константы записываются следующим образом.
Целая десятичная константа есть последовательность десятичных цифр, начинающаяся не с нуля, если только это не число ноль. Например:
1
93
1372
Целая восьмеричная константа начинается нулем, за которым следуют восьмеричные цифры 0,1,…,7. Цифры 8 и 9 недопустимы. Например (для тех же чисел):
01
0135
02534
Целая шестнадцатиричная константа начинается парой символов 0x или 0X, за которыми следуют шестнадцатиричные цифры 0,1,…,9,A,B,C,D,E,F. Например (для тех же чисел):
0x1
0x5D
0x55C
Вещественные константы записываются только в десятичной системе счисления и имеют две формы представления.
1) Вещественная константа с фиксированной точкой содержит две части – целую и дробную, которые разделяются точкой. Если какая-либо из частей равна нулю, ее можно опустить (но не обе сразу), например:
5.7
.001
357.
9.0
0. или .0 или 0.0
2) Вещественная константа с плавающей точкой (экспоненциальный формат) представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (E или e), порядок – справа от этого знака. Значение константы определяется как произведение мантиссы и числа 10, возведенного в указанную в порядке степень. Пробелы внутри числа не допускаются, а для отделения целой части мантиссы от дробной используется точка. Например:
1.3Е2 = 1.3 × 102 = 130
.11е-3 = 0.11 × 10-3 = 0.00011
5Е10 = 5 × 1010 = 50000000000
Символьная константа представляет собой символ, заключенный в апострофы или два заключенных в апострофы символа, первый из которых есть обратная косая черта, например: ‘A’, ‘ю’, ‘#’, ‘+’, ‘\n’, ‘\t’. Символ обратной косой черты используется:
для представления кодов, не имеющих графического изображения, например:
\a – звуковой сигнал,
\b – возврат на шаг,
\f – перевод страницы,
\n – перевод курсора в начало следующей строки,
\r – возврат каретки,
\t – горизонтальная табуляция,
\v – вертикальная табуляция;
для представления символов: обратной косой черты (\), апострофа (‘), кавычки (“), знака вопроса (?). При этом записи ‘\’ и ‘’’ недопустимы и должны быть записаны как ‘\\’ и ‘\’’.
Кроме того, любая символьная константа может быть представлена с помощью кодирующего символ восьмеричного или шестнадцатиричного кода. Восьмеричный код задается одой, двумя или тремя восьмеричными цифрами, например:
‘\112’ (то же, что и ‘G’)
‘\7’ (то же, что и ‘\a’ - звуковой сигнал)
Шестнадцатиричный код задается одной или двумя шестнадцатиричными цифрами, снабженными префиксом x, например:
‘\xF5’ (то же, что и ‘G’)
‘\x7’ (звуковой сигнал)
Поскольку символьная константа есть число, то вполне допустимым будет оператор:
x = 10 + ‘A’; //соответствует: x = 10 + 65;
Строковая или текстовая константа есть последовательность символов, заключенная в кавычки, например:
“Мы изучаем язык С”
“\tЗначение x = 100\n”
Если внутри строки используются кавычки, их предваряют обратной косой чертой, по которой компилятор отличает их от кавычки, ограничивающей строку, например:
“Издательский дом \”Питер \“”
В конец каждой строковой константы компилятором добавляется не имеющий графического изображения так называемый нуль-символ, представляемый парой символов \0. Поэтому длина строковой константы всегда на единицу больше количества символов в ее записи. Таким образом, пустая строка “” на самом деле имеет длину 1. Если сравнить строковую константу из одного символа, например “A”, и символьную константу ‘A’, то они имеют разную длину (соответственно 2 и 1). В отличие от пустой строки, пустая символьная константа (т.е. ‘’) недопустима.