- •3. Правила формального описания синтаксиса языка программирования
- •5. Идентификаторы языка Си
- •6. Понятие функции. Стандартная функция printf.
- •7. Стандартная функция scanf
- •8. Простейшие арифметические операции.
- •9. Операция присваивания. Оператор - выражение.
- •10. Использование в выражениях операндов разных типов. Операция преобразования типов.
- •11. Стандартные математические функции.
- •12. Простейшие функции, определяемые программистом.
- •13. Дополнительные арифметические операции. Дополнительные операции присваивания.
- •14. Побитовые операции.
- •15. Операции отношения. Операция определения размера данных.
- •16. Приоритеты операций.
- •17. Понятие о препроцессоре языка Си: директива «include», директива «define».
- •18. Основные положения структурного программирования. Понятие оператора (statement). Пустой и составной операторы.
- •19. Условный оператор и условная операция.
- •20. Оператор цикла «while». Оператор прерывания цикла. Оператор продолжения цикла. Множественный выбор. Оператор переключения.
- •21. Оператор цикла «do-while».
- •22.Перечисления. Работа с клавиатурой ibm pc
- •23. Массивы. Описание массива.
- •24. Ввод-вывод массива
- •25. Инициализация массива
- •26. Программа вычисления длины строки символов
- •32. Двумерные массивы (массивы массивов)
- •32. Адресная арифметика языка Си
- •33. Указатели и одномерные массивы
- •34. Указатели и двумерные массивы
- •35. Указатели и функции
- •36. Оператор typedef
- •39. Области видимости и глобальные данные
- •40. Время жизни переменных и классы памяти языка Си
- •41. Передача аргументов в функцию
- •42. Возврат значений из функций
- •47. Общий случай двумерного массива.
- •48. Особенности работы с массивами большого размера
- •49. Описание структуры.
- •50. Трактовка имени структуры.
- •51. Доступ к элементу структуры.
- •52. Инициализация структур.
- •53. Структуры и функции.
- •54. Поля бит в структурах.
- •55. Объединения.
- •56. Динамические данные.
- •57. Линейные списки.
- •58. Организация данных в виде стека.
- •59. Организация данных в виде очереди.
- •60. Организация данных в виде деревьев.
Язык программирования Си. Лекции. Прасолов А.Н.
3. Правила формального описания синтаксиса языка программирования
Под синтаксисом языка программирования понимают правила построения корректных конструкций данного языка. Синтаксис языка можно описать формально. Для этого удобно использовать расширенную форму Бэкуса-Наура (БНФ), которая состоит из ряда следующих обозначений и правил:
1)символы в кавычках переносятся в конструкцию языка так, как они записаны. Кавычки при этом отбрасываются. 2)имена, записанные слитно русскими и латинскими буквами, обозначают различные конструкции языка. Например, оператор_цикла;
3)квадратные скобки охватывают элементы языка, которые могут повторяться 0 или 1 раз.
4)фигурные скобки охватывают элементы языка, которые могут повторяться 0 или много раз.
5)символ | обозначает или, то есть используется для задания альтернативных значений
6)круглые скобки используются для группировки.
7)многоточие используется для обозначения очевидных пропущенных значений в перечислении;
8)символ = обозначает - слово есть.
5. Идентификаторы языка Си
Идентификаторы или имена служат для обозначения различных объектов программ: переменных (ячеек памяти), адресов, функций, файлов и т.д., иначе говоря - данных и действий над данными.Имена должны начинаться с букв латинского алфавита или знака подчеркивания, далее допускается использовать и арабские цифры:
БНФ:
имя = ( буква | "_" ) { буква | цифра | "_" }
буква = |"A"|"B"|...|"Y"|"Z"|"a"|"b"|...|"y"|"z" цифра = "0"|"1"|...|"9"
4. Основные типы данных языка Си. Правила записи констант различных типов. Беззнаковый тип для целых данных. Символьные строки. В языке Си предопределены несколько имен типов БНФ: имя_типа = "int" | "short" | "long" | "char" |"float" | "double". Целые: int, short, long, char. Вещественные: double, float, long double.
Константы - это объекты данных, которые не меняют своих значений в процессе выполнения программы. Имя константы однозначно определяет и ее тип, и ее значение.
Рассмотрим правила их записи.
БНФ:
целая_константа = ( десятичная | восьмеричная | шестнадцатеричная ) десятичная = ("1"|"2"…|"9") {цифры}
восьмеричная = "0" цифра8 {цифра8}
шестнадцатеричная = "0х" {"0" |"1"|… "A" … "F" }
БНФ:
вещ_константа = цифра {цифра} "." {цифра} [ "e" [ "+" | "-" ] цифра {цифра} ]
Символьной константой является любой символ, заключенный в апострофы: 'A', 'c', 'd'. Значение символьной константы - величина целого типа, равная коду символа из таблицы кодов.
'\n' - символ перевода строки,
'\r' - символ возврата каретки,
'\t' - символ табуляции,
'\b' - символ возврата на шаг,
'\\' - обратная косая черта,
'\"' - кавычки,
'\0' - символ с кодом 0.
БНФ:
имя_беззнакового_типа =
"unsigned "("int"|"long"|"short"|"char" )
Пример:
unsigned int ab, c, d;
Последовательность символов, заключенная в двойные кавычки, представляет собой символьную строку.
6. Понятие функции. Стандартная функция printf.
Под функцией понимают часть программы, которая реализует вполне законченный алгоритм, и может быть вызвана (то есть, запущена) из любого места программы. Функции могут возвращать значения, тогда и вызов может быть использован в любом месте где допустимо использ значений соответств типа.
Функция предназначена для вывода информации на стандартное устройство вывода (stdout), которым обычно является экран дисплея.
БНФ:
"printf" "(" формат { "," аргумент } ")"
Формат - это адрес строки символов, которая выводится в стандартное устройство вывода.
В строке символов могут присутствовать спецификации преобразования данных, каждой из которой должен соответствовать аргумент. спецификации преобразования:
%d - для вывода целых чисел;
%c - для вывода образа символа, соответствующий аргумент должен содержать код символа;
%f - для вывода вещественного числа в виде целой и дробной части;
%e - для вывода вещественного числа в виде мантиссы и порядка;
%g - для вывода вещественного числа в виде %f или %e в зависимости от значения числа;
%u - для вывода беззнакового целого числа в десятичной системе счисления;
%o - для вывода беззнакового целого числа в восмеричной системе счисления;
%x - для вывода беззнакового целого числа в шестнадцатеричной системе счисления;
%s - для вывода на экран символьной строки, соответствующий аргумент должен быть адресом строки (т.е. именем символьного массива или строковой константой).