Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Основы программирования на Си.doc
Скачиваний:
386
Добавлен:
02.05.2014
Размер:
1 Мб
Скачать

133

Основы программирования на языке Си.

Содержание.

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 - одним из самых мощных в настоящее время суперкомпьютеров. В ходе работ по созданию Мобильного Транслятора с языка Си сам он был переработан для повышения мобильности написанных на нем программ.

Достоинства языка Си.

Особое значение придается гибкости. Язык Си компактен, является относительно маленьким языком программирования. Ввод-вывод не считается частью языка Си, а определяется стандартной библиотекой. Вседозволенность в языке Си является следствием желания как можно больше расширить область его применения. Язык Си удалось сделать относительно маленьким языком программирования за счет того, что в его состав не были включены ввод-вывод и средства для работы со строками. Язык Си был задуман настолько гибким, что эти возможности могли быть реализованы в каждом конкретном случае наиболее удачным образом. Практический опыт использования языка Си показал правильность такого подхода. Большая часть операционной системы UNIX и все утилиты этой операционной системы, включая и несколько трансляторов с языка Паскаль, реализованы на языке Си. Язык программирования является языком программирования с сильной типизацией, если:

  • каждый объект в этом языке программирования принадлежит точно одному из существующих в этом языке программирования типу данных;

  • преобразование типов осуществляется только путем преобразования значения из одного типа в другой;

  • преобразование типов не производится путем трактовки представления значения как данных различных типов.

Эксперименты показали, что языки программирования с сильной типизацией способствуют увеличению ясности и надежности программ. Механизм трактовки представления значения как данных различных типов приводит к тому, что использующие его программы не обладают ни надежностью, ни мобильностью. В языке Си допускается неявное преобразование типов для всех базовых типов и указателей. Однако Мобильный Транслятор с языка Си выводит предупреждение о каждом встретившимся в программе случае неявного преобразования типов, в котором участвует указатель.

Язык Си быстро становится одним из наиболее важных и популярных языков программирования. Его использование все более расширяется, поскольку часто программисты предпочитают язык Си всем другим языкам после первого знакомства с ним. Сейчас мы упомянем лишь некоторые достоинства Си.

Си - современный язык. Он включает в себя те управляющие конструкции, которые рекомендуются теоретическим и практическим программированием. Его структура побуждает программиста использовать в своей работе нисходящее проектирование, структурное программирование и пошаговую разработку модулей. Результатом такого подхода является надежная и читаемая программа.

Си - эффективный язык. Его структура позволяет наилучшим образом использовать возможности современных ЭВМ. Написанные на языке Си программы обычно отличаются компактностью и быстротой исполнения.

Си - переносимый (или мобильный) язык. Это означает, что программа, написанная на Си для одной вычислительной системы, может быть перенесена с небольшими изменениями или вообще без них, на другую.

Си - мощный и гибкий язык. Например, большая часть мощной и гибкой OC UNIX написана на языке Си. Речь идет о компиляторах и интерпретаторах других языков, таких, как Фортран, АПЛ, Паскаль, Лисп, Лого и Бейсик. Кроме того, программы, написанные на Си, используются для решения физических и технических проблем, компьютерной графики и даже производства мультипликационных фильмов.

Си - обладает рядом конструкций управления, обычно ассоциируемых с ассемблерами.

Си - удобный язык. Он достаточно структурирован, чтобы поддерживать хороший стиль программирования, и вместе с тем не связывает ограничениями.