- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке Cи
- •Иркутск
- •Содержание
- •Предисловие
- •Алфавит языка
- •Служебные слова
- •Константы
- •Комментарии
- •Переменные
- •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()
- •Int main()
- •Int vector_min, vector_max, temp;
- •Int vector[n];
- •Функции
- •Void main()
- •Int summa(int a, int b)
- •Int summa(int a, int b)
- •Void swap(int a, int b)
- •Int temp;
- •Void poplavok(int n, int vector[n])
- •5 * 4 * Factorial(3)
- •5 * 4 * 3 * Factorial(2)
- •5 * 4 * 3 * 2 * Factorial(1)
- •Int fibo(int n)
- •Int binom(int m, int n)
- •Int max_element(int k, int n, int vector[])
- •Int temp;
- •Void quick_sort(int left, int right, int vector[])
- •Адреса и указатели
- •Операции над указателями
- •Указатели и массивы
- •Int mass[5];
- •Int trio[5][2][3];
- •Указатели и функции
- •Int sloshenie(int a, int b);
- •Int sloshenie(int a, int b)
- •Int main()
- •Указатели и строки
- •Функции для работы со строками
- •Vtorokursnik
- •Vtorokursnik
- •Itoa(I, str, 16);
- •Текстовые файлы
- •Int vector[k];
- •Vector_1:
- •Vector_2:
- •Int ocenka;
- •Imja: Vasilij
- •Imja: Ivan
- •Int ocenka;
- •Бинарные файлы
Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке Cи
Автор: старший преподаватель Лучников В.А.
Иркутск
2012
Лучников В.А.Программирование на языке Си. Учебное пособие – Иркутск: ИрГУПС, 2012.-157 с.
Учебное пособие предназначено для студентов специальностей “Информационные системы и технологии”, “Программная инженерия” и “Информационная безопасность”. Оно может быть также полезно для студентов других специальностей, изучающих программирование и использующих его в прикладных задачах при выполнении расчетно-графических и курсовых работ по специальным дисциплинам.
Учебное пособие содержит последовательное изложение основ программирования на примере алгоритмического языка Си, необходимую для практической работы справочную информацию. Пособие снабжено большим количеством примеров, иллюстрирующих основные приемы программирования. Рассматривается структурная и объектно-ориентированная технологии программирования, методы проектирования, отладки и тестирования программ, использование основных структур данных для решения конкретных практических задач. В конце каждой темы приводятся часто встречающиеся ошибки программирования, относящиеся к этой теме. Изложение материала опирается на учебник автора “Программирование на языке Паскаль”.
Данное учебное пособие является вторым в серии учебных пособий по программированию на алгоритмических языках высокого уровня, написанных автором. Следующими будут выпущены учебники по программированию на языках PHP и Java, необходимые студентам специальностей Института информационных технологий и моделирования.
Содержание
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Алфавит языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Служебные слова . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Константы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Переменные. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Математические функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Математические константы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Выражения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
выражения целого типа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
выражения вещественного типа. . . . . . . . . . . . . . . . . . . . . . . . . . 22
Операторы присваивания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Ввод и вывод данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
стандартный ввод-вывод. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
посимвольный ввод-вывод. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
ввод-вывод строк. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
форматированный вывод. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
форматированный ввод. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Структура программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Директивы препроцессора. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
включение файлов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
подстановка имен. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
макросы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Структуры данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
массивы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Алгоритм и его свойства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
схемы алгоритмов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Базовые структуры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
цепочка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
ветвления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
альтернатива. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
переключатель. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
циклы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
бесконечные циклы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
циклы с предусловием. . . . . . . . . . . . . . . . . . . . . . . . . . . .77
циклы с постусловием. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
циклы с параметром. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
рекурсия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Адреса и указатели. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
операции над указателями. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
указатели и массивы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
указатели и функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
указатели и строки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
функции для работы со строками. . . . . . . . . . . . . . . . . . . . . . . . .139
Файлы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
текстовые файлы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
бинарные файлы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154