Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
828 Кб
Скачать
☆

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ТАМБОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Г.Р. ДЕРЖАВИНА»

Д.С. Соловьев, И.А. Соловьева

РАЗРАБОТКА КОМПЛЕКСОВ ПРОГРАММ НА ЯЗЫКЕ С ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ

Учебное пособие

Тамбов 2019

1

УДК 519.6 ББК 22.193

С60

Рекомендовано к печати Учебно-методическим советом ТГУ имени Г.Р. Державина

Р е ц е н з е н т ы :

доктор технических наук, профессор, профессор кафедры «Прикладная геометрия и компьютерная графика» ФГБОУ ВО «ТГТУ» С.И. Лазарев;

доктор технических наук, доцент, профессор кафедры «Математическое моделирование и информационные технологии» ФГБОУ ВО «ТГУ им. Г.Р. Державина» С.В. Ковалев

Соловьев, Д.С.

С60 Разработка комплексов программ на языке С для решения прикладных задач [Электронный ресурс] : учебное пособие / Д.С. Соловьев, И.А. Соловьева ; М-во науки и высш. обр. РФ, ФГБОУ ВО «Тамб. гос. ун-т им. Г.Р. Державина». – Электрон. дан. (1 файл), – Тамбов, 2019. – Режим доступа: https://elibrary.tsutmb.ru/dl/docs/elib535.pdf. ограниченный. – Загл.

с экрана.

ISBN 978-5-00078-263-7

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

Пособие предназначено для бакалавров направления 01.03.02 – Прикладная математика и информатика, а также будет полезно начинающим программистам и тем, кто хочет самостоятельно научиться программировать и освоить язык программирования С.

 

УДК 519.6

 

ББК 22.193

ISBN 978-5-00078-263-7

© Соловьев Д.С., Соловьева И.А., 2019

 

© ФГБОУ ВО «Тамбовский государственный

 

университет имени Г.Р. Державина», 2019

 

2

Содержание

Введение............................................................................................

4

1.

Простые типы данных..................................................................

6

2.

Структурированные типы данных ............................................

17

3.

Функции ......................................................................................

39

4.

Файлы ..........................................................................................

51

5.

Объектно-ориентированное программирование .....................

63

6.

Ввод-вывод..................................................................................

74

Заключение......................................................................................

82

Глоссарий ........................................................................................

83

Литература ......................................................................................

86

3

ВВЕДЕНИЕ

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

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

В данном пособии для реализации алгоритмов используется язык программирования высокого уровня С, разработанный в 1969–1973 гг. сотрудником Bell Laboratories (американской,

а ныне франко-американской корпорации, крупного исследовательского центра в области телекоммуникаций, электронных и компьютерных систем) Деннисом Ритчи при создании (совместно с Кеном Томпсоном) операционной системы Unix.

В настоящее время язык С – один из универсальных языков программирования, удобный для создания как системного и инструментального программного обеспечения, так и прикладного. Важным преимуществом языка С является мобильность разработанных на нем программ, так как их можно достаточно легко переносить из одной вычислительной среды, основную часть которой образует операционная система, в другую. Кроме того, существует возможность получения программного кода, сравнимого по скорости выполнения с программами, написанными на низкоуровневом языке ассемблера. С 1989 г. язык Си регламентируется стандартом ANSI C, а с 2000 г. – современным

4

стандартом ISO/IEC (International Organization for

Standardization/International Electrotechnical Commission – Меж-

дународная организация по стандартизации/Международная электротехническая комиссия). В 2011 г. был принят новый стандарт языка С (ISO/IEC), основным свойством которого является поддержка многопоточности.

Надмножество языка С – язык программирования высокого уровня C++, разработанный к 1983 г. специалистом в области информатики из Дании (ныне профессором Техасского университета) Бьерном Страуструпом. Язык С++ является универсальным языком, поддерживающим объектно-ориентированное программирование.

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

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

5

1.ПРОСТЫЕ ТИПЫ ДАННЫХ

1.1.Простейшая программа на языке С

Создадим простейшую программу на языке С, выводящую на экран некоторую информацию:

#include <stdio.h> #include <stdlib.h>

int main (int argc, char **argv)

{

system ("chcp 1251"); int num;

num = 2;

printf ("Моя первая программа\n");

printf ("Во %d-м семестре я изучаю язык С\n",num); system ("PAUSE");

return 0;}

Рассмотрим ее содержание:

1.#include <stdio.h> – подключить заголовочный файл

stdio.h.

2.#include <stdlib.h> – подключить заголовочный файл stdlib.h.

3.int main(int argc, char **argv) – имя функции. Любая про-

грамма на языке С состоит из одной или нескольких функций.

Вприведенном примере функция одна. Функция c именем main обязательно должна быть в любой исполняемой программе.

4./* простая программа */ – пример оформления комментария.

5.{ } – операторные скобки ({ – начало функции; } – конец функции).

6.system ("chcp 1251"); – вызов функции system для смены кодировки страницы консоли; используется для корректного вывода символов кириллицы.

7.int num; – переменная num описана как переменная целого типа.

6

8.; – указывает, что в этой строке есть оператор языка С (в отличие от других языков программирования является частью оператора, а не разделителем операторов).

9.num = 2; – оператор присваивания. Переменной num присвоено значение 2.

10.printf ("Моя первая программа\n"); – выводит на экран строку и переводит курсор в начало следующей строки, на что указывает \n – управляющий символ.

11.printf ("Во %d–м семестре я учу язык С",num); – на экран выведется строчка – «Во 2-м семестре я учу язык С.» Спецификатор %d показывает, что в этом месте должно быть выведено целое число, после строки указывается имя переменной, значение которой должно быть выведено, в данном случае используется переменная num.

12.system("PAUSE"); – вызов функции system для организации паузы; на экране появится надпись Press any key to continue….

1.2. Элементы языка C

Символы

Используются: a..z

A..Z 0..9

специальные символы: . , : ; „ “ #

{ } [ ] ( )

<>& | ^ ! _ + – / * % =

управляющие символы:

\a – сигнал тревоги (щелчок);

\b – backspace;

\f – переход на следующую страницу; \n – переход на следующую строку;

\r – return;

\t – горизонтальная табуляция;

7

\v – вертикальная табуляция; \0(ноль) – пустой символ;

\ddd – код символа в 8-ой (восьмеричной) с/c;

\xdd – код символа в 16-ой (шестнадцатеричной) с/c.

Идентификаторы

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

Прописные и строчные буквы различаются.

Для разделения идентификаторов служат пробелы, табуляции, “на новую строку”, “на новую страницу”.

Инструкции (Statements)

Любое синтаксически правильно составленное предложение языка С, которое заканчивается символом „ ; „, называется инструкцией.

Любое число инструкций, объединѐнных в { }, называется блоком.

Комментарии

однострочные: //

многострочные: /*…*/ Комментарии не могут быть вложенными.

Типы данных

Базовые типы данных, используемые в языке С, представлены в таблице 1.

 

 

Таблица 1

 

Базовые типы данных

 

 

 

Тип

Длина в байтах

Диапазон

char

8

-128..127

int

16

-32768..32767

float

32

3.4*10-38..3.4*1038

double

64

1.7*10-308..1.7*10308

В языке C существует тип данных, который обозначает пустое значение: void. Он используется для 2-ух целей:

8

для определения функций, которые не возвращают значения;

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

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

модификаторы знака: signed – со знаком, unsigned – без знака;

модификаторы длины: short – короткие, long – длинные. С типом char используются только модификаторы знака (см.

таблицу 2).

Таблица 2

Модификаторы, используемые с типом данных char

signed char (=char)

8

-128..127

unsigned char

8

0..255

Ас типом int используются как модификаторы знака, так

имодификаторы длины (см. таблицу 3).

 

 

Таблица 3

Модификаторы, используемые с типом данных int

 

 

 

Тип

Длина в байтах

Диапазон

short int

 

 

short

8 или 16

Со знаком

signed short int

 

 

signed short

 

 

unsigned short int

8 или 16

Без знака

unsigned short

 

 

signed int

 

 

signed

16

Cо знаком

int

 

 

long int

 

 

long

32 или 16

-2147483648

signedlongint

..2147483647

 

signedlong

 

 

9

C типом float модификаторы не работают.

С типом double используется только модификатор long (см. таблицу 4).

Таблица 4

Модификаторы, используемые с типом данных double

Тип

Длина в байтах

Диапазон

long double

80

3.4*10-4932.. 3.4*104932

Константы

Не изменяющиеся данные определѐнного типа называются константами.

Замечание: любой символ может быть представлен последовательностью 3-х восьмеричных цифр или 2-мя шестнадцатеричными.

Замечание: целые константы могут определяться в восьмеричной системе счисления и шестнадцатеричной системе счисления:

8-ая с/с: 0dd...d 012 = 1010

16-ая c/c: 0xdd...d 0x12 = 1810

Переменные

Переменная – это поименованная область памяти, в которой хранятся данные определѐнного типа.

Синтаксис:

<тип><список идентификаторов> Пример:

float d; int i, j, k;

При своѐм объявлении значение переменной может быть инициализировано:

Пример: int i = 1;

Модификаторы доступа

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]