cin >> some_variable;
Вы уже знаете, что программы на C++ используют выходной поток cout для вывода сообщений на экран. При использовании cout для вывода сообщений представляйте cout в виде потока символов, которые операционная система отображает на экране. Другими словами, порядок, в котором ваша программа посылает символы в cout, определяет порядок символов, которые будут появляться на экране. Например, для следующих операторов программы:
cout << "Это сообщение появляется первым,";
cout << " а за ним следует настоящее сообщение.";
Операционная система выводит поток символов следующим образом:
Это сообщение появляется первым, а за ним следует настоящее сообщение.
Оператор вставки (<<) называется так, потому что позволяет вашей программе вставлять символы в выходной поток.
13. Организация форматированного ввода-вывода в языке С++.
14. Общее понятие одномерных массивов данных. Описание одномерных массивов на языке С++.
Массив представляет собой последовательность элементов одного типа. Каждому элементу массива соответствует индекс - целое неотрицательное число, определяющее его номер в последовательности. Первому элементу массива соответствует индекс 0.
Массивы, элементы которых однозначно определяются одним индексом, называются одномерными. В виде одномерного массива можно представить, например, список фамилий студентов одной группы, где каждый студент однозначно определяется своим порядковым номером в списке. Определение одномерного массива имеет вид:
<тип элементов массива> <имя массива> [<количество элементов в массиве>];.
В C++ можно определить массив любого типа.
int mas[3]; - описан массив из 3 целых чисел.Нумерация в массивах начинается с 0-го элемента. Поэтому массив mas содежит: mas[0], mas[1], mas[2].
15. Типовые алгоритмы обработки одномерных массивов данных на языке С++.
Нахождение суммы элементов массива
Для нахождения суммы элементов массива используется следующий алгоритм. Сначала предполагается, что значение искомой суммы равно нулю. Далее на каждом шаге цикла проводится накопление данной суммы путем добавления к уже имеющемуся значению суммы значения очередного элемента массива. Если суммирование проводится не по всем элементам массива, то в программу добавляется условный оператор проверки выполнения наложенного на элементы массива условия.
Поиск данных в массивах
Поиск информации, удовлетворяющей определенным условиям, является одной из наиболее распространенных задач обработки массивов. В частности, к данному классу задач можно отнести поиск наибольших и наименьших элементов массива, поиск элементов, удовлетворяющих разнообразным операциям отношений (больших заданного числа, равных ему и т.д.) и другие.
16. Методы сортировки массивов.
Сортировкой массива называют упорядочение его элементов в соответствии с определенными правилами (как правило, по возрастанию или убыванию элементов).
Алгоритм линейной сортировки массивов по возрастанию заключается в следующем. Сначала первый элемент массива сравнивается по очереди со всеми оставшимися элементами. Если очередной элемент массива меньше по величине, чем первый, то эти элементы переставляются местами. Сравнение продолжается далее уже для обновленного первого элемента, в результате чего будет найден и установлен на первое место самый наименьший элемент массива. Далее продолжается аналогичный процесс уже для оставшихся элементов массива, т.е. второй элемент сравнивается со всеми остальными и, при необходимости, переставляется с ними местами. Алгоритм завершается, когда сравниваются и упорядочиваются предпоследний и последний из оставшихся элементов массива.
Особенностью сортировки методом «пузырька» является не сравнение каждого элемента со всеми, а сравнение в парах соседних элементов. Данный алгоритм состоит в последовательных просмотрах от начала к концу элементов массива. Если для пары соседних элементов выполняется условие, что элемент справа больше элемента слева, то производится обмен значениями этих элементов, т.е. в процессе выполнения алгоритма постепенно «всплывают» более «легкие» элементы массива.
Метод Шелла- многопроходная сортировка, список разбивается на подсписок.
Метод корневой сортировки- разбивается на стопки и при каждом проходе используется отдельная часть ключа.
17. Общее понятие многомерных массивов данных. Описание матриц на языке С++.
Многомерные массивы - это массивы с более чем одним индексом. Многомерный массив представляет собой массив массивов, то есть массив, элементами которого служат массивы. Определение многомерного массива в общем случае должно содержать сведения о типе, размерности и количествах элементов каждой размерности. Чаще всего используются двумерные массивы. При описании многомерного массива необходимо указать C++, что массив имеет более чем одно измерение.
int t[3][4]; - описывается двумерный массив, из 3 строк и 4 столбцов.Элементы массива:
t[0][0] t[0][1] t[0][2] t[0][3]t[1][0] t[1][1] t[1][2] t[1][3]t[2][0] t[2][1] t[2][2] t[2][3]При выполнении этой команды под массив резервируется место. Элементы массива располагаются в памяти один за другим:
Если число строк двумерного массива равняется числу столбцов, то матрицы данного типа называются квадратными. Элементы квадратной матрицы вида B[1,1], B[2,2], B[3,3]… составляют главную диагональ.
int temp [3] [15] [10]; - резервируется место под 3-х мерный массив.В памяти многомерные массивы представляются как одномерный массив, каждый из элементов которого, в свою очередь, представляет собой массив. Рассмотрим на примере двумерного массива: int a[3][2]={4, l, 5,7,2, 9} как он представляется в памяти:
a[0][0] | заносится значение 4 |
a[0][1] | заносится значение 1 |
a[1][0] | заносится значение 5 |
a[1][1] | заносится значение 7 |
a[2][0] | заносится значение 2 |
a[2][1] | заносится значение 9 |
Второй способ инициализации при описании массива
int а[3][2]={ {4,1}, {5, 7}, {2, 9} };Обращение к элементу массива производится через индексы.
cout << а[0][0]; - выдаст значение 4. cout << a[1][1]; - выдаст знaчение 7.18.Указатели. Способы инициализации указателя. Операторы выделения и освобождения памяти. Операции с указателями.
В языке C++ для создания и обработки массивов обычно используют указатели. Указатель - это переменная, содержащая адрес другой переменной или, говоря другими словами, указатель - символическое представление адреса.
В С++ указатели могут быть на любой тип данных. Значением объекта типа указатель является целое неотрицательное число, равное адресу того программного объекта (переменной, функции, массива и т.д.), на который ссылается указатель.
Если необходимо, можно описать массив указателей:
int *ip[ 10 ]; - массив указателей на целые значения из 10 элементов.Напомним, что в данном контексте символ "*" является символом унарной операции косвенной адресации. Унарная операция * рассматривает свой операнд как адрес объекта и обращается по этому адресу, чтобы извлечь его содержимое.
С указателем можно производить некоторые арифметические операции. Например, пусть sub содержит номер элемента массива, тогда до этого элемента можно "добраться" следующим образом:
mas [ sub ] или *(mas +sub)Таким образом имя массива фактически является указателем на нулевой элемент массива. Переменная sub указывает на сколько элементов необходимо сместиться. Вы можете инкрементировать и декрементировать указатель. При этом вы смещаетесь на один элемент, независимо от типа элемента.
Допустим uk - адрес нулевого элемента массива, тогда
cout<<*uk; // вывод значения 0-го элемента uk++; cout<<*uk; // вывод значения 1-го элемента, реально смещение на несколько байтовuk+=2cout<<*uk; // вывод значения 3-го элемента. 19.Ссылки. Указатели и ссылки.Чтобы упростить процесс изменения параметров, С++ вводит такое понятие как ссылка. Ссылка представляет собой псевдоним (или второе имя), который ваши программы могут использовать для обращения к переменной.Ссылка C++ позволяет создать псевдоним (или второе имя) для переменных в вашей программе. Для объявления ссылки внутри программы : int& alias_name = variable; //---> Объявление ссылки
После объявления ссылки ваша программа может использовать или переменную, или ссылку:
alias_name = 1001;
variable = 1001;
Основное назначение ссылки заключается в упрощении процесса изменения параметров внутри функции.
ПРАВИЛА РАБОТЫ СО ССЫЛКАМИ
Ссылка не является переменной. Один раз присвоив значение ссылке, вы уже не можете ее изменить. Кроме того в отличие от указателей вы не можете выполнить следующие операции над ссылками:
• Вы не можете получить адрес ссылки, используя оператор адреса C++.
• Вы не можете присвоить ссылке указатель.
• Вы не можете сравнить значения ссылок, используя операторы сравнения C++.
• Вы не можете выполнить арифметические операции над ссылкой, например добавить смещение.
•Вы не можете изменить ссылку.
20. Связь указателей и массивов в языке С++. Доступ к элементам массива через указатели. Массивы указателей.
В языке C++ для создания и обработки массивов обычно используют указатели.
int *ip[ 10 ]; - массив указателей на целые значения из 10 элементов. Напомним, что в данном контексте символ "*" является символом унарной операции косвенной адресации. Унарная операция * рассматривает свой операнд как адрес объекта и обращается по этому адресу, чтобы извлечь его содержимое.