
- •1. Обобщенная схема компьютера.
- •2. Понятие информации и алгоритма. Формы представления алгоритма.
- •3. Блок-схемы разветвляющихся алгоритмов.
- •4. Блок-схемы циклических алгоритмов.
- •6. Операция присваивания. Особенности выполнения.
- •Int I, j; float X, y;
- •8. Потоковый ввод-вывод
- •9. Форматированный ввод-вывод.
- •10. Использование манипуляторов при вводе выводе данных.
- •11. Строковый и символьный ввод-вывод информации.
- •Int letter;
- •12. Условные операторы. Условия операции “?:”. Примеры использования. Условный оператор if
- •13. Особенности синтаксиса и выполнения операторов перехода continue, break
- •Void main()
- •14. Оператор перехода goto. Оператор return.
- •15. Переключатель switch. Примеры использования.
- •16. Организация циклов с помощью while, do while. Примеры.
- •17. Организация циклов с помощью for. Примеры.
- •Void main()
- •18. Простанство имён. Ключевое слово using как директива.
- •19. Средства отладки программ в ms vs.
- •19. Выполнение приложения с использованием средств интерактивной отладки.
- •20. Выполнение приложения с использование средств планируемой отладки
- •21. Создание исполняемого файла.
- •26. Побитовые логические операции (конъюнкция &, дизъюнкция |, сдвиги, инвертирование).
- •Void main()
- •27. Символы, строки (примеры объявления инициализация).
- •28. Алгоритмы работы со строками (подсчет длины строки, объединение строк, удаление заданного символа).
- •Void main()
- •Void main()
- •29. Стандартные функции работы со строками. Примеры использования.
- •Void main()
- •Int result;
- •Void main()
- •30. Логические переменные и примеры их использования в программах.
- •Логические операции
- •31. Понятие указателя. Операции над указателями.
- •32. Одномерные массивы и указатели. Понятие индекса. Инициализация. Доступ к компонентам.
- •33. Указатели и строки. Примеры (объединения строк, поиск заданного символа).
- •34. Матрицы. Инициализация, ввод, вывод.
- •35. Связь между указателями и элементами матриц. Поиск минимума и суммы элементов матрицы через указатели.
- •36. Указатели на указатели. Примеры использования.
- •37. Функция работы с динамическими массивами на языке с.
- •39. Объявление и определение функции пользователя.
- •Int main(void)
- •43. Указатели как формальные параметры и как результат функции.
- •Int main()
- •Void swap(int *X, int *y)
- •Void func1(int val, int& ref)
- •Void main()
- •Void main()
- •Int& preinc(int& X)
- •Void main(void)
- •Void main( )
26. Побитовые логические операции (конъюнкция &, дизъюнкция |, сдвиги, инвертирование).
AND (и) & если какой-то бит в одном из операндов равен 0, то результирующий бит тоже будет равен 0;
int a = 15, b = 27; _itoa_s (a & b, tmp, 2); cout<< tmp <<endl; |
1111 11011 a & b = 1011 |
OR (или) | если какой-то бит в одном из операндов равен 1, то результирующий бит тоже будет 1;
int a = 15, b = 27; _itoa_s (a | b, buffer, 2); cout<< buffer<<endl; |
1111 11011 a | b = 11111 |
XOR (исключающее или) ^ результирующий бит равен 1, если сравниваемые биты различны;
int a = 15, b = 27; _itoa_s (a ^ b, buffer, 2); cout<< buffer<<endl; |
11011 a ^ b = 10100 |
NOT (не) ~ меняются все биты на противоположные;
int a = 15; _itoa_s ( ~ a, buffer, 2); |
1111 ~ a = 11…10000 |
сдвиг влево << удваивается значение; сдвиг вправо >> – значение уменьшается в два раза.
int a = 15; _itoa_s (a << 1, buffer, 2); cout<<buffer<<endl; |
1111 a<<1 = 11110 |
Пример. Установить в единицу каждый второй справа бит числа А.
Пусть А = 16. В двоичной системе счисления A = 10000. Надо определить маску, т. е. число, например, В, применение с которым битовой операции OR даст нужный результат. Для заданного А маска = 01010 (В = 10) - каждый второй справа бит равен 1.
#include <iostream>
using namespace std;
Void main()
{ setlocale(LC_CTYPE, "rus");
int A = 16; char tmp[33];
_itoa_s (A, tmp, 2);
cout<<" Число А: "<<tmp<<endl;
int B = 10;
_itoa_s (B, tmp, 2);
cout<<"Маска для А: "<<tmp<<endl;
_itoa_s (A | B, tmp, 2);
cout<<" Результат: "<<tmp<<endl<<endl;
}
27. Символы, строки (примеры объявления инициализация).
Для представления символьной информации можно использовать символы, символьные переменные и символьные константы.
Установлено соответствие между символами и кодами. Клавиатура (совместно с драйвером) кодирует нажатие любой клавиши в соответствующий ей код. Манипуляции с символами на самом деле подразумевают манипуляции с соответствующими численными кодами.
Строка символов хранится в памяти как массив. Каждый элемент массива содержит один символ, при этом последним символом является '\0'. Поэтому при объявлении массива надо указывать размерность на единицу больше, чем количество символов. Имя массива без индекса является указателем-константой.
Доступ к строке осуществляется при помощи указателя типа char*.
char M[ ] = "Текст1"; char *pm = "Текст1";
Основное отличие состоит в том, что указатель M является указателем-константой, в то время как указатель pm - переменная.
Символьные строки хранятся в виде массивов, поэтому их нельзя приравнивать и сравнивать с помощью операций = и ==
Типичной ошибкой является невыделение достаточного места в массиве символов для хранения нулевого символа, завершающего строку.
Поместить строку в массив можно либо при вводе, либо с помощью инициализации:
char st1[ ] = "Text";
char st2[10] = {'T', 'e', 'x', 't', '\0'};
const char *st3 = "Text\n";
Для ввода символов в массив можно использовать функцию gets.