- •Язык программирования Си
- •7. Понятие о препроцессоре языка Си 29
- •8. Операторы языка Си и приемы программирования 30
- •9. Массивы. Адресная арифметика языка Си 51
- •Правила записи программы на языке Си
- •Правила формального описания синтаксиса языка программирования
- •Идентификаторы языка Си
- •Понятие о типах данных.
- •Системы счисления. Представление данных в эвм.
- •Основные типы данных языка Си
- •Правила записи констант различных типов
- •Беззнаковый тип для целых данных
- •Символьные строки
- •Понятие функции
- •Стандартная функция printf
- •Стандартная функция scanf
- •Операции и выражения
- •Простейшие арифметические операции
- •Операция присваивания
- •Оператор-выражение
- •Использование в выражениях операндов разных типов
- •Операции преобразования типов
- •Стандартные математические функции
- •Простейшие функции, определяемые программистом
- •Дополнительные арифметические операции
- •Дополнительные операции присваивания
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операция определения размера данных
- •Приоритеты операций
- •Понятие о препроцессоре языка Си
- •Операторы языка Си и приемы программирования
- •Оператор цикла while
- •Условный оператор и условная операция
- •1) Короткие операторы:
- •2) Группы коротких операторов:
- •3) Длинные группы операторов:
- •Запись алгоритмов с помощью диаграмм Несси - Шнейдермана (структограмм )
- •Некоторые приемы программирования
- •Оператор прерывания цикла
- •Оператор продолжения цикла
- •Пример организации простейшего меню
- •Множественный выбор. Оператор переключения
- •Оператор цикла do-while.
- •Перечисления. Работа с клавиатурой ibm pc
- •Пример организации светового меню
- •Массивы. Адресная арифметика языка Си
- •Описание массива
- •Ввод-вывод массива
- •Инициализация массива
- •Программа вычисления длины строки символов
- •Двумерные массивы (массивы массивов)
- •Адресная арифметика языка Си
- •Указатели и одномерные массивы
- •Указатели и двумерные массивы
- •Указатели и функции
- •Оператор typedef
- •Дополнительные описания указателей для ibm pc
- •Непосредственная работа с экранной памятью
- •Дополнительные сведения о функциях
- •Области видимости и глобальные данные
- •Время жизни переменных и классы памяти языка Си
- •Передача аргументов в функцию
- •Возврат значений из функций
- •Работа с динамической памятью
- •Стандартные функции управления динамической памятью
- •Пример использования динамической памяти
- •Особенности работы с двумерными массивами
- •Пересчет индексов вручную
- •Массивы с постоянной длиной строки
- •Общий случай двумерного массива
- •Особенности работы с массивами большого размера
- •Модульное программирование в системе Turbo c
- •Обеспечение корректной стыковки модулей
- •Создание библиотек функций
- •Некоторые библиотечные функции языка Си
- •Функции консольного ввода/вывода (уникальны для tc)
- •Функции обработки строк.
- •Функции распознавания вида символа
- •Функции преобразования данных
- •Структуры языка c.
- •Описание структуры
- •1 Способ
- •2 Способ
- •Трактовка имени структуры.
- •Доступ к элементу структуры.
- •Инициализация структур.
- •Структуры и функции.
- •Поля бит в структурах.
- •Объединения.
- •Дополнительные сведения о препроцессоре языка c.
- •Условное выражение.
- •Приоритеты и направления операций.
- •Динамические данные.
- •Линейные списки.
- •Организация данных в виде стека.
- •Организация данных в виде очереди.
- •Организация данных в виде деревьев.
- •Библиотека ввода-вывода языка c.
- •Открытие потока.
- •Закрытие потока.
- •Предопределенные указатели потоков.
- •Функции ввода-вывода.
Язык программирования Си. Лекции. Прасолов А.Н.
Язык программирования Си
Лекции
к.т.н. Прасолов Андрей Николаевич
Кафедра Динамики и Прочности Машин
1. Правила записи программы на языке Си 5
2. Правила формального описания синтаксиса языка программирования 6
3. Идентификаторы языка Си 7
4. Понятие о типах данных. 8
4.1. Системы счисления. Представление данных в ЭВМ. 8
4.2. Основные типы данных языка Си 10
4.3. Правила записи констант различных типов 11
4.4. Беззнаковый тип для целых данных 13
4.5. Символьные строки 13
5. Понятие функции 15
5.1. Стандартная функция printf 16
5.2. Стандартная функция scanf 17
6. Операции и выражения 18
6.1. Простейшие арифметические операции 18
6.2. Операция присваивания 19
6.3. Оператор-выражение 19
6.4. Использование в выражениях операндов разных типов 20
6.5. Операции преобразования типов 20
6.6. Стандартные математические функции 21
6.7. Простейшие функции, определяемые программистом 22
6.8. Дополнительные арифметические операции 23
6.9. Дополнительные операции присваивания 24
6.10. Битовые операции 25
6.11. Операции отношения 26
6.12. Логические операции 27
6.13. Операция определения размера данных 28
6.14. Приоритеты операций 29
7. Понятие о препроцессоре языка Си 29
8. Операторы языка Си и приемы программирования 30
8.1. Оператор цикла while 31
8.2. Условный оператор и условная операция 32
8.3. Запись алгоритмов с помощью диаграмм Несси - Шнейдермана (структограмм ) 35
8.4. Некоторые приемы программирования 36
8.5. Оператор прерывания цикла 40
8.6. Оператор продолжения цикла 40
8.7. Пример организации простейшего меню 41
8.8. Множественный выбор. Оператор переключения 42
8.9. Оператор цикла do-while. 44
8.10. Перечисления. Работа с клавиатурой IBM PC 45
8.11. Пример организации светового меню 47
9. Массивы. Адресная арифметика языка Си 51
8.12. Описание массива 51
8.13. Ввод-вывод массива 52
8.14. Инициализация массива 54
8.15. Программа вычисления длины строки символов 55
8.16. Двумерные массивы (массивы массивов) 56
8.17. Адресная арифметика языка Си 58
8.18. Указатели и одномерные массивы 63
8.19. Указатели и двумерные массивы 65
8.20. Указатели и функции 67
8.21. Оператор typedef 68
8.22. Дополнительные описания указателей для IBM PC 69
8.23. Непосредственная работа с экранной памятью 72
9. Дополнительные сведения о функциях 73
9.1. Области видимости и глобальные данные 73
9.2. Время жизни переменных и классы памяти языка Си 77
9.3. Передача аргументов в функцию 78
9.4. Возврат значений из функций 80
10. Работа с динамической памятью 81
10.1. Стандартные функции управления динамической памятью 81
10.2. Пример использования динамической памяти 84
10.3. Особенности работы с двумерными массивами 86
10.3.1. Пересчет индексов вручную 86
10.3.2. Массивы с постоянной длиной строки 88
10.3.3. Общий случай двумерного массива 89
10.4. Особенности работы с массивами большого размера 94
11. Модульное программирование в системе Turbo C 97
11.1. Обеспечение корректной стыковки модулей 98
11.2. Создание библиотек функций 98
12. Некоторые библиотечные функции языка Си 100
12.1. Функции консольного ввода/вывода (уникальны для TC) 100
12.2. Функции обработки строк. 103
12.3. Функции распознавания вида символа 106
12.4. Функции преобразования данных 107
13. Структуры языка C. 108
13.1. Описание структуры 109
13.2. Трактовка имени структуры. 110
13.2.1. Доступ к элементу структуры. 110
13.3. Инициализация структур. 110
13.4. Структуры и функции. 111
13.5. Поля бит в структурах. 112
14. Объединения. 114
15. Дополнительные сведения о препроцессоре языка C. 114
22. Условное выражение. 116
15.1. Приоритеты и направления операций. 117
23. Динамические данные. 118
15.2. Линейные списки. 118
15.3. Организация данных в виде стека. 125
15.4. Организация данных в виде очереди. 127
15.5. Организация данных в виде деревьев. 128
16. Библиотека ввода-вывода языка C. 129
16.1. Открытие потока. 129
16.2. Закрытие потока. 130
16.3. Предопределенные указатели потоков. 131
16.4. Функции ввода-вывода. 131
Брянский Государственный Технический Университет
1991
Язык Си создан в начале 70х годов Дэнисом Ритчи в Bell Telephone Laboratories для ОС UNIX. Предшественником Си является язык Би, созданный Кэном Томпсоном, который в свою очередь имеет корни в языке Мартина Ричардсона BCPL.
В 1978 г. Брайн Керниган и Денис Ритчи написали книгу "Язык программирования Си", которую можно рассматривать как некоторый стандарт языка "K & R". Ее называют белой книгой.
В 1983г. ANSI сформировал технический комитет X3J11 для создания стандарта языка Си. Этот стандарт усовершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.