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

Учебное пособие_С++2015

.pdf
Скачиваний:
179
Добавлен:
15.03.2016
Размер:
2.8 Mб
Скачать

Оглавление

 

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

3

1. Основы алгоритмизации и программирования ....................................................

4

1.1. Этапы подготовки и решения задач на ЭВМ .................................................

4

1.2. Алгоритмы и способы их описания ................................................................

6

1.3. Компиляция и интерпретация программ ......................................................

13

1.4. Стили программирования...............................................................................

14

2. Основы алгоритмического языка С++ ...............................................................

23

2.1. Пример готовой программы...........................................................................

23

2.2. Структура основной программы ...................................................................

25

2.3. Алфавит языка .................................................................................................

26

2.4. Константы и переменные ...............................................................................

27

2.5. Арифметические выражения .........................................................................

30

Стандартные функции ......................................................................................

31

Контрольные задания.............................................................................................

33

2.6. Линейные вычислительные процессы ..........................................................

36

Контрольные задания........................................................................................

47

2.7. Разветвляющиеся вычислительные процессы .............................................

50

Контрольные задания........................................................................................

62

2.8. Циклические вычислительные процессы .....................................................

64

2.9. Базовые алгоритмы .........................................................................................

70

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

77

2.10.1. Указатели ...............................................................................................

77

2.10.2. Понятие массива....................................................................................

80

Обработка одномерных массивов .............................................................

83

Обработка матриц .......................................................................................

91

2.11. Подпрограммы...............................................................................................

97

 

161

Перегрузка функций в С++ ............................................................................

112

Рекурсия ...........................................................................................................

114

Технология сборки библиотеки .....................................................................

115

2.12. Текстовые данные .......................................................................................

119

Символьный тип данных ................................................................................

119

Строки...............................................................................................................

121

Контрольные задания......................................................................................

130

2.13. Динамическое выделение памяти..............................................................

132

2.14. Структуры данных..................................................................................

137

2.15. Файлы данных .............................................................................................

143

2.15.1. Работа с файлами в стиле С ...............................................................

144

2.15.2. Работа с потоками в С++ ....................................................................

157

Контрольные задания.....................................................................................

158

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

160

ЛИТЕРАТУРА .........................................................................................................

163

ПРИЛОЖЕНИЕ .......................................................................................................

164

162

ЛИТЕРАТУРА

1.Голицына О.Л. Основы алгоритмизации и программирования. М.:

Форум. 2008.- 431с.

2.Страуструп Б. Язык программирования С++.: монография / пер. с англ. под ред. Н.Н. Мартынова. - М.: Бином, 2011. - 1135с.

3.Страуструп Б. Программирование: принципы и практика использования С++.: монография / Б.Страуструп. - Испр. изд. - М. : Издат.дом "Вильямс", 2011. - 1238с.

4.Павловская T.А. С/С++ Программирование на языке высокого уровня. Спб.: Питер, 2012 – 461с.

5.Лаптев В.В. С++ объектно-ориентированное программирование : учеб. пособие / В. В. Лаптев. - СПб.: ПИТЕР, 2008. - 457с. - Библиогр.:

с. 453-457.

6.Ашарина И. В. Объектно-ориентированное программирование в С++

:лекции и упражнения : учеб. пособие / И. В. Ашарина. - М. : Горячая линия-Телеком, 2008. - 319с.

7.Эпштейн М. С. Практикум по программированию на языке С. М.:

Академия, 2007, -102с.

8.Шилдт Г. Полный справочник по C++. М.: Вильямс, 2006,- 217с.

9.http://256bit.ru/informat/index11.htm

163

ПРИЛОЖЕНИЕ

Функции стандартной библиотеки (неполный перечень)

Функции сгруппированы по заголовочным файлам, в которых они описаны.

Заголовочный файл <math.h> (<cmath>) – математические функции

Имя функции

Прототип функции

Назначение

 

 

 

acos

double acos(double x);

Возвращает арккосинус

 

 

аргумента

 

 

 

Функция возвращает арккосинус аргумента х в радианах

 

 

 

asin

double asin(double x);

Возвращает арксинус

 

 

аргумента

 

 

 

Функция возвращает арксинус аргумента х в радианах.

 

 

 

atan

double atan(double x);

Возвращает арктангенс

 

 

аргумента

 

 

 

Функция возвращает арктангенс аргумента х в радианах

 

 

 

atan2

double atan2(double y,

Возвращает арктангенс

 

double x);

отношения аргументов

 

 

 

Функция возвращает арктангенс отношения параметров y/х в радианах.

 

 

 

ceil

double ceil(double x);

Округляет вверх

 

 

 

Функция округляет вещественное значение х до ближайшего большего к

нему целого и возвращает его как вещественное.

 

 

 

 

cos

double cos(double x );

Вычисляет косинус

 

 

 

Функция возвращает значение косинуса угла, равного х радиан.

 

 

 

 

 

164

cosh

double cosh(double x);

Вычисляет

 

 

 

гиперболический косинус

 

 

 

Функция возвращает значение гиперболического косинуса угла, равного х

радиан.

 

 

 

 

 

 

exp

double exp (double x);

Возвращает степень числа

 

 

 

e

 

 

 

Функция возвращает результат возведения числа e в указанную степень х.

 

 

 

fabs

double fabs(double x);

Возвращает модуль числа

 

 

 

Функция возвращает абсолютное значение числа х .

 

 

 

floor

double floor(double x);

Округляет вниз

 

 

 

Функция округляет вещественное число х до ближайшего меньшего целого и

возвращает его как вещественное.

 

 

 

 

 

fmod

double

fmod(double x,

Возвращает остаток от

 

double

y );

деления x на y

 

 

 

Функция возвращает остаток от деления х на y. Аналогична операции %, но

работает с вещественными числами

 

 

 

 

log

double log(double x );

Вычисляет натуральный

 

 

 

логарифм

 

 

 

Функция возвращает значение натурального логарифма х

 

 

 

log10

double log10(double x);

Вычисляет логарифм по

 

 

 

основанию 10

 

 

 

 

 

 

 

165

Функция возвращает значение логарифма х по основанию 10

modf

double

modf(double x,

Разбивает число на целую

 

double

*intptr );

и дробную части

 

 

 

 

Функция разбивает число х на целую и дробную части, причем дробную часть числа возвращает, а целую часть числа помещает по адресу, определяемому указателем inptptr

pow

double

pow(double x,

Возводит число в степень

 

double

y );

 

 

 

 

 

Функция вычисляет значение числа х в степени y

sin

double sin(double x);

Вычисляет синус

 

 

 

Функция возвращает значение синуса угла, равного х радиан.

sinh

double sinh(double x );

Вычисляет

 

 

гиперболический синус

 

 

 

Функция возвращает значение гиперболического синуса угла, равного х радиан.

sqrt

double sqrt(double x );

Вычисляет квадратный

 

 

корень

 

 

 

Функция возвращает квадратный корень из числа

х

tan

double tan(double x );

 

Вычисляет тангенс

 

 

 

аргумента

 

 

 

 

Функция возвращает значение тангенcа аргумента

х

166

tanh

double tanh(double x );

Вычисляет

 

 

гиперболический тангенс

 

 

аргумена

 

 

 

Функция возвращает значение гиперболического тангенcа аргумента х

Заголовочный файл <stdlib.h> (<cstdlib>) – различные функции в стиле С

Имя функции

Прототип функции

Назначение

 

 

 

 

 

abort

void abort(void);

Прерывает

 

 

 

 

 

выполнение

 

 

 

 

 

программы

 

 

 

 

 

Функция прерывает выполнение программы, возвращая код завершения по

 

умолчанию равный 3.

 

 

 

 

 

 

 

 

 

atoi

int atoi(const char

Преобразует строку

 

 

*str);

 

 

в длинное целое

 

 

 

 

 

число

 

 

 

 

 

Функция преобразует строку, содержащую символьное представление целого

 

числа, в соответствующее целое число. Если преобразование не удалось,

 

возвращает 0.

 

 

 

 

 

 

 

 

 

calloc

void *calloc(size_t

Выделяет блок

 

 

num, size_t

size);

памяти

 

 

 

 

 

Функция выделяет блок памяти ( num элементов по size байт) и возвращает

 

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

 

нулевым значением. Если выделить блок не удалось, возвращает NULL.

 

 

 

 

 

 

free

void

free(void

Освобождает блок

 

 

*pointer);

 

памяти

 

 

 

 

 

Функция освобождает блок памяти, полученный ранее одной из функций

 

malloc, calloc.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

167

malloc

void *malloc(size_t

Выделяет блок

 

size);

памяти

 

 

 

Функция выделяет блок памяти размером size байт и возвращает указатель на него. В случае неудачи возвращаемым значение будет NULL.

qsort

void qsotr(void

buf,

 

size_t

num,

size_t

 

size,

int (compare)

 

(const

void *, const

 

void *));

 

 

 

 

 

Сортирует заданный массив

Функция выполняет сортировку массива любых размеров и типов. Сортируемый массив: buf – указатель на массив, num – число элементов, size – размер каждого элемента. compare – адрес функции, которая сравнивает два значения, передаваемые ей функцией qsort.

rand

int rand(void);

Генерирует

 

 

случайные числа

 

 

 

Функция возвращает очередное псевдослучайное число в диапазоне от 0 до

RAND_MAX.

srand

void srand(unsigned

Устанавливает

 

int seed);

начальное

 

 

псевдослучайное

 

 

число

 

 

 

Функция устанавливает начальное значение последовательности псевдослучайных чисел.

Заголовочный файл <stdio.h> (<cstdio>) – функции ввода/вывода в стиле С

Имя функции

Прототип функции

Назначение

 

 

 

fclose

int fclose(FILE *f);

Закрывает поток

 

 

 

168

ввода/вывода

Функция закрывает поток ввода/вывода, на который указывает дескриптор f.

feof

int feof(FILE *f );

Проверяет

 

 

достижение конца

 

 

файла

 

 

 

Функция возвращает значение EOF или значение , отличное от 0, если достигнут конец файла, в противном случае возвращает 0.

fgetc

int fgetc(FILE *f );

Читает из потока

 

 

символ

 

 

 

Функция возвращает очередной символ в форме int из потока f. Если символ не может быть прочитан, возвращает EOF.

fgets

int

fgets(char

*s,

Читает из потока в

 

int

n, FILE *f

);

стоку n символов

 

 

 

 

 

Функция читает не более n-1 байт из потока f в строку s. Прекращает чтение при обнаружении символа новой строки или конца файла.

fopen

FILE *fopen(const

Открывает поток

 

char

*fname, const

ввода/вывода

 

char

*mode );

 

 

 

 

 

Функция открывает файл с именем fname, для работы в режиме, указанном строкой mode. При успешном открытии возвращает указатель на поток, в противном случае – NULL.

fprintf

int fprintf(FILE *f,

Записывает данные

 

const char *fmt, …);

в поток

 

 

 

Функция записывает в поток f переменные, список которых обозначен многоточием (…), в формате, указанном строкой fmt.

fputc

int fputc(int ch, FILE

Записывает символ

 

*f);

в поток

 

 

 

Функция записывает символ ch в поток f. При ошибке возвращает

169

значение EOF.

fputs

int

fputs(const char

Записывает строку

 

*s,

FILE *f);

символов в поток

 

 

 

 

Функция записывает строку s в поток f. Символ конца строки в файл не записывается. . При ошибке возвращает значение EOF.

fread

size_t

fread(void

Читает данные из

 

*buffer, size_t size,

потока ввода

 

size_t count, FILE

 

 

*stream);

 

 

 

 

 

 

Функция считывает count элементов по size байтов в область, заданную указателем buffer, из потока stream. Функция возвращает количество

прочитанных элементов, которое может быть меньше

count.

 

 

 

 

fscanf

int fscanf(FILE *f,

 

Вводит из файла

 

const

char

*fmt [par1,

 

форматированные

 

par2,

…]);

 

 

данные

 

 

 

 

 

 

Функция вводит строку параметров par1, par2 и т.д. в формате, определенном строкой fmt, из файла f. Возвращает число переменных, которым присвоено значение.

fseek

int fseek (FILE

*f,

Перемещает

 

long off, int

org);

позицию в файле

 

 

 

относительно

 

 

 

текущей

 

 

 

 

 

Функция перемещает текущую позицию в файле, связанном с потоком f, на позицию off, отсчитываемую от значения org, которое должно быть равно одной из трех констант, определенных в <stdio.h>:

SEEK_CUR – от текущей позиции указателя;

SEEK_END – от конца файла;

SEEK_SET – от начала файла;

fwrite

size_t

fwrite ( const

Записывает данные

 

void

*p, size_t size,

 

 

 

 

 

 

 

170