- •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. Динамические массивы. Понятие статического и динамического объекта, массива.
21. Создание исполняемого файла.
После отладки и исправления всех ошибок можно построить приложение без отладочной информации. Для переключения в окончательную конфигурацию необходимо выбрать команду Построение / Диспетчер конфигураций. На экран будет выведено диалоговое окно установки активной конфигурации проекта. Надо выбрать Win32 Release и повторить построение проекта с помощью Построение / Перестроить проект.
Каждая конфигурация проекта определяет папки, куда будут помещены файлы с промежуточными и окончательными результатами компиляции и компоновки. По умолчанию это папки Debug и Release, которые располагаются в папке проекта. Папка решения содержит: файл текущего примера решения *.sln, файл с информацией о проектах решения и опциями решения *.suo. В файле решения зафиксирован перечень проектов, входящих в решение. Во вложенной папке находятся файлы и папки проекта: файл *.vcproj в формате XML содержит перечень файлов, включенных в проект; файл *.сpp содержит исходный код программы на языке C++; *.obj -объектные файлы, содержащие машинный код исходных файлов проекта; *.pch - предварительно скомпилированный файл заголовков; *.pdb - файл с отладочной информацией, используемой при выполнении программы в режиме отладки; *.idb - файл с информацией, необходимой для перестройки всего решения и др.
Папка Debug используется для хранения временных файлов. В этой папке размещаются файлы с программным кодом на промежуточном языке. В частности, файл *.exe содержит программный код приложения.
24. Алгоритм метода дихотомии для решения уравнений.
22. Алгоритм метода трапеций для вычисления определенного интеграла.
Согласно методу трапеций значение интеграла вычисляется как сумма площадей трапеций, высоты которых равны h, а основания соответственно y0 и y1 – для первой трапеции, y1 и y2 – для второй и т. д.
23. Алгоритм метода парабол для вычисления определенного интеграла .
25. Алгоритм метода касательных для решения уравнений.
26. Классы памяти и области действия переменных (auto, static, extern, register).
В С(С+) каждая переменная и функция принадлежит некоторому классу памяти. Существуют следующие классы памяти переменных: автоматический (auto), статический (static), регистровый (register) и внешний (extern). Все переменные, объявленные в теле функции без указания класса памяти, имеют класс памяти auto, т.е. они являются локальными.
Автоматические переменные
Переменные этого класса являются локальными, то есть они доступны (существуют) в пределах блока, в котором они объявлены. Память для нее автоматически выделяется каждый раз вначале блока и освобождается в конце. Доступ к такой переменной возможен только в блоке в котором она определена. Автоматические переменные инициализируют при их определении или присваивания.
Статические переменные
В программе могут находиться некоторые переменные, используемые только в функциях, входящих в состав программы. Указание static, примененное к внешней переменной или функции, ограничивает область действия соответствующего объекта концом файла.
static int i; // внешняя статическая переменная
main()
{ . . . // тело функции
}
Декларацию static можно использовать и для внутренних переменных. Аналогично автоматическим внутренние статические переменные локальны в функциях, но в отличие от автоматических они не возникают только на период выполнения функции, а существуют в памяти постоянно.
fun()
{ static int i; // статическая переменная
. . . // тело функции
}
Регистровые переменные
Спецификация register при объявлении переменных сообщает компилятору, что декларируемая переменная будет использоваться интенсивно. Такую переменную желательно размещать на одном из регистров машины. Это приведет к тому, что программа станет короче и работа ускорится. Пример декларации:
register int i,j;
register char k;
При этом компилятор имеет право проигнорировать указание разместить данные переменные в регистре машины. Спецификация register может применяться только к арифметическим переменным и к формальным параметрам функции. Объявление для формальных параметров имеет вид
fun(register unsigned int n, register char c)
{ register int k;
. . .
}
Ограниченное число регистров накладывает ограничение на число register–переменных: достаточно небольшое их число и при этом только определенных типов может быть размещено на регистрах. Избыточные register объявления игнорируются, а для переменной независимо от того выделен ей регистр или нет, не определено понятие адреса. Ограничение на количество и тип register–переменных зависят от типа процессора.