
- •Информация в материальном мире. Данные. Носители данных. Операции с данными.
- •Кодирование данных двоичным кодом. Кодирование целых и действительных чисел. Перевод десятичного числа в двоичную систему.
- •3. Кодирование текстовых данных. Различие кодировок ascii, Windows-1251, кои-8. Универсальная кодировка текстовых данных unicode.
- •5. Основные структуры данных. Линейная, иерархическая, табличная. Дихотомия данных.
- •6. Файлы и файловая структура. Единицы измерения данных. Единицы хранения данных.
- •7. Предмет и задачи информатики. Истоки и предпосылки информатики.
- •9. Методы классификации компьютеров. По назначению, по уровню специализации, по типоразмерам, по совместимости.
- •10 Состав вычислительной системы (пк). Аппаратная, программная конфигурация. Классификация прикладных программных средств.
- •11. Классификация служебных программных средств
- •12.Устройство персонального компьютера. Базовая аппаратная конфигурация
- •Внутренние устройства системного блока.
- •Системы, расположенные на материнской плате. Оперативная память. Принцип работы. Характеристики. Процессор. Принцип работы. Связь с остальными устройствами пк. Системы команд cisc, risc.
- •15. Основные параметры процессоров для пк. Единицы измерения данных параметров. Принципы работы процессора.
- •16. Микросхема пзу и система bios.
- •17. Энергонезависимая память cmos.
- •18. Шинные интерфейсы материнской платы.
- •20 Устройства ввода графических данных.
- •21. Устройства вывода данных. Их характеристики, принципы работы.
- •22 Устройства хранения данных.
- •23. Системный блок пк. Варианты исполнения.
- •24.Монитор. Принципы работы. Размеры. Частота обновления кадров.
- •Клавиатура. Принцип действия. Состав клавиатуры. Определение alt-кодов произвольных символов. Настройка клавиатуры.
- •Мышь. Принцип действия. Чувствительность.
- •27.Внутренние устройства системного блока
- •29. Жесткий диск. Устройство. Основные параметры.
- •30. Дисководы оптических дисков. Виды, емкость, характеристики.
- •31. Видеокарта (видеоадаптер). Разрешение экрана жк-монитора. Цветовое разрешение. Видеоускорение.
- •32. Было!
- •34 Микросхема пзу и система bios
- •35. Энергонезависимая память cmos.
- •36.Шинные интерфейсы материнской платы.
- •37. Периферийные устройства пк. Устройства ввода графической информации. Основные параметры.
- •39. Устройства хранения данных.
- •41. Виды интерфейсов пользователя ос. Активные и пассивные элементы управления. Обеспечение автоматического запуска ос.
- •42. Организация файловой системы. Наименьшая единица хранения данных. Наименьшая единица адресации к данным. Системы fat32 и ntfs. Сравнение эффективности их работы.
- •43. Обслуживание файловой структуры, происходящее под управлением ос. Основные операции.
- •44 Создание и именование файлов. Особенности использования «длинных» имен.
- •46 Управление установкой, исполнением и удалением приложений. Понятие многозадачности. Вопросы надежности.
- •47. Обеспечение взаимодействия с аппаратным обеспечением. Принцип динамического распределения ресурсов ос.
- •48.Обслуживание компьютера. Средства проверки, сжатия дисков. Средства управления виртуальной памятью. Средства кеширования дисков
- •Ввод – вывод данных, комментарии. Структура программы.
- •51. Критерии качества программ.
- •52. Условный оператор. Логические операторы. Синтаксис условной инструкции if-else. Вложенные условные инструкции. Пример программы попадания точки с координатами (X,y) в одну из четвертей плоскости.
- •53. Операторы сравнения. Логические операторы. Примеры.
- •54. Изменения порядка вычислений. Оператор приращения. Префиксная и постфиксная формы оператора. Их различие. Примеры.
- •55. Оператор уменьшения на 1. Префиксная и постфиксная формы.
- •56 Операторы цикла. Цикл for.
- •58 Оператор for – бесконечный цикл. Оператор for – пустой цикл.
- •59. Цикл while с постусловием. Синтаксис. Различие в выполнении с оператором while с предусловием.
- •60.Бесконечные циклы
- •61. Оператор for – бесконечный цикл.
- •62. Оператор for – пустой цикл. Цикл for без тела цикла
- •65. Применение оператора цикла while для суммирования рядов.
- •66. Оператор выбора (switch). Выбор на множестве условий.
- •67. Оператор switch – использование break
- •68 Массивы. Одномерные, двумерные, многомерные. Описание.
- •69. Динамическое распределение памяти. Указатели. Создание указателей. Выделение памяти.
- •70 Создание массива с помощью оператора new. Проверка значения, возвращаемого new. Освобождение памяти. Общая схема. Операции над указателями.
- •71. Функции. Объявление функций. Передача массива в качестве параметра.
- •73. Объявление функции. Передача имен функций и указателей через список аргументов.
- •74.Передача массива в качестве параметра.
- •77. Методы растрирования. Растрирование с частотной, амплитудной, стохастической модуляцией. Связь между разрешением оригинала, частотой растра и градацией уровней тона.
- •78. Математические основы векторной графики. Точка, прямая, отрезок, кривые второго и третьего порядка. Кривые Безье.
- •79. Форматы графических данных. Понятие цвета. Способы описания цвета. Модели rgb, cmyk. Программные средства для работы с растровой, векторной графикой.
70 Создание массива с помощью оператора new. Проверка значения, возвращаемого new. Освобождение памяти. Общая схема. Операции над указателями.
Создание массива с помощью оператора new
int n=100
int *pi; // указатель pi
pi = new int [n] // массив из n(100) элементов типа int
Проверка значения, возвращаемого new
int n=1000000000;
int *pi=new int[n];
if(pi==0)
{
cout<<"Невозможно создать массив из "<<n<<" элементов int";
return 1; // Завершаем работу функции main
}
Освобождение памяти
После окончания работы с массивом, когда выделенная ранее память перестанет быть нужной, ее необходимо освободить, чтобы дать возможность операционной системе использовать эту память по своему усмотрению, например, выделить другой программе. Для этого используется унарный оператор delete, единственный операнд которого — адрес, по которому начинается память, ранее выделенная оператором new, которую мы хотим освободить. Например:
delete pi;
При этом сам указатель pi не уничтожается, ему можно присвоить новое значение, однако разыменование этого указателя может привести к ошибке.
Общая схема
int n; // Размер массива
double * p; // Указатель на начало массива
cout<<"Введите размер массива: ";
cin>>n;
p=new double[n]; // Выделяем память
if(p==0) // Проверка успешности выделения памяти
{
cout<<"Невозможно выделить память"<<endl;
return 1; // Завершаем работу
}
for(int i=0;i<n;++i) // Цикл для считывания массива
cin>>p[i]; // Считали i-й элемент массива
//// Теперь выполняем что-нибудь с массивом
delete p; // Освобождаем память
Операции с указателями
p==q Проверка двух указателей на равенство (то есть указывают ли они на одну и ту же ячейку памяти)
p!=q Проверка на неравенство
p<q Возвращает true, если ячейка, на которую указывает p находится в памяти раньше, чем ячейка, на которую указывает q. Аналогично определяются сравнения p<=q, p>q, p>=q
Пусть p указывает на начало массива. Тогда p+0 равно p, p+1 — это указатель на следующий элемент массива, то есть &p[1], и для любого положительного i p+i — это указатель на p[i].
71. Функции. Объявление функций. Передача массива в качестве параметра.
Функции — одна из самых важных компонентов языка C++.
• Любая функция имеет тип, также, как и любая переменная.
• Функция может возвращать значение, тип которого в большинстве случаев аналогично типу самой функции.
• Если функция не возвращает никакого значения, то она должна иметь тип void (такие функции иногда называют процедурами)
• При объявлении функции, после ее типа должно находиться имя функции и две круглые скобки — открывающая и закрывающая, внутри которых могут находиться один или несколько аргументов функции, которых также может не быть вообще.
• после списка аргументов функции ставится открывающая фигурная скобка, после которой находится само тело функции.
• В конце тела функции обязательно ставится закрывающая фигурная скобка.
Функции очень сильно облегчают работу программисту и намного повышают читаемость и понятность кода, в том числе и для самого разработчика.
Пример построения функции
#include <iostream>
using namespace std;
void function_name ()
{
std::cout << "Hello, world" << std::endl;
}
int main()
{
function_name(); // Вызов функции
return 0;
}
Перед вами тривиальная программа, Hello, world, только реализованная с использованием функций.
Если мы хотим вывести «Hello, world» где-то еще, нам просто нужно вызвать соответствующую функцию. В данном случае это делается так: function_name();. Вызов функции имеет вид имени функции с последующими круглыми скобками. Эти скобки могут быть пустыми, если функция не имеет аргументов. Если же аргументы в самой функции есть, их необходимо указать в круглых скобках.
Когда массив используется в качестве аргумента функции, передается только адрес массива, а не копия всего массива. При вызове функции с именем массива в функцию передается указатель на первый элемент массива. (Надо помнить, что в С имена массивов без индекса - это указатели на первый элемент массива.) Параметр должен иметь тип, совместимый с указателем. Имеется три способа объявления параметра, предназначенного для получения указателя на массив. Важно понять, что при использовании массива в качестве аргумента функции происходит передача в функцию его адреса. Это означает, что код внутри функции действует и может изменять настоящее значение массива, используемого при вызове.