- •3 Аттестация
- •Понятие подпрограммы. Функции как способ записи подпрограмм. Функции как расширение понятия операции и оператора. Правила записи функций.
- •Заголовок функции, правила его записи. Тип функции. Формальные параметры функции. Передача параметров по значению и по ссылке.
- •Тело функции. Локальные объекты функции. Возвращаемое значение и его тип.
- •Тело функции как блок. Принцип вложенности блоков. Правила видимости для программных объектов.
- •Вызовы функций. Фактические параметры (аргументы) функции. Передача параметров по значению и по ссылке. Правила соответствия между формальными и фактическими параметрами.
- •Механизм вызова функций.
- •11. Выражения, значения выражений и правила их вычислений. Тип выражения.
- •12. Приоритеты операций при вычислении выражений.
- •14. Синтаксис и семантика оператора выражения. Примеры применения оператора выражения.
- •15. Синтаксис и семантика условного оператора. Примеры применения условного оператора.
- •16. Синтаксис и семантика оператор выбора. Примеры применения оператор выбора.
- •18. Синтаксис и семантика оператора цикла с предусловием. Примеры применения оператора цикла с предусловием.
- •20. Синтаксис и семантика оператора цикла с параметром. Примеры применения оператора цикла с параметром.
- •21. Структурные типы данных. Массивы. Описание массива. Размер и размерность массива.
- •22. Задача поиска в массиве. Алгоритмы поиска.
- •23. Задача сортировки массива.
- •24. Задача сортировки массива. Алгоритм сортировки методом включения.
- •25. Задача сортировки массива. Алгоритм сортировки методом обмена.
- •26. Строки, их структура. Основные операции над строками.
Механизм вызова функций.
/*В процессе компиляции программы для глобальных констант и переменных отводится место в оперативной памяти и в откомпилированном коде их имена заменяются адресами соответствующих ячеек памяти (ссылками).
Выделение памяти для размещения локальных констант и переменных, а также передаваемых фактических параметров производится в момент вызова процедуры или функции.
Для их размещения используется специальная область памяти, называемая стеком.*\
Вызов функции Осуществляется путем указания имени функции со списком фактических параметров – литералов, констант, переменных – являющихся параметрами при соответствующем вызове
Примерами таких вызовов могут служить обращения к функциям стандартных библиотек
Например:
void printResult(int startIndex, int finishIndex, char s[100][100], FILE *LOL)
{ for (int i = startIndex; i < finishIndex; i++)
{ fputs(s[i],LOL);
cout<<s[i]; }
}
…
if (mode==1)
printResult(k, NumOfFeeds, s, LOL);
if (mode==2)
printResult(1, NumOfFeeds-k, s, LOL);
7. Вещественные типы данных в языке C++.
Литералы вещественного типа.
Тип
Диапазон
Значащих цифр
Размер (байт)
float
3,4E–38 ... 1,7E+38
15–16
4
double
1,7E–308 … 1,7E+308
15–16
8
long double
3,4E–4932 … 3,4E+4932
19–20
10
В силу ограниченности объема памяти, отводимой для хранения одного числа,
в памяти компьютера может быть представлено лишь ограниченное дискретное
подмножество вещественных чисел
Используются два способа представления вещественных чисел:
в форме с фиксированной точкой (Fixed point format)
в форме с плавающей точкой (Floating point format)
форма с фиксированной точкой.
Число представлено в виде s*c.d
где s – знаковый множитель (+1 или -1),
c – последовательность цифр целой части числа,
d – последовательность цифр дробной части числа
Форма с плавающей точкой.
Число представлено в виде s*m*2(p-p0)
где s – знаковый множитель (+1 или -1),
p – целое, являющееся порядком числа, p0 – константа,
m – мантисса числа, подчиняющаяся условию нормализации 1<= m <2
Размеры полей
s - 1 бит
p –8 бит для float, 11 бит для double, 16 бит для long double
m – 23 бит для float, 52 бит для double, 63 бит для long double
Таким образом, типы float, double и long double представляют
вещественные данные в форме с плавающей точкой
Различают вещественные литералы в форме с фиксированной и с плавающей точкой
Вещественный литерал в форме с фиксированной точкой содержит одну или более цифр и, возможно, предшествующие цифрам знаки + или -
Кроме того, он должен содержать символ точки для отделения дробной части числа
Вещественный литерал в форме с плавающей точкой состоит из записи мантиссы и порядка
Мантисса записывается как литерал целого типа или вещественного типа в форме с фиксированной точкой
Порядок записывается как литерал целого типа
Разделителем между порядком и мантиссой является символ E
Например:форма с фиксированной точкой 137.04;-19.321
форма с плавающей точкой 2.78E+3;1E-10;0.12378E287;-147E1
8. Символьные типы данных в языке C++. Литералы символьного типа.
Для хранения данных типа char отводится 1 байт памяти, что достаточно для представления всех символов таблицы ASCII
Литералы этого типа записываются в виде одиночных символов либо восьмеричных (шестнадцатеричных) кодов символов с предшествующим символом «обратный слэш», заключенных в апострофы: ‘A’, ‘#’, ‘\102’, ‘\x31’
Любая последовательность символов, заключенная в апострофы: ‘Computer science’ ‘Строка исходных данных’ ‘345’ ‘1-е число’ ‘s”
9. Организация ввода и вывода в языке C++.
Описание форматов данных при вводе и выводе.
%d вывод целого числа
%f вывод вещественного числа
%с вывод одного символа
%s вывод символьной строки
printf и scanf – форматируемый вывод в поток stdout
scanf(“<спецификаторы вида %...>”, <адреса переменных вида &a>)
printf(“<спецификаторы вида %...>”, <переменные вида а>)
Виды спецификаторов:
c Символ
s Строка символов
d, i Целое десятичное со знаком
o Целое восьмеричное
u Целое десятичное без знака
x, X Целое шестнадцатеричное
f Дробное число в фиксированном формате
e, E Дробное число в научном формате
g, G Дробное число в научном или фиксированном формате
p Указатель (в шестнадцатеричном виде)
Например:
int x,y;
scanf(“%d %d”, &x,&y);
printf(“x=%d, y=%d”, x, y);
cin и cout
cin>>[переменые]
cout<<”текст”<<[переменные]
10. Операции в языке C++, их описание.
Операцией называется действие над значениями, в результате которого получается новое значение
В зависимости от числа операндов операции делятся на:
унарные,
бинарные,
Операции обозначаются ключевыми словами, а также одиночными или двойными специальными символами
Кроме арности операции различаются уровнем приоритета
Наконец еще одной характеристикой операций в C++ является направление ассоциативности,которая определяет последовательность выполнения операций одного уровня приоритета при вычислении значения выражений
Бинарные операции требуют для своего выполнения двух значений
Мультипликативные операции:
*- умножение
/- деление
%- остаток от деления
Бинарные аддитивные
К этой группе операций относятся:
+ - сложение
- - вычитание
Бинарные операции отношения
К этой группе операций относятся:
<- меньше
<=- меньше или равно
>=- больше или равно
>- больше
Определены следующие операции (в порядке убывания приоритета)
& – поразрядное И
^ – поразрядное ИЛИ исключающее
| – поразрядное ИЛИ
&& – логическое И
|| – логическое ИЛИ
При вычислении выражения выполнение операций над операндами происходит в определенном порядке
Порядок выполнения операций определяется приоритетом соответствующей группы операций