- •Предисловие
- •Алфавит языка
- •Служебные слова
- •Константы
- •Комментарии
- •Переменные
- •Int I,j,k; //переменные I, j, k – целого типа
- •Математические функции
- •Выражения
- •Выражения целого типа
- •Примеры записи выражений целого типа:
- •Примеры вычислений выражений целого типа:
- •Выражения вещественного типа
- •Примеры записи выражений вещественного типа
- •Примеры вычислений выражений вещественного типа:
- •Операторы присваивания
- •Примеры записи операторов присваивания:
- •Ввод и вывод данных
- •Стандартный ввод-вывод
- •Посимвольный ввод-вывод
- •Ввод-вывод строк
- •Форматированный вывод
- •Форматированный ввод
- •Scanf(“формат”, аргументы);
- •Int age, rost;
- •Vasja Pupkin
- •Vasja Pupkin
- •Структура программы
- •Void main()
- •Int main()
- •Int age, rost;
- •Директивы препроцессора
- •Включение файлов
- •Int main()
- •Int age, rost;
- •Int main()
- •Int age, rost;
- •Подстановка имен
- •Макросы
- •Структуры данных
- •Массивы
- •Int vect[5];
- •Int vect[count];
- •Vect[0] vect[1] vect[2] vect[3] vect[4]
- •Int main()
- •Int temp;
- •Int matr[row][col];
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Int main()
- •Int c, y1, y2, kl, day, month, year;
- •Часто встречающиеся ошибки программирования:
- •Int main()
- •Переключатель
- •Int main()
- •Int month;
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Int main()
- •Программа
- •Int main()
- •Программа
- •Int main()
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Int main()
- •Int main()
- •Программа
- •Int main()
- •Int main()
- •Int main()
- •Int month;
- •Циклы с параметром
- •Действия цикла:
- •Int main()
- •Int top, bottom;
- •Int main()
- •Int num, sum, factor;
- •Int main()
- •Int main()
- •If (number % 3)
- •Int main()
- •Int main()
- •Int I, m, vector_min, vector_max, temp;
- •Int vector[n];
- •Int main()
- •Int vector_min, vector_max, temp;
- •Int vector[n];
- •Функции
- •Int summa(int a, int b)
- •Int summa(int a, int b)
- •Void swap(int a, int b)
- •Int temp;
- •Int top, bottom, temp;
- •Рекурсия
- •5 * 4 * Factorial(3)
- •5 * 4 * 3 * Factorial(2)
- •5 * 4 * 3 * 2 * Factorial(1)
- •Void quick_sort(int left, int right, int vector[])
- •Int I, last;
- •Void swap(int I, int j, int vector[])
- •Int temp;
- •Особенности рекурсии:
- •Адреса и указатели
- •Операции над указателями
- •Указатели и массивы
- •Int mass[5];
- •Int trio[5][2][3];
- •Указатели и функции
- •Int main()
- •Указатели и строки
- •Функции для работы со строками
- •Vtorokursnik
- •Vtorokursnik
- •Itoa(I, str, 16);
- •Текстовые файлы
- •Int vector[k];
- •Vector_1:
- •Vector_2:
- •Int ocenka;
- •Imja: Vasilij
- •Imja: Ivan
- •Int ocenka;
- •Бинарные файлы
ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
КАФЕДРА “ИНФОРМАТИКА”
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ Cи
Автор: старший преподаватель Лучников В.А.
Иркутск
2011
Лучников В.А. Программирование на языке Си. Учебное пособие – Иркутск: ИрГУПС, 2011.-154 с.
Учебное пособие предназначено для студентов специальностей “Информационные системы и технологии”, “Программная инженерия” и “Информационная безопасность”. Оно может быть также полезно для студентов других специальностей, изучающих программирование и использующих его в прикладных задачах при выполнении расчетно-графических и курсовых работ по специальным дисциплинам.
Учебное пособие содержит последовательное изложение основ программирования на примере алгоритмического языка Си, необходимую для практической работы справочную информацию. Пособие снабжено большим количеством примеров, иллюстрирующих основные приемы программирования. Рассматривается структурная и объектно-ориентированная технологии программирования, методы проектирования, отладки и тестирования программ, использование основных структур данных для решения конкретных практических задач. В конце каждой темы приводятся часто встречающиеся ошибки программирования, относящиеся к этой теме. Изложение материала опирается на учебник автора “Программирование на языке высокого уровня”.
Данное учебное пособие является вторым в серии учебных пособий по программированию на алгоритмических языках высокого уровня, написанных автором. Следующими будут выпущены учебники по программированию на языках JavaScript, PHP, необходимые студентам специальностей Института информационных технологий и моделирования.
Предисловие
Универсальный алгоритмический язык Си был разработан в 1972 году 30-летним специалистом по системному программированию, сотрудником фирмы BELL LABORATORIES Деннисом Ритчи, получившим степень бакалавра по прикладной математике в Гарвардском университете.
Название Си (С) – это третья буква английского алфавита. Язык Си стал преемником ранее созданного для внутреннего использования фирмой языка Би (В). Отчасти язык Би основывался на созданном в Кембриджском университете языке BCPL (Basic Combined Programming Language – базовый комбинированный язык программирования), который в свою очередь стал потомком Алгола-60.
Первоначально Си был задуман как средство для написания операционной системы UNIX, но как только эта система получила широкое признание в компьютерном мире, он обрел популярность как так называемый язык среднего уровня. В нем удобство, краткость и мобильность языков высокого уровня сочетаются с возможностью непосредственного доступа к аппаратуре, что традиционно обеспечивалось Ассемблером. Автор сумел избежать катастрофической сложности языков-предшественников, пытавшихся угодить всем и во всем. Однако такой подход не лишил Си его мощи: из ограниченного набора его элементов можно по немногим простым и логичным правилам составлять очень сложные конструкции.
Сила языка Си заключается в способности его создавать сложные программы из простых элементов. Можно сказать, что девизом языка Си стало «Multum in parvo» - многое из немногого. Этому способствовали его особенности:
в нем реализованы некоторые операции низкого уровня (операции над битами), напрямую соответствующие машинным командам,
его базовые типы данных отражают те же объекты, с которыми приходится иметь дело в программах на Ассемблере – байты, машинные слова, символы, строки,
он поддерживает механизм указателей на переменные, массивы, структуры и функции,
несмотря на эффективность и мощность своих конструкций, он относительно мал по объему.
Первое описание языка Си было дано Б.Керниганом и Д.Ритчи в ставшей раритетом книге «Язык программирования Си», появившейся в 1978 году. Второе, переработанное и дополненное, издание этой книги вышло в свет в 1988 году [1] (имеется русский перевод).
Стандарт языка Си, соответствующий данному описанию, был утвержден Американским национальным институтом стандартов ANSI в 1989 году. Этому же стандарту соответствует краткий по объему, но насыщенный по содержанию справочник [2].
Язык, написанный одним человеком, обычно отражает опыт автора. Деннис Ритчи – выдающийся системный программист, разрабатывающий языки программирования, операционные системы и текстовые редакторы. Поэтому Си – это язык, созданный программистом для программистов, чего нельзя сказать о других алгоритмических языках: Кобол создан для менеджеров, Бейсик – для школьников, Паскаль – для студентов, Фортран и Алгол – для научных работников и аспирантов, Ада – для военных, Лого – для детей, Пролог – для интеллектуалов, ПЛ/1 – для любителей сложностей, АПЛ – для марсиан. Один Си – это язык для программистов-профессионалов. Однако этот язык не предназначен для первоначального обучения программированию. Поэтому лучше всего изучать язык Си после освоения одного из базовых современных языков программирования – Паскаля.