- •Понятие информации, виды и способы её представления
- •Задачи получения, передачи, преобразования и хранения информации
- •Язык как способ представления и передачи информации
- •Задачи, требующие автоматизированной обработки информации
- •Системы автоматизированной и автоматической обработки информации
- •Исторические этапы автоматизации обработки информации
- •Последовательность обработки прикладных программ
- •Жизненный цикл программного обеспечения
- •Задачи системного программного обеспечения
- •Назначение и структура операционных систем
- •Назначение и последовательность функционирования компиляторов
- •Требования к языкам программирования и их классификация
- •Понятие алгоритма, его основные свойства и способы записи
- •14. Временная и объёмная сложность алгоритма
- •15. Оценки временной сложности алгоритма
- •16. Структура рекурсивных алгоритмов
- •18. Методы доступа к функциям из библиотек и пакетов
- •22. Операции над данными стандартных типов и их старшинство
- •24. Манипуляторы потокового ввода и вывода
- •25. Ссылочные типы данных и их применение
- •27. Структурный тип данных
- •29. Многомерные массивы
- •30. Строки и массивы символов
- •31. Файлы и потоки
- •32. Методы открытия файлов для обмена информацией
- •33. Прямой доступ к отдельным записям в файлах
- •34. Программная реализация алгоритмов линейной структуры
- •35. Программная реализация разветвляющихся алгоритмов
- •36. Реализация циклических алгоритмов с заранее неизвестным количеством повторений
- •37. Реализация циклических алгоритмов с заранее известным количеством повторений
- •39. Предварительное описание функции
- •40. Локальные и глобальные величины программы
- •41. Способы обмена информацией между вызывающей и вызываемой функциями
- •42. Передача функций в качестве параметров функций
- •44. Динамические переменные. Выделение и освобождение памяти при выполнении программы
- •45. Построение списковых (последовательных) структур
- •46. Последовательные, циклические и рекурсивные алгоритмы
- •47. Базовая структура цифровой машины с хранимой программой
- •48. Архитектура и структура команд четырёхадресной машины
- •49. Архитектура и структура команд трёхадресной машины
- •50. Архитектура и структура команд двухадресной машины
- •51. Архитектура и структура команд одноадресной машины
- •52. Классификация устройств памяти систем обработки информации
- •53. Реализация устройств оперативной и долговременной памяти
- •54. Позиционные системы счисления и выполнение арифметических операций
- •55. Представление целых и действительных чисел в позиционных системах счисления
- •56. Связь между системами счисления с основаниями вида 2k
- •57. Перевод целых и действительных чисел из одной позиционной системы в другую
- •58. Прямой, обратный и дополнительный коды
- •59. Нормализованное представление чисел, переполнение, модифицирванные коды
- •60. Алгоритмы сложения и вычитания в дополнительных и обратных кодах
- •61. Алгоритмы умножения в дополнительных и обратных кодах
- •62. Структуры рекурсивных алгоритмов
- •63. Применение рекурсивных алгоритмов
- •64. Оценка сложности рекурсивных алгоритмов
24. Манипуляторы потокового ввода и вывода
В С++ имеется ряд манипуляторов. Рассмотрим основные:
Манипулятор |
Описание |
endl |
Помещение в выходной поток символа конца строки '\n' |
dec |
Установка основания 10-ой системы счисления |
oct |
Установка основания 8-ой системы счисления |
hex |
Установка основания 16-ой системы счисления |
setbase |
Вывод базовой системы счисления |
width(ширина) |
Устанавливает ширину поля вывода |
fill('символ') |
Заполняет пустые знакоместа значением символа |
precision(точность) |
Устанавливает количество значащих цифр в числе (или после запятой) в зависимости от использования fixed |
fixed |
Показывает, что установленная точность относится к количеству знаков после запятой |
showpos |
Показывает знак + для положительных чисел |
scientific |
Выводит число в экспоненциальной форме |
get() |
Ожидает ввода символа |
getline(указатель, количество) |
Ожидает ввода строки символов. Максимальное количество символов ограничено полем количество |
25. Ссылочные типы данных и их применение
Ссылочный тип, иногда называемый псевдонимом, служит для задания объекту дополнительного имени. Ссылка позволяет косвенно манипулировать объектом, точно так же, как это делается с помощью указателя. Однако эта косвенная манипуляция не требует специального синтаксиса, необходимого для указателей. Обычно ссылки употребляются как формальные параметры функций. В этом разделе мы рассмотрим самостоятельное использование объектов ссылочного типа.
Ссылочный тип обозначается указанием оператора взятия адреса (&) перед именем переменной.
Хотя, как мы говорили, ссылка очень похожа на указатель, она должна быть инициализирована не адресом объекта, а его значением. Таким объектом может быть и указатель.
int ival = 1024;
// правильно: refVal - ссылка на ival
int &refVal = ival;
// ошибка: ссылка должна быть инициализирована
int &refVal2;
Указатели предназначены для хранения адресов областей памяти, а cсылка представляет собой синоним имени, указанного при инициализации ссылки.
26. Указатели в языке C++. Доступ к данным по указателю
Каждая переменная, которую вы объявляете в программе, имеет адрес – номер ячейки памяти, в которой она расположена. Адрес является неотъемлемой характеристикой переменной. Можно объявить другую переменную, которая будет хранить этот адрес и которая называется указателем. Указатели применяются при передаче в функцию параметров, которые мы хотим изменить, при работе с массивами, при работе с динамической памятью и в ряде других случаев.
Объявление указателя имеет следующий синтаксис:
<тип> *<идентификатор> [ = <инициализатор>];
Существуют две операции, которые имеют отношение к работе с указателями. Этими операциями являются:
операция взятия адреса (адресация) &;
операция взятия значения по адресу (косвенная адресация или разыменование) *.
int a, *p;
p = &a; // Переменной p присваивается адрес переменной a
*p = 0; // Значение по адресу, находящемуся в переменной p (т.е. значение переменной а), становится равным 0
