- •Основы программирования на языке Си.
- •Достоинства языка Си.
- •Будущее языка Си.
- •Использование языка Си.
- •Использование текстового редактора для подготовки программ.
- •Исходные и выполняемые файлы
- •Пример простой программы на языке Си
- •Структура простой программы
- •2. Лекция: Данные, символьные строки, директива #define.
- •Основные типы данных
- •Описание различных типов, переменные и константы
- •Символьные строки
- •Препроцессор языка Си
- •3. Лекция: Операции.
- •Основные операции
- •Дополнительные операции
- •Перечень операций языка Си
- •Операции, уровень приоритета которых равен 1
- •Операции, уровень приоритета которых равен 2
- •Операции, уровень приоритета которых равен 3
- •Операции, уровень приоритета которых равен 4
- •Операции, уровень приоритета которых равен 5
- •Операции, уровень приоритета которых равно 6
- •Операции, уровень приоритета которых равен 7
- •Операция, уровень приоритета которой равен 8
- •Операция, уровень приоритета которой равен 9
- •Операция, уровень приоритета которой равен 10
- •Операция, уровень приоритета которой равен 11
- •Операция, уровень приоритета которой равен 12
- •Операция, уровень приоритета которой равен 13
- •Операция, уровень приоритета которой равен 14
- •Операция, уровень приоритета которой равен 15
- •Примеры простых задач
- •4. Лекция: Операторы.
- •Выражения
- •Простейшие выражения
- •Операторы
- •Составные операторы
- •Оператор цикла while
- •10 Км. В последующие дни он проезжал со скоростью,
- •Изучение и использование функций printf( ) и scanf( )
- •Применение функции scanf( )
- •Подведем итог.
- •5. Лекция: преобразование типов.
- •Эквивалентность типов
- •Преобразование типов
- •Разбор программы
- •Операция приведения
- •Неявное преобразование типа
- •Арифметические преобразования
- •Явные преобразования типов
- •Синтаксис типов
- •6. Лекция: функции и переключение ввода-вывода
- •Ввод и вывод одного символа
- •Чтение одной строки
- •Чтение файла
- •Переключение и работа с файлами
- •7. Лекция: Выбор вариантов.
- •Выбор вариантов
- •Оператор if
- •Расширение оператора if
- •Операции отношения
- •Логические операции
- •Операция условия: ?:
- •Множественный выбор
- •8. Лекция: Циклы и другие управляющие средства. Структурное программирование.
- •Структурное программирование
- •Цикл с предусловием
- •Цикл со счетчиком
- •Цикл с постусловием
- •Другие управляющие операторы
- •9. Лекция: Функции.
- •Создание и использование функций
- •Аргументы функции
- •Возвращение значений
- •Локальные переменные
- •Нахождение адресов
- •Указатели, первое знакомство
- •Функции с переменным количеством аргументов
- •10. Лекция: Классы памяти и разработка программ.
- •Классы памяти и область действия
- •Автоматические переменные
- •Внешние переменные
- •Статические переменные
- •Внешние статические переменные
- •Регистровые переменные
- •11. Лекция: Препроцессор языка Си.
- •Общие сведения
- •Символические константы: #define
- •Использование аргументов с #define
- •Макроопределение или функция?
- •Включение файла: #include
- •Условная компиляция
- •12. Лекция: Массивы и указатели.
- •Указатели и массивы
- •Массивы
- •Указатели
- •Динамические объекты
- •Создание динамических объектов
- •Доступ к динамическим объектам
- •Связь между указателями и массивами
- •Инициализация массивов и классы памяти
- •Функции, массивы и указатели
- •Операции с указателями
- •13. Лекция: Символьные строки и функции над ними.
- •Строковые константы
- •Массивы символьных строк и их инициализация
- •Массив и указатель: различия
- •Указатели и строки
- •Ввод-вывод строк
- •Обработка строк
- •14. Лекция: Структуры.
- •Определение структурных переменных
- •Доступ к компонентам структуры
- •Поля битов в структурах
- •Объединения
- •Перечисления
- •Переменные структуры
- •Указатели и структуры
- •Массив структур
- •Переименование типов
- •15. Лекция: Библиотека языка Си и файлы ввода-вывода.
- •Стандартные библиотечные функции
- •Связь с файлами
- •Текстовые файлы с буферизацией
- •Распределение памяти
- •16. Лекция: Функции в примерах.
- •Функция получения случайных чисел
- •Поиск узлов из простых чисел
- •Матрица инцидентности
- •Структуры данных
- •Все операции со стеком
Основы программирования на языке Си.
Содержание.
1. Лекция: Общее знакомство.
-Происхождение языка Си.
-Достоинства языка Си.
-Будущее языка Си.
-Использование языка Си.
-Использование текстового редактора для подготовки программ.
-Исходные и выполняемые файлы. Примеры простой программы.
-Пример простой программы на языке Си.
-Структура простой программы.
2. Лекция: Данные, символьные строки, директива #define
-Основные типы данных.
-Описание различных типов, переменные и константы.
-Символьные строки.
-Препроцессор языка Си.
3. Лекция: Операции.
-Основные операции.
-Дополнительные операции.
-Перечень операций языка Си.
4. Лекция: Операторы.
-Выражения.
-Простейшие выражения.
-Операторы.
-Составные операторы.
5. Лекция: Преобразование типов.
-Эквивалентность типов.
-Преобразование типов.
-Неявное преобразование типа.
-Арифметические преобразования.
-Явное преобразование типов.
-Синтаксис типов.
6. Лекция: Функции и переключение ввода-вывода.
-Ввод и вывод одного символа.
-Буферы.
-Чтение одной строки.
-Чтение файла.
-Переключение и работа с файлами.
7. Лекция: Выбор вариантов.
-Выбор вариантов.
-Оператор if.
-Расширение оператора if.
-Операции отношения.
-Логические операции.
-Операция условия: ?:.
-Множественный выбор.
8. Лекция: Циклы и другие управляющие средства. Структурное программирование.
-Цикл с предусловием.
-Цикл со счетчиком.
-Цикл с постусловием.
-Другие управляющие операторы.
-Структурное программирование.
9. Лекция: Функции.
-Создание и использование функций.
-Аргументы функции.
-Возвращение значений.
-Локальные переменные.
-Нахождение адресов.
-Указатели, первое знакомство.
-Функции с переменным количеством аргументов.
10. Лекция: Классы памяти и разработка программ.
-Классы памяти и область действия.
-Автоматические переменные.
-Внешние переменные.
-Статические переменные.
-Внешние статические переменные.
-Регистровые переменные.
11. Лекция: Препроцессор языка Си.
-Общие сведения.
-Символические константы: #define.
-Использование аргументов с #define.
-Макроопределение или функция?
-Включение файла #include.
-Условная компиляция.
12. Лекция: Массивы и указатели.
-Указатели и массивы.
-Массивы.
-Указатели.
-Динамические объекты.
-Создание динамических объектов.
-Доступ к динамическим объектам.
-Строки - дополнительные сведения о связи между указателями и массивами.
-Инициализация массивов и классы памяти.
-Функции.
-Операции с указателями.
13. Лекция: Символьные строки и функции над ними.
-Строковые константы.
-Массивы символьных строк и их инициализация.
-Массив и указатель: различия.
-Указатели и строки.
-Ввод-вывод строк.
-Обработка строк.
14. Лекция: Структуры.
-Определение структурных переменных.
-Доступ к компонентам структуры.
-Поля битов в структурах.
-Объединения.
-Перечисления.
-Переменные структуры.
-Указатели структуры.
-Массив структур.
-Переименования типов.
15. Лекция: Библиотека языка Си и файлы ввода-вывода.
-Библиотека языка Си содержит множество функций и макроопределений.
-Библиотеки меняются от системы к системе, но есть ядро функций (стандартная библиотека).
-Распределение памяти.
16. Лекция: Функции в примерах.
-Функция получения случайных чисел.
-Поиск узлов из простых чисел.
-Матрица инцидентности.
-Структуры данных.
-Работа с файлами.
-Все операции со стеком.
-Примеры из графики, все преобразования трехмерного пространства.
1. Лекция: Общее знакомство.
-Происхождение языка Си.
-Достоинства языка Си.
-Будущее языка Си.
-Использование языка Си.
-Использование текстового редактора для подготовки программ.
-Исходные и выполняемые файлы. Примеры простой программы.
-Пример простой программы на языке Си.
-Структура простой программы.
Происхождение языка Си.
Язык программирования Си был разработан и реализован в 1972 году сотрудником фирмы AT&T Bell Laboratories Денисом Ритчи. Прообразом языка Си для Д. Ритчи послужил язык Би, разработанный Кеном Томпсоном. Он является результатом эволюционного развития языков BCPL (Richards, M., "BCPL: A. Tool for Compiler Writing and System Programming", Proc. AFIPS SJCC, 34, 557-566, 1969) и Би (Johnson, S. C., and B. W. Kernighan, "The Programming Language B", Comp. Sci. Tech. Rep. No. 8, Bell Laboratories. 1973). Основным достоинством языка Си по сравнению с языками BCPL и Би является введение в него типов данных. Язык Си был разработан во время создания операционной системы UNIX (OC UNIX). Развитие языка Си продолжалось и после окончания его разработки и касалось, в частности, проверки типов данных и средств, облегчающих перенос программ в другую среду. Например, разработка проекта переноса OC UNIX на компьютер Interdata 8/32 привела к некоторым добавлениям в язык Си, а именно, к включению в язык таких средств, как объединение (union). Позднее были сделаны попытки включения в язык Си средств абстрагирования данных. В настоящее время рассматривается проект стандарта ANSI C - стандарт языка Си Американского национального института и the C Programming Language - Reference Manual, AT&T Bell Laboratories. С языка Си разработаны совместимые по входному языку трансляторы для 40 типов вычислительных систем, начиная от 8-разрядных микропроцессоров и кончая CRAY-1 - одним из самых мощных в настоящее время суперкомпьютеров. В ходе работ по созданию Мобильного Транслятора с языка Си сам он был переработан для повышения мобильности написанных на нем программ.