- •1.Принципиальная схема компьютера. Потоки управления и потоки данных.
- •3. Принципы фон Неймана.
- •4. Создание исполняемых программ в машинных кодах, на Ассемблере и на языках высокого уровня.
- •5. Компиляторы и интерпретаторы, их преимущества и недостатки.
- •6. Классификация программных кодов. Схема создания исполняемого кода.
- •8. Определение и свойства алгоритма. Способы записи алгоритмов.
- •9. Блок-схемы. Основные управляющие структуры блок-схем.
- •10. Технологии программирования. Структурное программирование.
- •17. Операторы присваивания, инкремента и декремента. L-value выражения.
- •18. Условный оператор. Оператор запятая.
- •19. Инструкция-выражение. Инструкции выбора if и switch.
- •20. Инструкции передачи управления..
- •22. Алгоритмы обработки числовых данных (алгоритм Евклида, нахождение всех делителей числа, нахождение простых делителей числа, нахождение простых чисел, чисел Фибоначчи).
- •23. Указатели. Типизированные и безтиповые указатели. Операция разыменования и операция получения адреса.
- •25. Арифметические операции над указателями.
- •26. Проблемы и типичные ошибки при работе с указателями.
- •30. Двумерные и многомерные массивы (алгоритмы обработки матриц).
- •31. Многомерные массивы. Реализация многомерных массивов с помощью указателей.
- •32. Динамическое выделение памяти под одномерные и двумерные массивы.
- •34.Передача массивов в качестве параметров.
- •35. Подпрограммы. Определение и объявление подпрограмм. Процедуры и функции.
- •36.Формальные и фактические параметры. Соответствие типов в формальных и фактических параметрах.
- •38. Механизм работы с модифицируемыми параметрами, использующий указатели.
- •40. Использование ссылочного типа при выходе из подпрограмм. Константные ссылки.
- •41. Побочный эффект подпрограмм, его преимущества и недостатки.
- •42. Рекурсия. Формы рекурсивных подпрограмм. Глубина и текущий уровень рекурсии.
- •43. Зацикливание рекурсивных подпрограмм. Примеры неэффективности рекурсии.
- •44. Перегрузка функций. Ошибки, возникающие при перегрузке функций.
- •45.Указатели на функции. Callback-функции.
- •46. Функция main. Передача параметров в функцию main.
- •47. Директивы препроцессора. Директивы #pragma и #include.
- •48. Директивы #define и #undef. Константы времени компиляции.
- •49. Макросы. Преимущества и недостатки использования макросов.
- •50.Директивы условной компиляции. Страж включения.
- •51. Пространства имён. Работа с пространствами имён. Оператор using. Приоритеты и конфликты имён.
- •52. Строки. Операции над строками.
- •54. Строки string. Функции стандартной библиотеки для обработки строк.
- •55. Основные алгоритмы обработки строк (выделение слова, подстроки, разбиение на слова, поиск символа, поиск слова).Ответ в 53.
- •56. Пользовательские типы данных. Перечислимый тип enum.
- •57. Пользовательские типы данных. Тип struct. Массивы структур.
- •58. Объединения (union). Битовые поля.
- •59. Понятие сложности алгоритма. Оценка сложности с использованием о-символики.
- •60. Алгоритмы сортировки и поиска. Обменные сортировки. Сортировки вставками. Сортировки выбором. Сравнительный анализ методов сортировки.
- •61. Последовательный поиск. Бинарный поиск. Сравнительный анализ методов поиска.
- •62. Файлы. Основные принципы работы с файлами. Механизм чтения данных из файла. Определение конца файла. Открытие и закрытие файлов.
- •63. Текстовые файлы. Создание и обработка. Функции ввода/вывода в стиле с. Ввод-вывод нуль-терминированных строк. Посимвольный ввод-вывод. Форматированный ввод-вывод.
- •66. Исключительные ситуации. Системные и пользовательские исключения. Оператор try …catch. Виды блоков catch. Выброс исключений. И их обработка. Оператор throw.
- •70. Структура данных очередь. Кольцевая очередь. Реализация очереди с использованием списков.
- •71. Структура данных стек. Реализация стека с использованием массива.
- •72. Структура данных стек. Реализация стека с использованием списков.
- •73. Структуры данных. Списки. Типы списков. Представление этих структур в статической и динамической памяти. Обработка однонаправленных и двунаправленных списков. Сборка мусора.
- •75. Реализация линейного однонаправленного списка с использованием массивов.
- •76. Деревья. Обходы деревьев.
- •77. Бинарные поисковые деревья. Определение, концевой обход бпд.
- •78. Поиск и вставка нового элемента в бпд.
- •79.Удаление элемента из бпд.
- •80. Реализация бпд с использованием динамической памяти.
54. Строки string. Функции стандартной библиотеки для обработки строк.
Стандартный класс string Для того чтобы использовать объекты класса string, необходимо включить заголовочный файл:#include <string> Тип данных (точнее, класс) string лишен этих недостатков, хотя и проигрывает типу char * в производительности. Основные действия со строками выполняются в нем с помощью операций и методов, а длина строки изменяется динамически в соответствии с потребностями пользователя. Определение объектов класса string и присваивание значений1) string s1(”осень”);2) string s2=”зима”; 3) string s3, s4; //пустые строки s3=s2; //присваивание строк s4=”Ни ”+s1+” ни ”; //объединение строк (конкатенация) s4+=s2; //добавление в конец строки 4) string s5(s4);// инициализация объекта типа string// другим объектом того же типа.
Модификация объектов класса string insert(позиция, строка1)Вставляет в строку *this значение строки1, начиная с указанной позиции. Строка1 может быть как типа string, так и char *.erase(позиция=0, число_символов = остаток)Удаляет указанное число символов, начиная с заданной позиции (или остаток строки). clear() Очищает строку substr(позиция=0, число_символов=остаток)Выделяет в качестве подстроки указанное число символов, начиная с заданной позиции (или остаток строки). replace(позиция, число_символов,строка1)Заменяет указанное число символов, начиная с заданной позиции на строку1.append(число_символов,символ)Добавляет указанное число символов в конец строкиСравнение объектов класса string compare(позиция, число_символов, строка1, позиция1, число_символов1)Сравнивает число_символов строки *this, начиная с позиции и число_символов1 строки1, начиная с указанной позиции1. Функция возвращает 0, если совпадают, -1, если идут до и +1, если идут после.
55. Основные алгоритмы обработки строк (выделение слова, подстроки, разбиение на слова, поиск символа, поиск слова).Ответ в 53.
56. Пользовательские типы данных. Перечислимый тип enum.
Программист может строить на основе стандартных типов данных, массивов и указателей свои собственные типы для того, чтобы адекватно учесть специфику решаемой задачи. Для этой цели он может воспользоваться одним из следующих способов: Задание перечислимого типа с помощью оператораenum [имя_типа] {список_констант} [список_переменных];Константы перечислимого типа считаются числовыми и целочисленными (значение первой из констант полагается равной нулю, а всех остальных – увеличивается на единицу). Однако можно указать другое значение, если его записать после знака равенства, последующие значения будут увеличиваться начиная с этого индекса
57. Пользовательские типы данных. Тип struct. Массивы структур.
Структуры В отличие от массива структура может содержать элементы разных типов. Данные , входящие в структуру, называются элементами, членами или полями структуры. ( В Паскале структурам соответствуют записи.) Объявление структуры Задает ее внутреннюю организацию, описывая поляя, входящие в состав структуры. struct [имя_типа_структуры] {тип поле;[{тип поле;}…]};
Само объявление структуры не создает никаких переменных, т.е. не происходит ни выделения памяти, ни объявления переменных.Инициализация структур Структурные переменные могут инициализироваться при их определении. Для этого после имени структурной переменной располагают оператор присваивания и в фигурных скобках перечисляют значения полей структуры. emp x={10,"Paul",200.15}; book libry1 = {”Обрыв”,”Н.А.Гончаров”,40000.};Обращение к элементам массива структур
Структурные переменные могут быть элементами массива.book librys[100]; // массив из 100 элементов librys[0].value;-цена 1-ой книги librys[4].title;-название 5-ой книги librys.value[0] //ошибка Но librys[4].title[0]-верно!!! ибо это 1-ый символ названия 5-ой книги Инициализация массива структур book lib[]={{”Обрыв”,”Н.А.Гончаров”,40000.0},
{”Овод”,”Э.Л.Войнич”,35000.0},
{”Идиот”,”Ф.М.Достоевский”,45000.0};
// массив из 3 элементов