Зачем нужно программирование? Язык программирования Си. Лекции Преподаватель: к.т.н., доцент кафедры Прикладной информатики и кибернетики Ситняковская Елена Игоревна Новосибирск – 2011 Содержание ВВЕДЕНИЕ 1. Правила записи программы на языке Си.. 7 2. Правила формального описания синтаксиса языка программирования.. 8 3. Идентификаторы языка Си.. 9 4. Понятие о типах данных. 9 4.1. Системы счисления. Представление данных в ЭВМ. 10 4.2. Основные типы данных языка Си.. 11 4.3. Правила записи констант различных типов. 12 4.4. Беззнаковый тип для целых данных.. 14 4.5. Символьные строки.. 14 5. Понятие функции.. 15 5.1. Стандартная функция printf. 15 5.2. Стандартная функция scanf. 16 6. Операции и выражения.. 17 6.1. Простейшие арифметические операции.. 17 6.2. Операция присваивания. 18 6.3. Оператор-выражение. 18 6.4. Использование в выражениях операндов разных типов. 18 6.5. Операции преобразования типов. 19 6.6. Стандартные математические функции.. 19 6.7. Простейшие функции, определяемые программистом.. 20 6.8. Дополнительные арифметические операции.. 21 6.9. Дополнительные операции присваивания. 22 6.10. Битовые операции.. 23 6.11. Операции отношения. 24 6.12. Логические операции.. 25 6.13. Операция определения размера данных.. 26 6.14. Приоритеты операций.. 26 7. Программирование алгоритма линейной структуры на языке Си.. 27 8. Понятие о препроцессоре языка Си.. 28 9. Операторы языка Си и приемы программирования.. 29 9.1. Оператор цикла while. 29 9.2. Условный оператор и условная операция. 30 9.3. Запись алгоритмов с помощью диаграмм Несси - Шнейдермана (структограмм ) 33 9.4. Некоторые приемы программирования. 34 9.5. Оператор прерывания цикла.. 37 9.6. Оператор продолжения цикла.. 38 9.7. Пример организации простейшего меню... 38 9.8. Множественный выбор. Оператор переключения. 39 9.9. Оператор цикла do-while. 40 9.10. Перечисления. Работа с клавиатурой IBM PC.. 41 9.11. Пример организации светового меню... 44 9. Массивы. Адресная арифметика языка Си.. 47 9.1. Описание массива.. 47 9.2. Ввод-вывод массива.. 48 9.3. Инициализация массива.. 49 9.4. Программа вычисления длины строки символов. 50 9.5. Двумерные массивы (массивы массивов) 51 9.6. Адресная арифметика языка Си.. 54 9.7. Указатели и одномерные массивы.. 58 9.8. Указатели и двумерные массивы.. 59 9.9. Указатели и функции.. 61 9.10. Оператор typedef. 62 9.11. Дополнительные описания указателей для IBM PC.. 63 9.12. Непосредственная работа с экранной памятью... 65 10. Дополнительные сведения о функциях.. 66 10.1. Области видимости и глобальные данные. 66 10.2. Время жизни переменных и классы памяти языка Си.. 69 10.3. Передача аргументов в функцию... 70 10.4. Возврат значений из функций.. 71 11. Работа с динамической памятью.... 73 11.1. Стандартные функции управления динамической памятью... 73 11.2. Пример использования динамической памяти.. 75 11.3. Особенности работы с двумерными массивами.. 76 11.3.1. Пересчет индексов вручную.. 76 11.3.2. Массивы с постоянной длиной строки. 78 11.3.3. Общий случай двумерного массива. 79 11.4. Особенности работы с массивами большого размера.. 84 12. Модульное программирование в системе Turbo C.. 87 12.1. Обеспечение корректной стыковки модулей.. 87 12.2. Создание библиотек функций.. 88 13. Некоторые библиотечные функции языка Си.. 89 13.1. Функции консольного ввода/вывода (уникальны для TC) 89 13.2. Функции обработки строк. 91 13.3. Функции распознавания вида символа.. 93 13.4. Функции преобразования данных.. 94 14. Структуры языка C. 95 14.1. Описание структуры.. 96 14.2. Трактовка имени структуры. 97 14.2.1. Доступ к элементу структуры. 97 14.3. Инициализация структур. 97 14.4. Структуры и функции. 98 14.5. Поля бит в структурах. 99 15. Объединения. 101 16. Дополнительные сведения о препроцессоре языка C. 101 22. Условное выражение. 103 22.1. Приоритеты и направления операций. 103 23. Динамические данные. 105 23.1. Линейные списки. 105 23.2. Организация данных в виде стека. 112 23.3. Организация данных в виде очереди. 113 23.4. Организация данных в виде деревьев. 114 24. Библиотека ввода-вывода языка C. 115 24.1. Открытие потока. 115 24.2. Закрытие потока. 116 24.3. Предопределенные указатели потоков. 117 24.4. Функции ввода-вывода. 117 Введение Язык программирования Си создан в 1972 г. Деннисом Ритчи при разработке операционной системы UNIX. Язык проектировался как инструмент для системного программирования с ориентацией на разработку хорошо структурированных программ. Первоначально он появился в операционной системе UNIX, и развивался как основной язык систем, совместимых с ОС UNIX. Сам язык, однако, не связан с какой-либо одной операционной системой или машиной; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он может использоваться для написания любых больших вычислительных программ, программ для обработки текстов и баз данных. Компиляторы языка Си работают почти на всех типах современных ЭВМ в операционных системах UNIX, MS-DOS, OS/2, Windows, Windows NT и т.д. Зачем нужно программирование? Иногда создается впечатление, что все существующие задачи могут быть решены с помощью готовых программ для компьютеров. Во многом это действительно так, но опыт показывает, что всегда находятся задачи, которые не решаются (или плохо решаются) стандартными средствами. В этих случаях приходится писать собственную программу, которая делает все так, как вы этого хотите. |