- •1. Понятие информации и алгоритма. Формы представления алгоритма.
- •2. Блок-схемы разветвляющихся алгоритмов.
- •3. Блок-схемы циклических алгоритмов.
- •5. Определение переменных. Переменные и константы.
- •6. Операции присваивания. Особенности выполнения.
- •8. Потоковый и форматированный ввод-вывод.
- •9. Использование манипуляторов при вводе и выводе данных.
- •10. Строковый и символьный ввод-вывод информации.
- •12. Особенности синтаксиса и выполнения операторов перехода continue, break.
- •13. Оператор перехода goto. Оператор return.
- •17. Пространство имен. Ключевое слово using как директива.
- •18. Средства отладки программ в ms vs.
- •19. Выполнение приложения с использованием средств интерактивной отладки.
- •20. Выполнение приложения с использованием средств планируемой отладки.
- •21. Создание исполняемого файла.
- •24. Алгоритм метода дихотомии для решения уравнений.
- •27. Побитовые логические операции (конъюнкция, дизъюнкция, сдвиги, инвертирование).
- •28. Символы, строки (объявление, инициализация).
- •Void main()
- •Void main()
- •29. Алгоритмы работы со строками (подсчет дины строки, объединение строк, удаление заданного символа).
- •30. Стандартные функции работы со строками.
- •31. Логические переменные и примеры их использования в программах.
- •32. Понятие указателя.
- •33. Операции над указателями.
- •34. Массивы и указатели. Понятие индекса. Инициализация. Доступ к компонентам.
- •35. Указатели и строки. Примеры работы (объединение строк, поиск заданного символа).
- •36. Матрицы. Инициализация, ввод, вывод.
- •Void main()
- •Int b[nstr][nstb];
- •37. Связь между указателями и элементами матриц. Алгоритмы поиска минимума и суммы элементов матрицы (через указатели).
- •38. Указатели на указатели.
- •39. Динамические переменные. Функции и операторы работы с динамическими переменными. Основ-ные свойства.
- •40. Динамические массивы. Понятие статического и динамического объекта, массива.
30. Стандартные функции работы со строками.
31. Логические переменные и примеры их использования в программах.
Логические данные хранятся в переменных типа bool. Хранить они могут только два значения:
«Верно» — это true;
«Ложь» — это false;
bool var = true;
int count;
while (var) {
count = count + 1;
if (count > 100)
var = false;
}
32. Понятие указателя.
Указатель это переменная, значением которой является адрес. Можно объявить другую переменную, которая будет хранить этот адрес и которая называется указателем. Пусть объявлена переменная а: int a = 0; Указатель на нее: int *ptr; Можно в указатель поместить адрес переменной и напечатать его: ptr = &a; cout << ptr; Здесь & операция получения адреса, * операция разыменования. Через указатель можно изменять значение, хранящееся по адресу, например: int a, *ptr; ptr = &a; a = 10; cout << a<<" "<<*ptr< *ptr = 20; cout << a<<" "<<*ptr< Чтобы выполнить арифметические и логические операции над указателями или над объектами, на которые они указывают, необходимо при выполнении каждой операции явно определить тип объектов. При выполнении операций учитывается тип указателей.
33. Операции над указателями.
Указатели могут встречаться в выражениях. То есть если p - указатель на объект некоторого типа, то он может использоваться в выражении наряду с другими указателями, а также переменными и константами, не являющимися указателями, например:
*p=-2;
*p/=i-1;
(*p)--;
В первом выражении значение -2 заносится в ячейку памяти по адресу p, во втором выражении это значение уменьшается в i-1 раз, в третьем - уменьшается на единицу. В третьем выражении использованы скобки, так как операции с одинаковым приоритетом выполняются справа налево, таким образом *p-- уменьшит адрес.
Указатели могут использоваться в качестве операндов в арифметических выражениях. Так, например, если p - указатель, то p++ является адресом следующего элемента. Следовательно, конструкция p+n (p - указатель, n - целое число) задает адрес n-го элемента, на который указывает указатель p+n.
Между адресами могут быть выполнены операции сравнения. Так же любой адрес может быть проверен на равенство (==) или неравенство (!=) со специальным значением NULL. NULL определяет указатель, который ничего не адресует.
#include <stdio.h>
void main(void) /*демонстрация объявления указателей*/
{ int *p,i; /* на объект типа int */
scanf("%d",&i);
p=&i; /* теперь р содержит адрес переменной i*/
printf(" i=%d",i); /* печать значения переменной i */
printf(" *p=%d",*p); /* печать значения по адресу p*/
}
К указателю типа void* применяются следующие операции:
= , == , != , > , < , <= , >=
Операции над указателями:
• присваивания,
• доступа по указателю (разыменование (*)),
• инкремента или декремента,
• сложение с константой,
• вычитание двух указателей,
• сравнение указателей (одного типа),
• приведение типов,
• получения адреса (&)
34. Массивы и указатели. Понятие индекса. Инициализация. Доступ к компонентам.
Указатели и массивы
Объявляя массив, мы объявляем имя массива как указатель на его
Номер элемента массива по одной размерности называется его индексом.
Число элементов массива называется размером массива.
Число элементов статического массива задается при его объявлении и в процессе выполнения программы не меняется.
Доступ к элементу массива производится путем указания имени массива и номера элемента.
Нумерация элементов может выполняться одной или несколькими последовательностями целых чисел – индексными последовательностями.
Если нумерация выполняется одной последовательностью говорят, что массив является одномерным, в противном случае – многомерным.
Инициализация указателей
Указатель можно инициализировать адресом переменной, которая уже определена:
double dvar = 0.0;
double *pvar = &dvar;
Инициализация значением NULL гарантирует, что указатель не содержит адреса, который воспринимается как корректный, а значение можно проверить в операторе if :
int *pinteger = NULL;
if (pinteger == NULL) cout << pinteger is null;
равнозначная альтернатива инициализировать указатель 0:
int *pinteger = 0;
if (!pinteger) cout << pinteger is null;