Программирование на языке си фомин

Предисловие

Язык программирования Си создан в 1972 г. сотрудником фирмы Bell Laboratories Деннисом Ритчи (Dennis M. Ritchie) при разработке операционной системы UNIX. Язык проектировался как инструмент для системного программирования с ориентацией на разработку хорошо структурированных программ. Удачное сочетание лаконичности конструкций и богатства выразительных возможностей позволило языку Си быстро распространиться и стать наиболее популярным языком прикладного и системного программирования. Компиляторы языка Си работают почти на всех типах современных ЭВМ в операционных системах UNIX, MS-DOS, Mac OS, OS/2, Windows, Windows NT, Solaris и др.

В отличие от многих предшествующих языков (Ада, Алгол-60, Алгол-68 и т.д.), которые вступали в силу после принятия соответствующих национальных и международных стандартов, язык Си вначале был создан как рабочий инструмент, не претендующий на широкое применение. Стандарта на язык Си до 1989 г. не существовало, и в качестве формального описания разработчики компиляторов использовали первое издание книги Б. Кернигана и Д. Ритчи, вышедшее в США в 1978 г. (переведена на русский язык в 1985 г. [1]). Роль неформального стандарта языка Си сохранилась за этой книгой и в настоящее время. Не случайно в литературе и документации по компиляторам ссылка на эту работу обозначается специальным сокращением K&R.

Второе издание книги Б. Кернигана и Д. Ритчи [2] описывает язык Си в стандартизованном Американским институтом национальных стандартов виде (стандарт ANSI языка Си). В настоящее время, кроме стандарта ANSI С, разработан международный стандарт ISO С (International Standard Organization С). Обе версии стандарта близки друг к другу, и на различиях между стандартами нет необходимости останавливаться до возникновения разногласий в толковании той или иной конструкции языка либо при оценке стандартности конкретного компилятора. Эти ситуации выходят за рамки курса по программированию на языке Си. В случае необходимости получения справок по стандартам языка Си следует обращаться к специальным публикациям, например к «Толковому словарю стандарта языка Си» Р. Жешке [5]. Неформальное применение книги K&R в качестве стандарта до 1989 г. и последующая ее переработка авторами в соответствии с принятым стандартом ANSI привели к тому, что ее и сейчас можно рассматривать как достоверный источник при получении справок по языку Си.

Целью настоящего пособия является изложение методики и принципов корректного, структурированного программирования на языке Си. Программы, иллюстрирующие конструкции и возможности языка, написаны максимально понятно для читателя. Авторы нигде не гнались за эффективностью кода в ущерб его структурированности и простоты. Возможности современных компиляторов языка Си таковы, что они позволяют генерировать весьма эффективный код по тексту хорошо структурированной программы без специальных ухищрений программиста, направленных на повышение быстродействия или незначительную экономию памяти.

Книга написана на основе курсов лекций, которые авторы в течение ряда лет читали в МИЭМе на факультете прикладной математики, на факультете автоматики и вычислительной техники и факультете повышения квалификации инженеров. Материал пособия соответствует учебной программе дисциплины «Алгоритмические языки и программирование». Изучение указанной дисциплины, в частности языка Си, служит основой для курсов по математическому обеспечению ЭВМ и сетей, по операционным системам, построению компиляторов и системному программированию.

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

Повышению качества рукописи способствовали замечания рецензентов, а также внимательный анализ текста, который провели С.М. Лавренов и С.Г. Чернацкий. При печати и оформлении рукописи авторам помогали Н.В. Васюкова, И.А. Морозова, О.В. Шеханова и Юлия Кочнева. Авторы выражают им глубокую благодарность.

Источник

ПО КУРСУ «ПРОГРАММИРОВАНИЕ (ЯЗЫК СИ)»

Рекомендовано методической комиссией факультета ВМК
для студентов ННГУ, обучающихся по направлению подготовки
09.03.03«Прикладная информатика»

УДК 004.4

Ф-76 Фомина И.А. Учебно-методическое пособие по курсу «Программирование (язык Си)». – Нижний Новгород: Нижегородский госуниверситет, 2015. – 33 с.

Рецензент: к. т.-н., доцент Карпенко С. Н.

В учебно-методическом пособии представлены основные цели и задачи курса, требования к результатам его освоения. Приводятся структура и содержание основных разделов дисциплины, темы лабораторных работ и методические рекомендации по выполнению основных лабораторных работ. В результате выполнения данных работ, студенты приобретают навыки программирования в среде Microsoft Visual Studio. Учатся применять типовые алгоритмы при решении прикладных задач.

© Нижегородский государственный

Университет им. Н.И. Лобачевского, 2015

© Фомина И. А

Содержательное описание курса

1.1. Цели освоения дисциплины

Целью курса является изучение методов программирования для овладения знаниями в области технологии программирования; подготовка к осознанному использованию, как языков программирования, так и методов программирования

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

1.2. Место дисциплины в структуре основных образовательных программ

Данная дисциплина является базовой для последующих курсов, связанных с вопросами алгоритмизации и программирования.

В курс включены синтаксис, семантика и техника программирования на языке СИ, типовые алгоритмы обработки массивов и строк.

Освоение данной дисциплины необходимо для дальнейшего изучения дисциплин по выбору студента, к числу которых относятся курсы «Объектно-ориентированное программирование (С++)», «Высокоуровневые методы программирования (С#)», «Шаблоны проектирования», специальные курсы, а также современные технологии по разработке, распространению и поддержке программного обеспечения.

Формирование компетенций

В результате освоения программы курса у студента должны быть сформированы общекультурные, профессиональные и профессионально-прикладные компетенции.

Данная дисциплина способствует формированию следующих компетенций, предусмотренных ФГОС ВПО по направлению подготовки 09.03.03 «Прикладная информатика»

А)Студент должен обладать следующими общекультурными компетенциями (ОК):

· владением культурой мышления, способностью к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения (ОК-1);

· способностью проявлять инициативу, брать на себя ответственность в условиях риска и принимать нестандартные решения в проблемных ситуациях (ОК-4);

· способностью находить, обрабатывать и анализировать информацию из разных источников (в том числе из глобальных компьютерных сетей) (ОК ¾ 6);

· способностью к самоорганизации и самообразованию (ОК-7);

· способностью использовать навыки работы с информацией из различных источников для решения профессиональных и социальных задач (ОК-12).

Б) Профессиональные компетенции (ПК) – способность применять теоретические знания на практике

· способность применять основные законы, принципы и правила фундаментальных математических и естественных наук для моделирования объектов и процессов исследуемых предметных областей (ОПК-1);

· способность понимать значение информации в развитии современного общества, сознавать опасности и угрозы, возникающие в этом процессе, анализировать, выбирать и применять методы и средства для обеспечения информационной безопасности, в том числе защиты государственной тайны (ОПК-2)

· способность решать стандартные задачи профессиональной деятельности на основе информационной и библиографической культуры с применением информационно-коммуникационных технологий и с учетом основных требований информационной безопасности (ОПК-4).

· способностью проводить тестирование компонентов программного обеспечения ИС (ПК-8);

· способностью применять системный подход и математические методы в формализации решения прикладных задач (ПК-15).

1.4 Требования к результатам освоения дисциплины «Программирование (С)»

В результате изучения дисциплины студент должен:

иметь представление:

· о конструировании алгоритмов,

· о методах структурного и модульного программирования,

· об основных приемах программирования задач на языке С;

· об абстракциях основных структур данных (стек, очереди, списки, деревья и т.п.) и методах их обработки и способах реализации,

уметь:

· самостоятельно выбирать метод решения задачи

· реализовывать алгоритмы на языке программирования Си,

· описывать основные структуры данных,

· реализовывать методы обработки данных,

· работать в средах программирования;

приобрести навыки:

иметь опыт:

реализации их в виде программы на языке СИ,

описания структур данных,

описания основных базовых конструкций,

программирования на языке высокого уровня,

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

Структура курса «Программирование (С)»

Плановая нагрузка

Общая трудоемкость дисциплины составляет 3 зачетных единицы 108 часов.

№ п/пРаздел ДисциплиныСеместрНеделя семестраВиды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)Формы текущего контроля успеваемости (по неделям семестра) Форма промежуточной аттестации (по семестрам)
лекциипрактикас/р
Основные понятия. Структура программы на языке С1-2
Препроцессор языка СИ
Типы данных, выражения и операцииОтчёт по л/р
Операторы управления программой5-6Отчёт по л/р
Указатели, массивы и адресная арифметика7-8Отчёт по л/р
Функции и структура программы9-10Отчёт по л/р
Обработка символьных строк11-12Отчёт по л/р
Динамическое распределение памяти13-14Отчёт по л/р
Ввод, вывод и стандартная библиотека ввода-вывода15-16Отчёт по л/р
Типы, определяемые пользователем17-18Зачет

Рекомендуемые образовательные технологии: лекции, самостоятельная работа, использование интерактивных форм обучения для самостоятельной работы студентов.

2.2. Содержание разделов дисциплины

1. ВВЕДЕНИЕ В ЯЗЫК С.

История создания языка С. Сравнение с другими языками программирования. Структура программы на языке С. Основные понятия: алфавит, константы, идентификаторы, ключевые слова, комментарии к программе, директивы препроцессора.

2. ПРЕПРОЦЕССОР ЯЗЫКА С.

Директива #define, создание и использование макросов. Предопределенные макроимена. Директива #include. Директивы условной компиляции.

3. ТИПЫ ДАННЫХ, ВЫРАЖЕНИЯ И ОПЕРАЦИИ.

Базовые типы данных. Модификаторы типов. Арифметические, логические, битовые операции, операции сравнения. Дополнительные операции (инкрементация, декрементация, условное присваивание, скобки, операция запятая, операция sizeof). Конструирование выражений. Явное и неявное преобразование типов в арифметических выражениях.

4. ОПЕРАТОРЫ УПРАВЛЕНИЯ ПРОГРАММОЙ.

5. УКАЗАТЕЛИ, МАССИВЫ И АДРЕСНАЯ АРИФМЕТИКА.

Работа с адресами и массивами в языке С. Описание адресных переменных и массивов. Операции нахождения адреса и косвенной адресации. Адресная арифметика и работа с указателями. Многомерные массивы, указатели, указатель на указатель, индексированный указатель, массивы указателей.

6. ОБРАБОТКА СИМВОЛЬНЫХ СТРОК.

Определение строк и строковых констант. Инициализация строк. Указатели и строки. Библиотечные функции работы со строками. Реализация библиотечных функций. Массивы строк.

7. ФУНКЦИИ И СТРУКТУРА ПРОГРАММЫ.

Создание и использование простой функции. Формальные и фактические параметры функции. Передача аргументов в функции. Массивы как аргументы функций. Возвращаемое значение. Прототип функции. Рекурсивные функции. Аргументы функции main. Многофайловая программа. Область видимости переменных. Классы памяти и работа с переменными. Автоматические, статические и внешние переменные.

8. ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ.

Статические и динамические массивы. Функции выделения, перераспределения и освобождения памяти: malloc(), calloc(), realloc(), free(). Выделение памяти для одномерных и многомерных массивов.

9. ВВОД, ВЫВОД И СТАНДАРТНАЯ БИБЛИОТЕКА ВВОДА-ВЫВОДА.

Основные понятия: потоки и файлы; текстовые и бинарные потоки; идентификация файлов и потоков. Последовательный ввод-вывод: открытие и закрытие файлов; ввод-вывод символов, строк, целых чисел; форматированный символьный ввод-вывод; ввод-вывод блоков данных. Прямой файловый ввод-вывод: основные понятия; позиционирование локатора файловой позиции, функции получения адреса. Обновление информации в файле. Функции консольного ввода-вывода.

10. ТИПЫ, ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ.

Лабораторный практикум

Общие положения о выполнении лабораторных работ

Лабораторные работы в компьютерных классах служат для самостоятельной работы студентов над учебными задачами с целью выработки и закрепления практических навыков программирования, полученных в рамках теоретического курса «Программирование (язык С)». Лабораторные занятия предполагают изучение студентами интегрированной среды программирования Microsoft Visual Studio, а также подготовку и отладку программ по каждому из разделов курса.

1. Форматированный ввод-вывод. Типы данных.

2. Явное и неявное преобразование типов

3. Разветвляющиеся и циклические алгоритмы

4. Битовые операции

6. Указатели и массивы

7. Работа со строками

8. Оформление программ с использованием функций

9. Определяемые пользователем типы: структуры, объединения, битовые поля.

10. Библиотеки ввода-вывода. Работа с файлами

Задания на лабораторные работы определяются преподавателем из списка задач, приведенных ниже.

3.2. Тематические задания по курсу «Программирование (язык СИ).

Программирование на языке си фомин. Смотреть фото Программирование на языке си фомин. Смотреть картинку Программирование на языке си фомин. Картинка про Программирование на языке си фомин. Фото Программирование на языке си фомин

Программирование на языке си фомин. Смотреть фото Программирование на языке си фомин. Смотреть картинку Программирование на языке си фомин. Картинка про Программирование на языке си фомин. Фото Программирование на языке си фомин

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала.

Программирование на языке си фомин. Смотреть фото Программирование на языке си фомин. Смотреть картинку Программирование на языке си фомин. Картинка про Программирование на языке си фомин. Фото Программирование на языке си фомин

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем.

Программирование на языке си фомин. Смотреть фото Программирование на языке си фомин. Смотреть картинку Программирование на языке си фомин. Картинка про Программирование на языке си фомин. Фото Программирование на языке си фомин

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все.

Программирование на языке си фомин. Смотреть фото Программирование на языке си фомин. Смотреть картинку Программирование на языке си фомин. Картинка про Программирование на языке си фомин. Фото Программирование на языке си фомин

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.).

Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *