
- •Информация в материальном мире. Данные. Носители данных. Операции с данными.
- •Кодирование данных двоичным кодом. Кодирование целых и действительных чисел. Перевод десятичного числа в двоичную систему.
- •6. Файлы и файловая структура. Единицы измерения данных. Единицы хранения данных.
- •9. Методы классификации компьютеров. По назначению, по уровню специализации, по типоразмерам, по совместимости.
- •11. Классификация служебных программных средств
- •12.Устройство персонального компьютера. Базовая аппаратная конфигурация
- •Внутренние устройства системного блока.
- •Системы, расположенные на материнской плате. Оперативная память. Принцип работы. Характеристики. Процессор. Принцип работы. Связь с остальными устройствами пк. Системы команд cisc, risc.
- •16. Микросхема пзу и система bios.
- •21. Устройства вывода данных. Их характеристики, принципы работы.
- •23. Системный блок пк. Варианты исполнения.
- •24.Монитор. Принципы работы. Размеры. Частота обновления кадров.
- •Клавиатура. Принцип действия. Состав клавиатуры. Определение alt-кодов произвольных символов. Настройка клавиатуры.
- •Мышь. Принцип действия. Чувствительность.
- •30. Дисководы оптических дисков. Виды, емкость, характеристики.
- •35. Энергонезависимая память cmos.
- •36.Шинные интерфейсы материнской платы.
- •37. Периферийные устройства пк. Устройства ввода графической информации. Основные параметры.
- •39. Устройства хранения данных.
- •42. Организация файловой системы. Наименьшая единица хранения данных. Наименьшая единица адресации к данным. Системы fat32 и ntfs. Сравнение эффективности их работы.
- •47. Обеспечение взаимодействия с аппаратным обеспечением. Принцип динамического распределения ресурсов ос.
- •48.Обслуживание компьютера. Средства проверки, сжатия дисков. Средства управления виртуальной памятью. Средства кеширования дисков
- •Ввод – вывод данных, комментарии. Структура программы.
- •51. Критерии качества программ.
- •52. Условный оператор. Логические операторы. Синтаксис условной инструкции if-else. Вложенные условные инструкции. Пример программы попадания точки с координатами (X,y) в одну из четвертей плоскости.
- •59. Цикл while с постусловием. Синтаксис. Различие в выполнении с оператором while с предусловием.
- •60.Бесконечные циклы
- •61. Оператор for – бесконечный цикл.
- •62. Оператор for – пустой цикл. Цикл for без тела цикла
- •69. Динамическое распределение памяти. Указатели. Создание указателей. Выделение памяти.
- •71. Функции. Объявление функций. Передача массива в качестве параметра.
- •73. Объявление функции. Передача имен функций и указателей через список аргументов.
- •74.Передача массива в качестве параметра.
- •75. Передача указателей на массивы через список аргументов.
61. Оператор for – бесконечный цикл.
В языке С, как и в других языках программирования, операторы цикла служат для многократного выполнения последовательности операторов до тех пор, пока выполняется некоторое условие. Во всех процедурных языках программирования циклы for очень похожи. Однако в С этот цикл особенно гибкий и мощный.
Для создания бесконечного цикла можно использовать любой оператор цикла, но чаще всего для этого выбирают оператор for. Так как в операторе for может отсутствовать любая секция, бесконечный цикл проще всего сделать, оставив пустыми все секции. Следует учесть, что оператор может быть пустым. Это значит, что тело цикла for (или любого другого цикла) также может быть пустым. Такую особенность цикла for можно использовать для упрощения некоторых программ, а также в циклах, предназначенных для того, чтобы отложить выполнение последующей части программы на некоторое время.
62. Оператор for – пустой цикл. Цикл for без тела цикла
Следует учесть, что оператор может быть пустым. Это значит, что тело цикла for (или любого другого цикла) также может быть пустым. Такую особенность цикла for можно использовать для упрощения некоторых программ, а также в циклах, предназначенных для того, чтобы отложить выполнение последующей части программы на некоторое время.
Программисту иногда приходится решать задачу удаления пробелов из входного потока. Допустим, программа, работающая с базой данных, обрабатывает запрос "показать все балансы меньше 400". База данных требует представления каждого слова отдельно, без пробелов, т.е. обработчик распознает слово "показать", но не " показать". В следующем примере цикл for удаляет начальные пробелы в строке str:
for( ; *str == ' '; str++) ;
В этом примере указатель str переставляется на первый символ, не являющийся пробелом. Цикл не имеет тела, так как в нем нет необходимости.
Иногда возникает необходимость отложить выполнение последующей части программы на определенное время. Это можно сделать с помощью цикла for следующим образом:
for(t=0; t<SOME_VALUE; t++) ;
Единственное назначение этого цикла — задержка выполнения последующей части программы. Однако следует иметь в виду, что компилятор может оптимизировать объектный код таким образом, что пропустит этот цикл вообще, поскольку он не выполняет никаких действий, тогда желаемой задержки выполнения последующей части программы не произойдет.
64. Оператор break – выход из цикла.
Используя оператор break, можно вызвать немедленное завершение цикла, пропуская условное выражение и любой остальной код в теле цикла. Когда программа встречает оператор break внутри цикла, она прекращает выполнение цикла, и управление передается оператору, следующему за циклом.
69. Динамическое распределение памяти. Указатели. Создание указателей. Выделение памяти.
В С++ объекты могут быть размещены либо статически – во время компиляции, либо динамически – во время выполнения программы, путем вызова функций из стандартной библиотеки.Часто возникают ситуации, когда заранее не известно, сколько объектов – чисел, строк текста и прочих данных будет хранить программа. В этом случае используется динамическое выделение памяти, когда память занимается и освобождается в процессе исполнения программы. При использовании динамической памяти (ДП) отпадает необходимость заранее распределять память для хранения данных, используемых программой. Управление динамической памятью – это способность определять размер объекта и выделять для его хранения соответствующую область памяти в процессе исполнения программы. Динамическое распределение памяти — способ выделения оперативной памяти компьютера для объектов в программе, при котором выделение памяти под объект осуществляется во время выполнения программы.
При динамическом распределении памяти объекты размещаются в т.н. «куче» (англ. heap): при конструировании объекта указывается размер запрашиваемой под объект памяти, и, в случае успеха, выделенная область памяти, условно говоря, «изымается» из «кучи», становясь недоступной при последующих операциях выделения памяти. Противоположная по смыслу операция — освобождение занятой ранее под какой-либо объект памяти: освобождаемая память, также условно говоря, возвращается в «кучу» и становится доступной при дальнейших операциях выделения памяти.
Для управления динамическим распределением памяти используется «сборщик мусора» — программный объект, который следит за выделением памяти и обеспечивает её своевременное освобождение. Сборщик мусора также следит за тем, чтобы свободные блоки имели максимальный размер, и, при необходимости, осуществляет дефрагментацию памяти.
Указатель (англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти или специального значения — нулевого адреса. Последнее используется для указания того, что в данный момент там ничего не записано.
При использовании в программах на C++ требуется выполнять явное преобразование типа указателя. Если необходимо создать символьную cтроку в динамической памяти, то сначала надо объявить указатель char *S1, а затем выделить область под символьную строку с помощью функции malloc():
S1=(char*)malloc(V);
где V – выражение, значением которого является целые неотрицательные числа, например, V=10, V=10+7 и т. д.
Ядром динамического выделения памяти языка С являются функции malloc() и free(), являющиеся частями стандартной библиотеки. Всякий раз, когда функцией malloc() осуществляется запрос на выделение памяти, выделяется порция имеющейся в наличии свободной памяти. Всякий раз, когда эта память освобождается с помощью функции free(), эта память возвращается назад системе.
Язык С++ определяет два оператора динамического выделения памяти — new и delete.