584_Lebedenko_L.F._Osnovy_programmirovanija_na_S++_
.pdfОглавление |
|
Введение................................................................................................................... |
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. Циклические вычислительные процессы ................................................... |
63 |
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. Прекращает чтение при обнаружении символа новой строки или конца файла.
f |
FILE *fopen(const |
Открывает поток |
|
open |
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. |
||||
|
|
|
|
||
f |
int fscanf(FILE *f, |
|
Вводит из файла |
||
scanf |
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 |
|