- •Введение
- •Изучение среды программирования
- •Теоретические сведения
- •Среда программирования
- •Задание к работе
- •Содержание отчета
- •Контрольные вопросы
- •Переменные и операции над ними
- •Теоретические сведения
- •Основные определения
- •Операции над целыми числами
- •Вещественные числа и операции над ними
- •Задание к работе
- •Содержание отчета
- •Контрольные вопросы
- •Конструкция выбора, логические и другие операции
- •Теоретические сведения
- •Конструкция выбора и составная инструкция
- •Операторы отношения и логические операторы
- •Остальные операторы
- •Задание к работе
- •Содержание отчета
- •Контрольные вопросы
- •Конструкции циклов
- •Теоретические сведения
- •Цикл while
- •Цикл for
- •Конструкция в конструкции
- •Задание к работе
- •Свойства массивов
- •Структуры
- •Задание к работе
- •Операции с указателями
- •Указатели и массивы
- •Указатели и структуры
- •Задание к работе
- •Использование указателей для передачи результата и аргумента
- •Задание к работе
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •644046, Г. Омск, пр. Маркса, 35в
Е. А. АЛЬТМАН, А. В. Александров, Н. Г. Ананьева
ОСНОВЫ ЯЗЫКА С
ОМСК 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], написанная авторами языка С. Она выдержала много изданий на многих языках и является классикой. На данном этапе изучения программирования не рекомендуется использовать другие книги, в которых часто смешивается описание языка, алгоритмы и другие элементы разработки программного обеспечения.
Для проверки освоения теоретических знаний и практических навыков в курсе используются тесты. Тесты проводятся во время проведения лабораторных работ.
-
Изучение среды программирования
Цель работы: изучение среды программирования, получение навыков набора, оформления, компиляции и запуска программ.
Теоретические сведения
-
Среда программирования
Поскольку в текущем курсе изучаются основы программирования, использование сложных интегрированных сред, автоматизирующих многие процессы разработки и делающих часть работы программиста, не целесообразно. Более того, на начальных этапах обучения вредным следует признать использование таких возможностей сред, как точки останова и возможность просмотра значений переменных. Поэтому для компиляции программ будет использоваться простой, и, в то же время универсальный, компилятор 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 Установка корректной кодировки