- •Часть 1
- •40 01 02 – 02 Информационные системы и технологии (в экономике)
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Протокол согласования учебной программы по изучаемой учебной дисциплине с другими дисциплинами специальности
- •Содержание дисциплины
- •1. Название тем лекционных занятий, их содержание, объем в часах
- •3. Перечень тем лабораторных занятий, их содержание и объем в часах
- •Теоретический раздел
- •Тема № 1. Введение в программирование
- •Происхождение языка с.
- •Основные характеристики алгоритмического языка с
- •Область применения
- •Системы программирования
- •Исходные и объектные модули, процессы компиляции и связывания
- •Алфавит языка
- •Лексемы (cTokens)
- •Тема № 2. Выражения и операции языка Унарные операции
- •Бинарные операции
- •Условная трехместная операция
- •Операция явного преобразования типа
- •Приоритет операций. Порядок вычисления выражений.
- •Организация ввода-вывода информации
- •Тема № 3. Управляющие структуры. Ветвления и циклы
- •Операторы преобразования данных – это операторы присваивания и произвольные выражения, завершенные символом «;».
- •Операторы управления работой программы называют управляющими конструкциями программы.
- •Тема № 4. Организация данных. Массивы и указатели Массивы
- •Инициализация массивов
- •Указатели
- •Функции для выделения и освобождения памяти
- •Тема № 5. Функции. Символьные строки и функции над ними Определение функций
- •Описание функций
- •Вызов функции
- •Передача параметров
- •Указатели на функции
- •Массивы указателей на функции
- •Главная функция. Передача аргументов главной функции
- •Рекурсивные программы
- •Стандартные функции ввода-вывода строк
- •Стандартные функции обработки строк
- •Тема № 6. Классы памяти и препроцессор языка Си Локальные и глобальные переменные
- •Автоматические (локальные) переменные
- •Внешние (глобальные) переменные
- •Статические переменные
- •Регистровые переменные
- •Область видимости и функции
- •Препроцессор и его директивы
- •Тема № 7. Структуры Декларация структур
- •Инициализация структур
- •Доступ к элементам структур
- •Элементы-массивы
- •Массивы структур
- •Указатели на структуры
- •Доступ к элементам структуры, определенной через указатель
- •Структуры и функции
- •Объединения
- •Битовые поля
- •Практический раздел Виртуальные лабораторные работы
- •Лабораторная работа №1
- •Лабораторная работа №2
- •Контрольные работы
- •Содержание пояснительной записки.
- •Задание для контрольной работы №1
- •Задание для контрольной работы №2
- •Варианты индивидуальных заданий
- •Теоретические вопросы
- •Пример оформления титульного листа для виртуальных лабораторных работ
- •Пример оформления титульного листа для контрольных
Теоретический раздел
Лекции
Тема № 1. Введение в программирование
Происхождение языка с.
Сотрудник фирмы Bell Labs Деннис Ритчи создал язык С (Си) в 1972 г. во время совместной работы с Кеном Томпсоном над операционной системой UNIX на ЭВМ РDP-11. Ритчи не выдумал С просто из головы – прообразом послужил язык B (Би), разработанный Томпсоном. Отсюда и произошло его на первый взгляд, странное название. И здесь особенно важно то, что язык С создавался как инструмент для программистов-практиков. В соответствии с этим главной целью его автора было создание удобного и полезного языка.
Очевидно, что критерий полезности принимался во внимание при разработке большинства других языков программирования. Но часто учитывались и другие потребности. Скажем одной из главных целей при создании языка Паскаль, было построение прочных основ обучения принципам программирования. А язык Бейсик создавался так, чтобы его синтаксис был близок к синтаксису английского языка. Такие цели легко объяснить: в то время вычислительная техника только начинала развиваться, и было очень важно подключить к процессу ее развития как можно больше специалистов.
Основные характеристики алгоритмического языка с
За 30 лет своего существования язык С не только «выжил», но и послужил основой для целого ряда новых языков программирования. Я уж не говорю о непосредственных детях и внуках – языках С++ и С# (произносится: "Си-шарп"). Значительное количество его элементов можно найти в других современных языках, таких как Java, PHP4 и ряде других.
Какие же характерные черты языка С так выгодно отличают его от прочих языков?
Во-первых, язык С является гибким языком программирования. Он включил в себя те управляющие конструкции, которые рекомендуются теоретическим и практическим программированием. Его структура побуждает программиста использовать в своей работе нисходящее проектирование, структурное программирование и пошаговую разработку модулей. Результатом такого подхода является надежная и читаемая программа.
Во-вторых, язык С является эффективным языком. Его структура позволяет создавать трансляторы, строящие высокоэффективный исполняемый код. Причем, сохраняя свойство компактности, этот код по быстродействию часто приближается к программам, написанным вручную на ассемблере используемой ЭВМ.
В третьих, язык С – это мобильный язык. Это означает, что программа, подготовленная в рамках одной вычислительной системы, может быть перенесена с небольшими изменениями на другую вычислительную систему, с одной операционной системы на другую. Свойство совместимости различных версий языка С, основанное на простоте определения его стандарта, делает язык особенно привлекательным для разработки мультиплатформенных программных комплексов.
Как итог вышесказанного – язык С является языком создания практически эксплуатируемых программ. В качестве доказательства этого утверждения: большая часть операционных систем семейства UNIX сама написана на языке С.
И, наконец, в четвертых. С очень удобный язык. Он достаточно структурирован, чтобы поддерживать хороший стиль программирования, и вместе с тем не связывает нас смирительной рубашкой ограничений.
