Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Программирование.doc
Скачиваний:
8
Добавлен:
08.11.2018
Размер:
477.7 Кб
Скачать

Е. А. АЛЬТМАН, А. В. Александров, Н. Г. Ананьева

ОСНОВЫ ЯЗЫКА С

ОМСК 2011

Министерство путей сообщения Российской Федерации

Омский государственный университет путей сообщения

––––––––––––––––

Е. А. Альтман, А.В. Александров, Н.Г. Ананьева

Основы языка С

Утверждено редакционно-издательским советом университета

в качестве методических указаний к лабораторным работам по дисциплинам «Программирование», «Технология программирования»

Омск 2011

УДК 004.43

ББК 32.973-018.1

А58

Основы языка С: Методические указания к лабораторным работам по дисциплинам «Программирование» и «Технологии программирования» / Е. А. Альтман, А.В. Александров, Н.Г. Ананьева; Омский гос. ун-т путей сообщения. Омск, 2011. XX с.

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

Методические указания предназначены для студентов 1-гокурса направлений «080500 ­– Бизнес-информатика», «220400 – Управление в технических системах», «221000 – Мехатроника и робототехника», «230100 – Информатика и вычислительная техника» и «230400 ­– Информационные системы и технологии» изучающих дисциплины «Программирование» и «Технология программирования».

Библиогр.: 3 назв. Табл. 6. Рис. 1.

Рецензенты:

канд. техн. наук, доцент А.В. Гаврилов

доктор техн. наук, профессор Е.А. Сидорова

©

Омский гос. университет путей сообщения, 2011

ОГЛАВЛЕНИЕ

Введение 6

Лабораторная работа 1 Изучение среды программирования 7

Теоретические сведения 7

1.1.1. Среда программирования 7

Задание к работе 10

Содержание отчета 10

Контрольные вопросы 10

Лабораторная работа 2 Переменные и операции над ними 11

Теоретические сведения 11

2.1.1. Основные определения 11

2.1.2. Операции над целыми числами 13

2.1.3. Вещественные числа и операции над ними 16

Задание к работе 18

Содержание отчета 18

Контрольные вопросы 18

Лабораторная работа 3 Конструкция выбора, логические и другие операции 19

Теоретические сведения 19

3.1.1. Конструкция выбора и составная инструкция 19

3.1.2. Операторы отношения и логические операторы 21

3.1.3. Остальные операторы 22

Задание к работе 23

Содержание отчета 24

Контрольные вопросы 24

Лабораторная работа 4 Конструкции циклов 24

Теоретические сведения 24

4.1.1. Цикл while 24

4.1.2. Цикл for 25

4.1.3. Конструкция в конструкции 26

Задание к работе 27

Содержание отчета 28

Контрольные вопросы 28

Лабораторная работа 5 Массивы и структуры 29

Теоретические сведения 29

5.1.1. Пример массива 29

5.1.2. Свойства массивов 30

5.1.3. Строки 31

5.1.4. Структуры 32

Задание к работе 33

Содержание отчета 34

Контрольные вопросы 34

Лабораторная работа 6 Указатели 34

Теоретические сведения 34

6.1.1. Указатели 34

6.1.2. Операции с указателями 35

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

6.1.4. Указатели и структуры 37

Задание к работе 38

Содержание отчета 38

Контрольные вопросы 38

Лабораторная работа 7 Функции 39

Теоретические сведения 39

7.1.1. Функции 39

7.1.2. Использование указателей для передачи результата и аргумента 40

Задание к работе 41

Содержание отчета 41

Контрольные вопросы 42

Введение

В методических указаниях описываются цикл лабораторных работ, которые проводятся в 1 семестре на 1 курсе по дисциплине «Программирование» (для отдельных направлений дисциплина называется «Технология программирования»).

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

При изучения языка С рекомендуется использовать компилятор GCC. В Unix-подобных системах этот компилятор поставляется вместе с операционной системой, для Windows можно использовать его портированный вариант – MinGW. Этот компилятор поддерживает стандарт ANSI C, поэтому все рассматриваемые примеры должны работать и в других средах.

В рамках рассматриваемого цикла не рекомендуется использовать интегрированные среды разработки (IDE), такие, как, например, Visual Studio. Во-первых, особенности работы такой среды не связаны с языком программирования, а их изучение отнимает время. Во-вторых, имеющиеся в среде возможности автоматизации некоторых операций полезны профессиональным программистам, а при обучении будут скорее мешать, поскольку операция, сделанная компьютером за студента, студентом не освоится.

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

Основной литературой к циклу лабораторных работ является книга [1], написанная авторами языка С. Она выдержала много изданий на многих языках и является классикой. На данном этапе изучения программирования не рекомендуется использовать другие книги, в которых часто смешивается описание языка, алгоритмы и другие элементы разработки программного обеспечения.

Для проверки освоения теоретических знаний и практических навыков в курсе используются тесты. Тесты проводятся во время проведения лабораторных работ.

  1. Изучение среды программирования

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

Теоретические сведения

      1. Среда программирования

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

Этот компилятор является основным для бесплатных Unix-подобных систем, и может использоваться в них без установки дополнительного программного обеспечения. Для работы под Windows нужно установить один из портов этого компилятора – MinGW (простой вариант, рекомендуется к применению) или CygWin.

Кроме компилятора, для работы понадобится текстовый редактор, предпочтительно с подсветкой синтаксиса и с возможностью работы с различными кодировками. Не следует путать текстовые редакторы с текстовыми процессорами, такими, как, например MS Word. Текстовые процессоры добавляют к видимому тексту непонятную компилятору дополнительную информацию по оформлению текста и не подходят для набора исходного кода программ. В Linux системах, как правило, есть встроенный редактор (например, gedit), для Windows рекомендуется скачать какой-либо бесплатный, например notepad++.

Программы, набранные под одной операционной системой, должны компилироваться и запускаться под другой. Проблема может возникнуть с кодировкой русских букв. В командной строке Windows программы, по-умолчанию, должны выводить буквы в кодировке DOS (OEM 866), под Linux, скорее всего, UTF-8. Также, некоторые текстовые редакторы могут понимать не все кодировки.

Далее опишем процесс создания программы под операционной системой Windows (под Linux все делается аналогичным образом и у человека, использующего эту систему, проблем возникнуть не должно).

Первым шагом нужно набрать исходный код программы. Пример приведен на рис. 1. Набранный текст нужно сохранить в файле. В дальнейшем, при редактировании программы, не забывайте сохранять внесенные изменения. Компилятор будет компилировать файл на диске, а не текст, показанный в текстовом редакторе.

Для удобства изложения код программы приводится как фрагмент снимка экрана, на котором открыт текстовый редактор с исходным кодом. В редакторе имеется служебное поле с номерами строк, на которые удобно ссылаться при рассмотрении примера.

Рис. 1 Пример исходного кода программы

В рассмотренном примере есть главная функция «main()». Эта функция будет вызываться при запуске программы. Все действия, которые должны быть выполнены в программе, заключены в так называемые операторные скобки, которые в языке С обозначаются с помощью фигурных скобок (во 2 строке – открывающая скобка, в 4 – закрывающая). В нашей программе одно действие – функция «printf("Hello, world!");», которая печатает на экран сообщение, записанное в кавычках.

Компиляция и запуск программы выполняются из командной строки. В старых версиях операционной системы (например, в Windows XP) нужно нажать кнопку «пуск», выбрать меню «запуск программ» и в открывшемся окне набрать и выполнить команду «cmd». В новых версиях нужно нажать кнопку с эмблемой Windows, а команду «cmd» нужно набрать в поле поиска программ и файлов.

В открывшемся окне нужно перейти в каталог с компилятором. Перейти на диск можно набрав имя диска и двоеточие. Чтобы перейти в каталог, нужно выполнить команду «cd полный_путь_к_компилятору» (курсивом отмечается параметр, вместо которого нужно подставить собственное значение). Для того, чтобы подняться на каталог более высокого уровня, можно воспользоваться командой «cd ..». Пример приведен на рис. 2.

Рис. 2 Пример перехода в каталог с компилятором

Компилятор запускается командой «gcc имя_файла». Файл с программой обычно находится в другом каталоге, поэтому нужно указывать полное имя файла, например: «D:\MinGW\bin>gcc d:/work/prog1.c».

По умолчанию программа скомпилируется в тот же каталог с именем «a.exe». Чтобы ее запустить, достаточно набрать имя файла, например, «D:\MinGW\bin>a».

Сказанного выше достаточно, чтобы набрать и скомпилировать все учебные программы из изучаемого курса, однако, для удобства работы рекомендуется освоить некоторые дополнительные возможностей компилятора и текстового редактора.

Часто удобно указать имя программы, которая должна быть скомпилирована. Делается это с помощью опции «-o» компилятора: «D:\MinGW\bin>gcc d:/work/prog1.c -o d:/work/myprog.exe».

Если исходный текст программы находится в нескольких файлах, то для его компиляции исходные файлы можно указать через пробел: «D:\MinGW\bin>gcc d:/work/hello.c d:/work/test.c -o d:/work/myprog.exe».

Чтобы не набирать при компиляции длинные строки, можно вызывать ранее введенные в командной строке команды с помощью клавиши «стрелка вверх».

Если вы хотите, чтобы программа выдавала сообщения на русском языке, то для исходного кода в текстовом редакторе нужно установить кодировку DOS (OEM 866), например, как показано на рис. 3.

Рис. 3 Установка корректной кодировки